mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
35656a1e7d
Summary: Although this change is breaking with the traditional definition of heads in Mercurial, we decided that using bookmarks as heads is sufficient for fbsource use case as well as it matches the git model where every unnamed branch is garbage collected. Reviewed By: jsgf Differential Revision: D7745541 fbshipit-source-id: 2ec716db7799bf7bab8b2b77a85d1521a880f3df
193 lines
3.6 KiB
Perl
193 lines
3.6 KiB
Perl
$ . $TESTDIR/library.sh
|
|
|
|
setup configuration
|
|
$ setup_config_repo
|
|
$ cd $TESTTMP
|
|
|
|
setup common configuration
|
|
$ cat >> $HGRCPATH <<EOF
|
|
> [ui]
|
|
> ssh="$DUMMYSSH"
|
|
> EOF
|
|
|
|
|
|
setup repo
|
|
|
|
$ hg init repo-hg
|
|
|
|
Init treemanifest and remotefilelog
|
|
$ cd repo-hg
|
|
$ cat >> .hg/hgrc <<EOF
|
|
> [extensions]
|
|
> treemanifest=
|
|
> remotefilelog=
|
|
> [treemanifest]
|
|
> server=True
|
|
> [remotefilelog]
|
|
> server=True
|
|
> shallowtrees=True
|
|
> EOF
|
|
|
|
$ touch a
|
|
$ hg add a
|
|
$ hg ci -ma
|
|
$ hg log
|
|
changeset: 0:3903775176ed
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
$ cd $TESTTMP
|
|
|
|
setup repo2
|
|
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> remotefilelog=
|
|
> [remotefilelog]
|
|
> cachepath=$TESTTMP/cachepath
|
|
> EOF
|
|
$ hgclone_treemanifest ssh://user@dummy/repo-hg repo2 --noupdate
|
|
$ cd repo2
|
|
$ hg pull
|
|
pulling from ssh://user@dummy/repo-hg
|
|
searching for changes
|
|
no changes found
|
|
|
|
$ cd $TESTTMP
|
|
$ cd repo-hg
|
|
$ touch b
|
|
$ hg add b
|
|
$ hg ci -mb
|
|
$ echo content > c
|
|
$ hg add c
|
|
$ hg ci -mc
|
|
$ mkdir dir
|
|
$ echo 1 > dir/1
|
|
$ mkdir dir2
|
|
$ echo 2 > dir/2
|
|
$ hg addremove
|
|
adding dir/1
|
|
adding dir/2
|
|
$ hg ci -m 'new directory'
|
|
$ echo cc > c
|
|
$ hg addremove
|
|
$ hg ci -m 'modify file'
|
|
$ hg mv dir/1 dir/rename
|
|
$ hg ci -m 'rename'
|
|
$ hg debugdrawdag <<'EOS'
|
|
> D # D/D=1\n2\n
|
|
> /| # B/D=1\n
|
|
> B C # C/D=2\n
|
|
> |/ # A/D=x\n
|
|
> A
|
|
> EOS
|
|
$ hg log --graph -T '{node|short} {desc}'
|
|
o e635b24c95f7 D
|
|
|\
|
|
| o d351044ef463 C
|
|
| |
|
|
o | 9a827afb7e25 B
|
|
|/
|
|
o af6aa0dfdf3d A
|
|
|
|
@ 28468743616e rename
|
|
|
|
|
o 329b10223740 modify file
|
|
|
|
|
o a42a44555d7c new directory
|
|
|
|
|
o 3e19bf519e9a c
|
|
|
|
|
o 0e067c57feba b
|
|
|
|
|
o 3903775176ed a
|
|
|
|
|
|
setup master bookmarks
|
|
|
|
$ hg bookmark master_bookmark -r e635b24c95f7
|
|
$ hg bookmark master_bookmark2 -r 28468743616e
|
|
|
|
blobimport
|
|
|
|
$ cd ..
|
|
$ newblobimport repo-hg/.hg repo
|
|
|
|
start mononoke
|
|
|
|
$ mononoke
|
|
$ wait_for_mononoke $TESTTMP/repo
|
|
$ hgmn debugwireargs ssh://user@dummy/repo one two --three three
|
|
one two three None None
|
|
|
|
$ cd repo2
|
|
$ hg up -q 0
|
|
Test a pull of one specific revision
|
|
$ hgmn pull -r 3e19bf519e9af6c66edf28380101a92122cbea50 -q
|
|
Pull the rest
|
|
$ hgmn pull -q
|
|
|
|
$ hg log -r '3903775176ed::329b10223740' --graph -T '{node|short} {desc}'
|
|
o 329b10223740 modify file
|
|
|
|
|
o a42a44555d7c new directory
|
|
|
|
|
o 3e19bf519e9a c
|
|
|
|
|
o 0e067c57feba b
|
|
|
|
|
@ 3903775176ed a
|
|
|
|
$ ls
|
|
a
|
|
$ hgmn up 28468743616e -q
|
|
$ ls
|
|
a
|
|
b
|
|
c
|
|
dir
|
|
$ cat c
|
|
cc
|
|
$ hgmn up 28468743616e -q
|
|
$ hg log c -T '{node|short} {desc}\n'
|
|
warning: file log can be slow on large repos - use -f to speed it up
|
|
329b10223740 modify file
|
|
3e19bf519e9a c
|
|
$ cat dir/rename
|
|
1
|
|
$ cat dir/2
|
|
2
|
|
$ hg log dir/rename -f -T '{node|short} {desc}\n'
|
|
28468743616e rename
|
|
a42a44555d7c new directory
|
|
$ hg st --change 28468743616e -C
|
|
A dir/rename
|
|
dir/1
|
|
R dir/1
|
|
|
|
$ hgmn up -q e635b24c95f7
|
|
|
|
Sort the output because it may be unpredictable because of the merge
|
|
$ hg log D --follow -T '{node|short} {desc}\n' | sort
|
|
9a827afb7e25 B
|
|
af6aa0dfdf3d A
|
|
d351044ef463 C
|
|
e635b24c95f7 D
|
|
|
|
Create a new bookmark and try and send it over the wire
|
|
Test commented while we have no bookmark support in blobimport or easy method
|
|
to create a fileblob bookmark
|
|
# $ cd ../repo
|
|
# $ hg bookmark test-bookmark
|
|
# $ hg bookmarks
|
|
# * test-bookmark 0:3903775176ed
|
|
# $ cd ../repo2
|
|
# $ hgmn pull ssh://user@dummy/repo
|
|
# pulling from ssh://user@dummy/repo
|
|
# searching for changes
|
|
# no changes found
|
|
# adding remote bookmark test-bookmark
|
|
# $ hg bookmarks
|
|
# test-bookmark 0:3903775176ed
|