mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
ebde6a9a79
Test Plan: arc unit Note: making sure that int is passed in repo.lookup(...) is not easy. For example `hg log -r 1` does not pass an int value to repo.lookup(). But `hg bundle` actually does it so use `hg bundle` to verify that fix works. Reviewers: #mercurial, rmcelroy Reviewed By: rmcelroy Subscribers: rmcelroy, mjpieters, #sourcecontrol Differential Revision: https://phabricator.intern.facebook.com/D4825996 Signature: t1:4825996:1491292671:9bd0897205dff93cb6dee75498827b3826f894da
121 lines
4.2 KiB
Perl
121 lines
4.2 KiB
Perl
$ echo "[extensions]" >> $HGRCPATH
|
|
$ echo "gitlookup = $TESTDIR/../hgext3rd/gitlookup.py" >> $HGRCPATH
|
|
$ echo "gitrevset = $TESTDIR/../hgext3rd/gitrevset.py" >> $HGRCPATH
|
|
$ echo '[ui]' >> $HGRCPATH
|
|
$ echo 'ssh = python "$RUNTESTDIR/dummyssh"' >> $HGRCPATH
|
|
|
|
Set up the hg-git files
|
|
$ hg init repo1
|
|
$ cd repo1
|
|
$ touch a
|
|
$ hg add a
|
|
$ hg ci -ma
|
|
$ hg log -r . --template '{node}\n'
|
|
3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
$ cd .hg
|
|
$ echo "ffffffffffffffffffffffffffffffffffffffff 3903775176ed42b1458a6281db4a0ccf4d9f287a" > git-mapfile
|
|
$ echo 'ffffffffffffffffffffffffffffffffffffffff default/master' > git-remote-refs
|
|
$ echo 'ffffffffffffffffffffffffffffffffffffffff 0.1' > git-tags
|
|
$ echo '[gitlookup]' >> hgrc
|
|
$ echo "mapfile = $TESTTMP/repo1/.hg/git-mapfile" >> hgrc
|
|
|
|
$ cd ../..
|
|
$ hg clone repo1 repo2 -q
|
|
$ cd repo2
|
|
$ hg gitgetmeta -v
|
|
getting git metadata from $TESTTMP/repo1
|
|
writing .hg/git-mapfile
|
|
writing .hg/git-remote-refs
|
|
writing .hg/git-tags
|
|
wrote 3 files (183 bytes)
|
|
|
|
$ cat .hg/git-mapfile
|
|
ffffffffffffffffffffffffffffffffffffffff 3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
$ cat .hg/git-remote-refs
|
|
ffffffffffffffffffffffffffffffffffffffff default/master
|
|
$ cat .hg/git-tags
|
|
ffffffffffffffffffffffffffffffffffffffff 0.1
|
|
|
|
$ echo '1111111111111111111111111111111111111111 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' >> ../repo1/.hg/git-mapfile
|
|
$ hg gitgetmeta -v
|
|
getting git metadata from $TESTTMP/repo1
|
|
writing .hg/git-mapfile
|
|
writing .hg/git-remote-refs
|
|
writing .hg/git-tags
|
|
wrote 3 files (265 bytes)
|
|
|
|
$ cat .hg/git-mapfile
|
|
ffffffffffffffffffffffffffffffffffffffff 3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
1111111111111111111111111111111111111111 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
|
|
$ cd ..
|
|
$ hg clone ssh://user@dummy/repo1 repo3 -q
|
|
$ cd repo3
|
|
$ hg gitgetmeta -v
|
|
getting git metadata from ssh://user@dummy/repo1
|
|
writing .hg/git-mapfile
|
|
writing .hg/git-remote-refs
|
|
writing .hg/git-tags
|
|
wrote 3 files (265 bytes)
|
|
|
|
$ cat .hg/git-mapfile
|
|
ffffffffffffffffffffffffffffffffffffffff 3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
1111111111111111111111111111111111111111 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
$ cat .hg/git-remote-refs
|
|
ffffffffffffffffffffffffffffffffffffffff default/master
|
|
$ cat .hg/git-tags
|
|
ffffffffffffffffffffffffffffffffffffffff 0.1
|
|
|
|
Change a file upstream and see that it gets reflected here
|
|
$ echo '2222222222222222222222222222222222222222 dddddddddddddddddddddddddddddddddddddddd' >> ../repo1/.hg/git-mapfile
|
|
$ echo 'releases/foo1 foo1' >> ../repo1/.hg/git-named-branches
|
|
$ hg gitgetmeta -v
|
|
getting git metadata from ssh://user@dummy/repo1
|
|
writing .hg/git-mapfile
|
|
writing .hg/git-named-branches
|
|
writing .hg/git-remote-refs
|
|
writing .hg/git-tags
|
|
wrote 4 files (366 bytes)
|
|
|
|
$ cat .hg/git-mapfile
|
|
ffffffffffffffffffffffffffffffffffffffff 3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
1111111111111111111111111111111111111111 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
2222222222222222222222222222222222222222 dddddddddddddddddddddddddddddddddddddddd
|
|
|
|
$ cd ..
|
|
$ hg clone ssh://user@dummy/repo1 repo-ssh -q
|
|
$ cd repo-ssh
|
|
|
|
Check that our revset and template mappings work
|
|
$ hg log -r "gitnode(ffffffffffffffffffffffffffffffffffffffff)" --template "{node}\n"
|
|
3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
|
|
$ hg log -r 'gffffffffffffffffffffffffffffffffffffffff' --template "{node}\n"
|
|
3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
|
|
$ hg log -r . --template "{gitnode}\n"
|
|
ffffffffffffffffffffffffffffffffffffffff
|
|
|
|
$ touch b
|
|
$ hg add b
|
|
$ hg ci -mb
|
|
$ hg log -r . --template "{gitnode}\n"
|
|
|
|
Check that gitnode revset and template work on the server
|
|
$ cd ../repo1
|
|
$ hg log -r . --template "{node}-{gitnode}\n"
|
|
3903775176ed42b1458a6281db4a0ccf4d9f287a-ffffffffffffffffffffffffffffffffffffffff
|
|
$ hg log -r "gitnode(ffffffffffffffffffffffffffffffffffffffff)" --template "{node}\n"
|
|
3903775176ed42b1458a6281db4a0ccf4d9f287a
|
|
$ hg log -r "gitnode(unknown)" --template "{node}\n"
|
|
abort: unknown revision 'unknown'!
|
|
[255]
|
|
|
|
Check that using revision numbers instead of hashes still works. Use `bundle` command
|
|
because it calls `repo.lookup(...)` with int argument
|
|
$ touch b
|
|
$ hg add b
|
|
$ hg ci -mb
|
|
$ hg bundle -r . --base 0 file.txt
|
|
1 changesets found
|