diff -r 4ab90c838772 -r 9f69164cdc16 tests/test-sharing.t --- a/tests/test-sharing.t Sat Oct 05 13:50:09 2019 -0400 +++ b/tests/test-sharing.t Thu Nov 28 10:53:25 2019 +0100 @@ -5,7 +5,7 @@ $ cat >> $HGRCPATH < [alias] - > shortlog = log --template '{rev}:{node|short} {phase} {desc|firstline}\n' + > shortlog = log --template '{rev}:{node|shortest} {phase} {desc|firstline}\n' > [extensions] > rebase = > EOF @@ -57,24 +57,38 @@ $ hg push -q ../test-repo Figure SG01 (roughly) - $ hg shortlog -G - @ 1:f6490818a721 draft prelim change + $ hg -R ../dev-repo shortlog -G + @ 1:f649 draft prelim change | - o 0:0dc9c9f6ab91 public create new project + o 0:0dc9 public create new project + + $ hg -R ../test-repo shortlog -G + o 1:f649 draft prelim change + | + @ 0:0dc9 public create new project Now let's switch to test-repo to test our change and amend:: $ cd ../test-repo $ hg update -q + $ echo 'Fix fix fix' > file1 + $ hg amend -m'fix bug 37' $ echo 'Fix fix fix.' > file1 $ hg amend -m'fix bug 37' Figure SG02 - $ hg shortlog --hidden -G - @ 2:60ffde5765c5 draft fix bug 37 + $ hg -R ../dev-repo shortlog --hidden -G + @ 1:f649 draft prelim change | - | x 1:f6490818a721 draft prelim change + o 0:0dc9 public create new project + + $ hg -R ../test-repo shortlog --hidden -G + @ 3:522d draft fix bug 37 + | + | x 2:96d8 draft fix bug 37 |/ - o 0:0dc9c9f6ab91 public create new project + | x 1:f649 draft prelim change + |/ + o 0:0dc9 public create new project Pull into dev-repo: obsolescence markers are transferred, but not the new obsolete changeset. @@ -86,50 +100,56 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 1 new obsolescence markers + 2 new obsolescence markers obsoleted 1 changesets - new changesets 60ffde5765c5 + new changesets 522d503432a2 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - updated to "60ffde5765c5: fix bug 37" + updated to "522d503432a2: fix bug 37" 1 other heads for branch "default" Figure SG03 - $ hg shortlog --hidden -G - @ 2:60ffde5765c5 draft fix bug 37 + $ hg -R ../dev-repo shortlog --hidden -G + @ 2:522d draft fix bug 37 | - | x 1:f6490818a721 draft prelim change + | x 1:f649 draft prelim change |/ - o 0:0dc9c9f6ab91 public create new project + o 0:0dc9 public create new project Amend again in dev-repo + $ echo 'Fix, fix, and fix' > file1 + $ hg amend $ echo 'Fix, fix, and fix.' > file1 $ hg amend $ hg push -q Figure SG04 (dev-repo) $ hg shortlog --hidden -G - @ 3:de6151c48e1c draft fix bug 37 + @ 4:7b49 draft fix bug 37 | - | x 2:60ffde5765c5 draft fix bug 37 + | x 3:e42b draft fix bug 37 |/ - | x 1:f6490818a721 draft prelim change + | x 2:522d draft fix bug 37 |/ - o 0:0dc9c9f6ab91 public create new project + | x 1:f649 draft prelim change + |/ + o 0:0dc9 public create new project Figure SG04 (test-repo) $ cd ../test-repo $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - updated to "de6151c48e1c: fix bug 37" + updated to "7b49f864d655: fix bug 37" 1 other heads for branch "default" $ hg shortlog --hidden -G - @ 3:de6151c48e1c draft fix bug 37 + @ 4:7b49 draft fix bug 37 | - | x 2:60ffde5765c5 draft fix bug 37 + | x 3:522d draft fix bug 37 |/ - | x 1:f6490818a721 draft prelim change + | x 2:96d8 draft fix bug 37 |/ - o 0:0dc9c9f6ab91 public create new project + | x 1:f649 draft prelim change + |/ + o 0:0dc9 public create new project This bug fix is finished. We can push it to the public repository. $ hg push @@ -139,23 +159,23 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 2 new obsolescence markers + 4 new obsolescence markers Now that the fix is public, we cannot amend it any more. $ hg amend -m 'fix bug 37' - abort: cannot amend public changesets: de6151c48e1c + abort: cannot amend public changesets: 7b49f864d655 (see 'hg help phases' for details) [255] Figure SG05 $ hg -R ../public shortlog -G - o 1:de6151c48e1c public fix bug 37 + o 1:7b49 public fix bug 37 | - o 0:0dc9c9f6ab91 public create new project + o 0:0dc9 public create new project Oops, still have draft changesets in dev-repo: push the phase change there. $ hg -R ../dev-repo shortlog -r 'draft()' - 3:de6151c48e1c draft fix bug 37 + 4:7b49 draft fix bug 37 $ hg push ../dev-repo pushing to ../dev-repo searching for changes @@ -195,7 +215,7 @@ added 1 changesets with 1 changes to 1 files exporting bookmark bug15 $ hg -R ../review bookmarks - bug15 2:f91e97234c2b + bug15 2:4e965c66c983 Alice receives code review, amends her fix, and goes out to lunch to await second review. @@ -212,15 +232,15 @@ obsoleted 1 changesets updating bookmark bug15 $ hg -R ../review bookmarks - bug15 3:cbdfbd5a5db2 + bug15 3:3363442626b3 Figure SG06: review repository after Alice pushes her amended changeset. $ hg --hidden -R ../review shortlog -G -r 1:: - o 3:cbdfbd5a5db2 draft fix bug 15 (v2) + o 3:3363 draft fix bug 15 (v2) | - | x 2:f91e97234c2b draft fix bug 15 (v1) + | x 2:4e96 draft fix bug 15 (v1) |/ - @ 1:de6151c48e1c public fix bug 37 + @ 1:7b49 public fix bug 37 | ~ @@ -232,15 +252,15 @@ $ hg push -B featureX pushing to $TESTTMP/review (glob) searching for changes - remote has heads on branch 'default' that are not known locally: cbdfbd5a5db2 + remote has heads on branch 'default' that are not known locally: 3363442626b3 adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) exporting bookmark featureX $ hg -R ../review bookmarks - bug15 3:cbdfbd5a5db2 - featureX 4:193657d1e852 + bug15 3:3363442626b3 + featureX 4:c7ff98c7916f Bob receives first review, amends and pushes. $ echo 'do stuff' > file1 @@ -248,7 +268,7 @@ $ hg push pushing to $TESTTMP/review (glob) searching for changes - remote has heads on branch 'default' that are not known locally: cbdfbd5a5db2 + remote has heads on branch 'default' that are not known locally: 3363442626b3 adding changesets adding manifests adding file changes @@ -274,7 +294,7 @@ $ hg push ../review pushing to ../review searching for changes - remote has heads on branch 'default' that are not known locally: cbdfbd5a5db2 + remote has heads on branch 'default' that are not known locally: 3363442626b3 adding changesets adding manifests adding file changes @@ -283,45 +303,28 @@ obsoleted 1 changesets updating bookmark featureX $ hg -R ../review bookmarks - bug15 3:cbdfbd5a5db2 - featureX 6:540ba8f317e6 + bug15 3:3363442626b3 + featureX 6:9d21d673314a Figure SG07: review and public repos after Bob implements feature X. $ hg --hidden -R ../review shortlog -G -r 1:: - o 6:540ba8f317e6 public implement feature X (v3) + o 6:9d21 public implement feature X (v3) | - | x 5:0eb74a7b6698 draft implement feature X (v2) + | x 5:1bb4 draft implement feature X (v2) |/ - | x 4:193657d1e852 draft implement feature X (v1) + | x 4:c7ff draft implement feature X (v1) |/ - | o 3:cbdfbd5a5db2 draft fix bug 15 (v2) + | o 3:3363 draft fix bug 15 (v2) |/ - | x 2:f91e97234c2b draft fix bug 15 (v1) + | x 2:4e96 draft fix bug 15 (v1) |/ - @ 1:de6151c48e1c public fix bug 37 + @ 1:7b49 public fix bug 37 | ~ $ hg --hidden -R ../public shortlog -G -r 1:: - o 2:540ba8f317e6 public implement feature X (v3) - | - o 1:de6151c48e1c public fix bug 37 + o 2:9d21 public implement feature X (v3) | - ~ - -How do things look in the review repo? - $ cd ../review - $ hg --hidden shortlog -G -r 1:: - o 6:540ba8f317e6 public implement feature X (v3) - | - | x 5:0eb74a7b6698 draft implement feature X (v2) - |/ - | x 4:193657d1e852 draft implement feature X (v1) - |/ - | o 3:cbdfbd5a5db2 draft fix bug 15 (v2) - |/ - | x 2:f91e97234c2b draft fix bug 15 (v1) - |/ - @ 1:de6151c48e1c public fix bug 37 + o 1:7b49 public fix bug 37 | ~ @@ -329,20 +332,20 @@ her change, so now she can publish it. $ cd ../alice $ hg --hidden shortlog -G -r 1:: - @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) + @ 3:3363 draft fix bug 15 (v2) | - | x 2:f91e97234c2b draft fix bug 15 (v1) + | x 2:4e96 draft fix bug 15 (v1) |/ - o 1:de6151c48e1c public fix bug 37 + o 1:7b49 public fix bug 37 | ~ $ hg outgoing -q ../public - 3:cbdfbd5a5db2 + 3:3363442626b3 $ hg push ../public pushing to ../public searching for changes - remote has heads on branch 'default' that are not known locally: 540ba8f317e6 - abort: push creates new remote head cbdfbd5a5db2 with bookmark 'bug15'! + remote has heads on branch 'default' that are not known locally: 9d21d673314a + abort: push creates new remote head 3363442626b3 with bookmark 'bug15'! (pull and merge or see 'hg help push' for details about pushing new heads) [255] $ hg pull ../public @@ -353,30 +356,30 @@ adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) 2 new obsolescence markers - new changesets 540ba8f317e6 + new changesets 9d21d673314a (run 'hg heads' to see heads, 'hg merge' to merge) $ hg log -G -q -r 'head()' - o 4:540ba8f317e6 + o 4:9d21d673314a | ~ - @ 3:cbdfbd5a5db2 + @ 3:3363442626b3 | ~ $ hg --hidden shortlog -G -r 1:: - o 4:540ba8f317e6 public implement feature X (v3) + o 4:9d21 public implement feature X (v3) | - | @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) + | @ 3:3363 draft fix bug 15 (v2) |/ - | x 2:f91e97234c2b draft fix bug 15 (v1) + | x 2:4e96 draft fix bug 15 (v1) |/ - o 1:de6151c48e1c public fix bug 37 + o 1:7b49 public fix bug 37 | ~ Alice rebases her draft changeset on top of Bob's public changeset and publishes the result. - $ hg rebase -d 5 - rebasing 3:cbdfbd5a5db2 "fix bug 15 (v2)" (bug15) + $ hg rebase -d 4 + rebasing 3:3363442626b3 "fix bug 15 (v2)" (bug15) $ hg push ../public pushing to ../public searching for changes @@ -398,27 +401,27 @@ Figure SG08: review and public changesets after Alice pushes. $ hg --hidden -R ../review shortlog -G -r 1:: - o 7:a06ec1bf97bd public fix bug 15 (v2) + o 7:dd15 public fix bug 15 (v2) | - o 6:540ba8f317e6 public implement feature X (v3) + o 6:9d21 public implement feature X (v3) | - | x 5:0eb74a7b6698 draft implement feature X (v2) + | x 5:1bb4 draft implement feature X (v2) |/ - | x 4:193657d1e852 draft implement feature X (v1) + | x 4:c7ff draft implement feature X (v1) |/ - | x 3:cbdfbd5a5db2 draft fix bug 15 (v2) + | x 3:3363 draft fix bug 15 (v2) |/ - | x 2:f91e97234c2b draft fix bug 15 (v1) + | x 2:4e96 draft fix bug 15 (v1) |/ - @ 1:de6151c48e1c public fix bug 37 + @ 1:7b49 public fix bug 37 | ~ $ hg --hidden -R ../public shortlog -G -r 1:: - o 3:a06ec1bf97bd public fix bug 15 (v2) + o 3:dd15 public fix bug 15 (v2) | - o 2:540ba8f317e6 public implement feature X (v3) + o 2:9d21 public implement feature X (v3) | - o 1:de6151c48e1c public fix bug 37 + o 1:7b49 public fix bug 37 | ~ $ cd .. @@ -445,7 +448,7 @@ $ echo 'pretty good fix' >> file1 $ hg commit -u bob -m 'fix bug 24 (v1)' $ hg shortlog -r . - 4:2fe6c4bd32d0 draft fix bug 24 (v1) + 4:b2be draft fix bug 24 (v1) Alice pulls Bob's draft changeset and amends it herself. :: @@ -457,7 +460,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - new changesets 2fe6c4bd32d0 + new changesets b2be254b3b9f 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo 'better fix (alice)' >> file1 $ hg amend -u alice -m 'fix bug 24 (v2 by alice)' @@ -468,11 +471,11 @@ $ echo 'better fix (bob)' >> file1 $ hg amend -u bob -m 'fix bug 24 (v2 by bob)' $ hg --hidden shortlog -G -r 3:: - @ 5:a360947f6faf draft fix bug 24 (v2 by bob) + @ 5:541f draft fix bug 24 (v2 by bob) | - | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) + | x 4:b2be draft fix bug 24 (v1) |/ - o 3:a06ec1bf97bd public fix bug 15 (v2) + o 3:dd15 public fix bug 15 (v2) | ~ @@ -486,23 +489,23 @@ added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers 2 new content-divergent changesets - new changesets e3f99ce9d9cd + new changesets e3a586fd2377 (run 'hg heads' to see heads, 'hg merge' to merge) Figure SG09: multiple heads! divergence! oh my! $ hg --hidden shortlog -G -r 3:: - * 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + * 6:e3a5 draft fix bug 24 (v2 by alice) | - | @ 5:a360947f6faf draft fix bug 24 (v2 by bob) + | @ 5:541f draft fix bug 24 (v2 by bob) |/ - | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) + | x 4:b2be draft fix bug 24 (v1) |/ - o 3:a06ec1bf97bd public fix bug 15 (v2) + o 3:dd15 public fix bug 15 (v2) | ~ - $ hg --hidden shortlog -r 'successors(2fe6)' - 5:a360947f6faf draft fix bug 24 (v2 by bob) - 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + $ hg --hidden shortlog -r 'successors(b2be)' + 5:541f draft fix bug 24 (v2 by bob) + 6:e3a5 draft fix bug 24 (v2 by alice) Use evolve to fix the divergence. $ cat > editor.sh <