mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
fa1c4e5ebe
Many tests didn't change back from subdirectories at the end of the tests ... and they don't have to. The missing 'cd ..' could always be added when another test case is added to the test file. This change do that tests (99.5%) consistently end up in $TESTDIR where they started, thus making it simpler to extend them or move them around.
73 lines
1.6 KiB
Perl
73 lines
1.6 KiB
Perl
Corrupt an hg repo with two pulls.
|
|
create one repo with a long history
|
|
|
|
$ hg init source1
|
|
$ cd source1
|
|
$ touch foo
|
|
$ hg add foo
|
|
$ for i in 1 2 3 4 5 6 7 8 9 10; do
|
|
> echo $i >> foo
|
|
> hg ci -m $i
|
|
> done
|
|
$ cd ..
|
|
|
|
create one repo with a shorter history
|
|
|
|
$ hg clone -r 0 source1 source2
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd source2
|
|
$ echo a >> foo
|
|
$ hg ci -m a
|
|
$ cd ..
|
|
|
|
create a third repo to pull both other repos into it
|
|
|
|
$ hg init corrupted
|
|
$ cd corrupted
|
|
|
|
use a hook to make the second pull start while the first one is still running
|
|
|
|
$ echo '[hooks]' >> .hg/hgrc
|
|
$ echo 'prechangegroup = sleep 5' >> .hg/hgrc
|
|
|
|
start a pull...
|
|
|
|
$ hg pull ../source1 > pull.out 2>&1 &
|
|
|
|
... and start another pull before the first one has finished
|
|
|
|
$ sleep 1
|
|
$ hg pull ../source2 2>/dev/null
|
|
pulling from ../source2
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files (+1 heads)
|
|
(run 'hg heads' to see heads, 'hg merge' to merge)
|
|
$ cat pull.out
|
|
pulling from ../source1
|
|
requesting all changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 10 changesets with 10 changes to 1 files
|
|
(run 'hg update' to get a working copy)
|
|
|
|
see the result
|
|
|
|
$ wait
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
1 files, 11 changesets, 11 total revisions
|
|
|
|
$ cd ..
|