2015-07-16 00:48:57 +03:00
|
|
|
Start up translation service.
|
|
|
|
|
2015-07-16 00:50:46 +03:00
|
|
|
$ python "$TESTDIR/conduithttp.py" -p 8543 --pid conduit.pid
|
2015-07-15 09:04:43 +03:00
|
|
|
$ cat conduit.pid >> $DAEMON_PIDS
|
2015-07-16 00:48:57 +03:00
|
|
|
|
|
|
|
Basic functionality.
|
|
|
|
|
|
|
|
$ hg init basic
|
|
|
|
$ cd basic
|
2015-07-15 09:04:43 +03:00
|
|
|
$ echo "[extensions]" >> .hg/hgrc
|
2016-07-08 15:15:42 +03:00
|
|
|
$ echo "fbconduit = $TESTDIR/../hgext3rd/fbconduit.py" >> .hg/hgrc
|
2015-07-15 09:04:43 +03:00
|
|
|
$ echo "[fbconduit]" >> .hg/hgrc
|
2015-07-16 00:48:57 +03:00
|
|
|
$ echo "reponame = basic" >> .hg/hgrc
|
2015-07-16 00:50:46 +03:00
|
|
|
$ echo "host = localhost:8543" >> .hg/hgrc
|
2015-07-15 09:04:43 +03:00
|
|
|
$ echo "path = /intern/conduit/" >> .hg/hgrc
|
|
|
|
$ echo "protocol = http" >> .hg/hgrc
|
|
|
|
$ touch file
|
|
|
|
$ hg add file
|
|
|
|
$ hg ci -m "initial commit"
|
|
|
|
$ commitid=`hg log -T "{label('custom.fullrev',node)}"`
|
|
|
|
$ hg phase -p $commitid
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/basic/hg/basic/git/$commitid/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2015-07-15 09:04:43 +03:00
|
|
|
$ hg log -T '{gitnode}\n'
|
2015-07-15 23:45:27 +03:00
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
$ hg log -T '{mirrornode("git")}\n'
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2015-07-16 00:48:57 +03:00
|
|
|
$ hg log -T '{mirrornode("basic", "git")}\n'
|
2015-07-15 23:45:27 +03:00
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")'
|
|
|
|
Could not translate revision aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/basic/git/basic/hg/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/$commitid
|
2015-07-15 23:45:27 +03:00
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")' -T '{desc}\n'
|
|
|
|
initial commit
|
2015-07-16 00:48:57 +03:00
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
Test with one backing repos specified.
|
|
|
|
|
|
|
|
$ hg init single_backingrepo
|
|
|
|
$ cd single_backingrepo
|
|
|
|
$ echo "[extensions]" >> .hg/hgrc
|
2016-07-08 15:15:42 +03:00
|
|
|
$ echo "fbconduit = $TESTDIR/../hgext3rd/fbconduit.py" >> .hg/hgrc
|
2015-07-16 00:48:57 +03:00
|
|
|
$ echo "[fbconduit]" >> .hg/hgrc
|
|
|
|
$ echo "reponame = single" >> .hg/hgrc
|
|
|
|
$ echo "backingrepos = single_src" >> .hg/hgrc
|
2015-07-16 00:50:46 +03:00
|
|
|
$ echo "host = localhost:8543" >> .hg/hgrc
|
2015-07-16 00:48:57 +03:00
|
|
|
$ echo "path = /intern/conduit/" >> .hg/hgrc
|
|
|
|
$ echo "protocol = http" >> .hg/hgrc
|
|
|
|
$ touch file
|
|
|
|
$ hg add file
|
|
|
|
$ hg ci -m "initial commit"
|
|
|
|
$ commitid=`hg log -T "{label('custom.fullrev',node)}"`
|
|
|
|
$ hg phase -p $commitid
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/single/hg/single_src/git/$commitid/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2015-07-16 00:48:57 +03:00
|
|
|
$ hg log -T '{gitnode}\n'
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")'
|
|
|
|
Could not translate revision aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/single_src/git/single/hg/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/$commitid
|
2015-07-16 00:48:57 +03:00
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")' -T '{desc}\n'
|
|
|
|
initial commit
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
Test with multiple backing repos specified.
|
|
|
|
|
|
|
|
$ hg init backingrepos
|
|
|
|
$ cd backingrepos
|
|
|
|
$ echo "[extensions]" >> .hg/hgrc
|
2016-07-08 15:15:42 +03:00
|
|
|
$ echo "fbconduit = $TESTDIR/../hgext3rd/fbconduit.py" >> .hg/hgrc
|
2015-07-16 00:48:57 +03:00
|
|
|
$ echo "[fbconduit]" >> .hg/hgrc
|
|
|
|
$ echo "reponame = multiple" >> .hg/hgrc
|
|
|
|
$ echo "backingrepos = src_a src_b src_c" >> .hg/hgrc
|
2015-07-16 00:50:46 +03:00
|
|
|
$ echo "host = localhost:8543" >> .hg/hgrc
|
2015-07-16 00:48:57 +03:00
|
|
|
$ echo "path = /intern/conduit/" >> .hg/hgrc
|
|
|
|
$ echo "protocol = http" >> .hg/hgrc
|
|
|
|
$ touch file_a
|
|
|
|
$ hg add file_a
|
|
|
|
$ hg ci -m "commit 1"
|
|
|
|
$ touch file_b
|
|
|
|
$ hg add file_b
|
|
|
|
$ hg ci -m "commit 2"
|
|
|
|
$ touch file_c
|
|
|
|
$ hg add file_c
|
|
|
|
$ hg ci -m "commit 3"
|
2016-01-08 05:30:24 +03:00
|
|
|
$ commit_a_id=`hg log -T "{label('custom.fullrev',node)}" -r ".^^"`
|
|
|
|
$ commit_b_id=`hg log -T "{label('custom.fullrev',node)}" -r ".^"`
|
2015-07-16 00:48:57 +03:00
|
|
|
$ commit_c_id=`hg log -T "{label('custom.fullrev',node)}" -r .`
|
|
|
|
$ hg phase -p $commit_a_id
|
|
|
|
$ hg phase -p $commit_b_id
|
|
|
|
$ hg phase -p $commit_c_id
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/multiple/hg/src_a/git/$commit_a_id/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
|
|
$ curl -s -X PUT http://localhost:8543/multiple/hg/src_b/git/$commit_b_id/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
|
|
$ curl -s -X PUT http://localhost:8543/multiple/hg/src_c/git/$commit_c_id/cccccccccccccccccccccccccccccccccccccccc
|
|
|
|
$ curl -s -X PUT http://localhost:8543/multiple/hg/src_b/git/$commit_c_id/dddddddddddddddddddddddddddddddddddddddd
|
2016-01-08 05:30:24 +03:00
|
|
|
$ hg log -T '{gitnode}\n' -r ".^^"
|
2015-07-16 00:48:57 +03:00
|
|
|
src_a: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2016-01-08 05:30:24 +03:00
|
|
|
$ hg log -T '{gitnode}\n' -r ".^"
|
2015-07-16 00:48:57 +03:00
|
|
|
src_b: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
|
|
$ hg log -T '{gitnode}\n' -r .
|
|
|
|
src_b: dddddddddddddddddddddddddddddddddddddddd; src_c: cccccccccccccccccccccccccccccccccccccccc
|
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")'
|
|
|
|
Could not translate revision aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
|
2015-07-16 00:50:46 +03:00
|
|
|
$ curl -s -X PUT http://localhost:8543/src_a/git/multiple/hg/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/$commit_a_id
|
|
|
|
$ curl -s -X PUT http://localhost:8543/src_b/git/multiple/hg/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/$commit_b_id
|
|
|
|
$ curl -s -X PUT http://localhost:8543/src_c/git/multiple/hg/cccccccccccccccccccccccccccccccccccccccc/$commit_c_id
|
|
|
|
$ curl -s -X PUT http://localhost:8543/src_b/git/multiple/hg/dddddddddddddddddddddddddddddddddddddddd/$commit_c_id
|
2015-07-16 00:48:57 +03:00
|
|
|
$ hg log -r 'gitnode("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")' -T '{desc}\n'
|
|
|
|
commit 1
|
|
|
|
$ hg log -r 'gitnode("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")' -T '{desc}\n'
|
|
|
|
commit 2
|
|
|
|
$ hg log -r 'gitnode("cccccccccccccccccccccccccccccccccccccccc")' -T '{desc}\n'
|
|
|
|
commit 3
|
|
|
|
$ hg log -r 'gitnode("dddddddddddddddddddddddddddddddddddddddd")' -T '{desc}\n'
|
|
|
|
commit 3
|
|
|
|
$ hg log -r gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -T '{desc}\n'
|
|
|
|
commit 1
|
|
|
|
$ hg log -r gbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -T '{desc}\n'
|
|
|
|
commit 2
|
|
|
|
$ hg log -r gcccccccccccccccccccccccccccccccccccccccc -T '{desc}\n'
|
|
|
|
commit 3
|
|
|
|
$ hg log -r gdddddddddddddddddddddddddddddddddddddddd -T '{desc}\n'
|
|
|
|
commit 3
|
templates: fix help messages for template keywords
Summary:
Many of the template keywords in our extensions were being registered
incorrectly, causing their help output to be rendered incorrectly in the
"hg help templates" output. The ones in smartlog.py were particularly bad, as
most of them showed only their description, without displaying the name of the
template. In smartlog.py only singlepublicsuccessor was being displayed
correctly, because it's docstring explicitly included it's own name at the
start.
This fixes all of our extensions to consistently use the
registrar.templatekeyword() decorator to register the keywords. This decorator
automatically prefixes the help message with the keyword name. The
mercurial/extensions.py code will explicitly check to see if an extension
contains an "templatekeyword" attribute, and if so it will register any
keywords contained in this registry after calling extsetup().
Test Plan:
Added new unit tests to check the output of "hg help templates" for the
affected keywords.
Reviewers: #sourcecontrol, kulshrax, ikostia, rmcelroy
Reviewed By: rmcelroy
Subscribers: rmcelroy, net-systems-diffs@, yogeshwer, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D4427729
Signature: t1:4427729:1484831476:17b478a5e867dfc3f85402588c381bf8b1831107
2017-01-19 23:52:54 +03:00
|
|
|
|
|
|
|
Make sure the template keywords are documented correctly
|
|
|
|
|
|
|
|
$ hg help templates | grep gitnode
|
|
|
|
gitnode Return the git revision corresponding to a given hg rev
|
2015-07-16 00:48:57 +03:00
|
|
|
$ cd ..
|