test-narrow-pull.t
174 lines
| 3.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-narrow-pull.t
|
r36096 | $ . "$TESTDIR/narrow-library.sh" | ||
$ hg init master | ||||
$ cd master | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [narrow] | ||||
> serveellipses=True | ||||
> EOF | ||||
$ for x in `$TESTDIR/seq.py 10` | ||||
> do | ||||
> echo $x > "f$x" | ||||
> hg add "f$x" | ||||
> hg commit -m "Commit f$x" | ||||
> done | ||||
$ cd .. | ||||
narrow clone a couple files, f2 and f8 | ||||
$ hg clone --narrow ssh://user@dummy/master narrow --include "f2" --include "f8" | ||||
requesting all changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 5 changesets with 2 changes to 2 files | ||||
new changesets *:* (glob) | ||||
updating to branch default | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd narrow | ||||
$ ls | ||||
f2 | ||||
f8 | ||||
$ cat f2 f8 | ||||
2 | ||||
8 | ||||
$ cd .. | ||||
change every upstream file twice | ||||
$ cd master | ||||
$ for x in `$TESTDIR/seq.py 10` | ||||
> do | ||||
> echo "update#1 $x" >> "f$x" | ||||
> hg commit -m "Update#1 to f$x" "f$x" | ||||
> done | ||||
$ for x in `$TESTDIR/seq.py 10` | ||||
> do | ||||
> echo "update#2 $x" >> "f$x" | ||||
> hg commit -m "Update#2 to f$x" "f$x" | ||||
> done | ||||
$ cd .. | ||||
look for incoming changes | ||||
$ cd narrow | ||||
$ hg incoming --limit 3 | ||||
comparing with ssh://user@dummy/master | ||||
searching for changes | ||||
changeset: 5:ddc055582556 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Update#1 to f1 | ||||
changeset: 6:f66eb5ad621d | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Update#1 to f2 | ||||
changeset: 7:c42ecff04e99 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Update#1 to f3 | ||||
Interrupting the pull is safe | ||||
$ hg --config hooks.pretxnchangegroup.bad=false pull -q | ||||
transaction abort! | ||||
rollback completed | ||||
abort: pretxnchangegroup.bad hook exited with status 1 | ||||
[255] | ||||
$ hg id | ||||
223311e70a6f tip | ||||
pull new changes down to the narrow clone. Should get 8 new changesets: 4 | ||||
relevant to the narrow spec, and 4 ellipsis nodes gluing them all together. | ||||
$ hg pull | ||||
pulling from ssh://user@dummy/master | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 9 changesets with 4 changes to 2 files | ||||
new changesets *:* (glob) | ||||
(run 'hg update' to get a working copy) | ||||
$ hg log -T '{rev}: {desc}\n' | ||||
13: Update#2 to f10 | ||||
12: Update#2 to f8 | ||||
11: Update#2 to f7 | ||||
10: Update#2 to f2 | ||||
9: Update#2 to f1 | ||||
8: Update#1 to f8 | ||||
7: Update#1 to f7 | ||||
6: Update#1 to f2 | ||||
5: Update#1 to f1 | ||||
4: Commit f10 | ||||
3: Commit f8 | ||||
2: Commit f7 | ||||
1: Commit f2 | ||||
0: Commit f1 | ||||
$ hg update tip | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
add a change and push it | ||||
$ echo "update#3 2" >> f2 | ||||
$ hg commit -m "Update#3 to f2" f2 | ||||
$ hg log f2 -T '{rev}: {desc}\n' | ||||
14: Update#3 to f2 | ||||
10: Update#2 to f2 | ||||
6: Update#1 to f2 | ||||
1: Commit f2 | ||||
$ hg push | ||||
pushing to ssh://user@dummy/master | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
$ cd .. | ||||
$ cd master | ||||
$ hg log f2 -T '{rev}: {desc}\n' | ||||
30: Update#3 to f2 | ||||
21: Update#2 to f2 | ||||
11: Update#1 to f2 | ||||
1: Commit f2 | ||||
$ hg log -l 3 -T '{rev}: {desc}\n' | ||||
30: Update#3 to f2 | ||||
29: Update#2 to f10 | ||||
28: Update#2 to f9 | ||||
Can pull into repo with a single commit | ||||
$ cd .. | ||||
$ hg clone -q --narrow ssh://user@dummy/master narrow2 --include "f1" -r 0 | ||||
$ cd narrow2 | ||||
$ hg pull -q -r 1 | ||||
transaction abort! | ||||
rollback completed | ||||
abort: pull failed on remote | ||||
[255] | ||||
Can use 'hg share': | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> share= | ||||
> EOF | ||||
$ cd .. | ||||
$ hg share narrow2 narrow2-share | ||||
updating working directory | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd narrow2-share | ||||
$ hg status | ||||
We should also be able to unshare without breaking everything: | ||||
$ hg unshare | ||||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
|
r39525 | checked 1 changesets with 1 changes to 1 files | ||