diff -r d5adce52cef4 -r 98941c28f3e2 tests/test-sharing.t --- a/tests/test-sharing.t Wed Mar 21 16:06:17 2018 +0100 +++ b/tests/test-sharing.t Wed Mar 21 16:18:31 2018 +0100 @@ -46,7 +46,6 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - new changesets 0dc9c9f6ab91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Let's commit a preliminary change and push it to ``test-repo`` for @@ -70,8 +69,10 @@ Figure SG02 $ hg shortlog --hidden -G - @ 2:60ffde5765c5 draft fix bug 37 + @ 3:60ffde5765c5 draft fix bug 37 | + | x 2:2a039763c0f4 draft temporary amend commit for f6490818a721 + | | | x 1:f6490818a721 draft prelim change |/ o 0:0dc9c9f6ab91 public create new project @@ -86,9 +87,8 @@ 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 1 files updated, 0 files merged, 0 files removed, 0 files unresolved updated to "60ffde5765c5: fix bug 37" 1 other heads for branch "default" @@ -108,8 +108,10 @@ Figure SG04 (dev-repo) $ hg shortlog --hidden -G - @ 3:de6151c48e1c draft fix bug 37 + @ 4:de6151c48e1c draft fix bug 37 | + | x 3:ad19d3570adb draft temporary amend commit for 60ffde5765c5 + | | | x 2:60ffde5765c5 draft fix bug 37 |/ | x 1:f6490818a721 draft prelim change @@ -123,10 +125,12 @@ updated to "de6151c48e1c: fix bug 37" 1 other heads for branch "default" $ hg shortlog --hidden -G - @ 3:de6151c48e1c draft fix bug 37 + @ 4:de6151c48e1c draft fix bug 37 | - | x 2:60ffde5765c5 draft fix bug 37 + | x 3:60ffde5765c5 draft fix bug 37 |/ + | x 2:2a039763c0f4 draft temporary amend commit for f6490818a721 + | | | x 1:f6490818a721 draft prelim change |/ o 0:0dc9c9f6ab91 public create new project @@ -139,7 +143,7 @@ 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' @@ -155,7 +159,7 @@ 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:de6151c48e1c draft fix bug 37 $ hg push ../dev-repo pushing to ../dev-repo searching for changes @@ -208,7 +212,7 @@ 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 updating bookmark bug15 $ hg -R ../review bookmarks @@ -253,7 +257,7 @@ 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 updating bookmark featureX @@ -268,7 +272,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 2 new obsolescence markers + 4 new obsolescence markers $ hg -R ../public bookmarks no bookmarks set $ hg push ../review @@ -279,7 +283,7 @@ 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 updating bookmark featureX $ hg -R ../review bookmarks @@ -329,15 +333,17 @@ her change, so now she can publish it. $ cd ../alice $ hg --hidden shortlog -G -r 1:: - @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) + @ 4:cbdfbd5a5db2 draft fix bug 15 (v2) | + | x 3:55dd95168a35 draft temporary amend commit for f91e97234c2b + | | | x 2:f91e97234c2b draft fix bug 15 (v1) |/ o 1:de6151c48e1c public fix bug 37 | ~ $ hg outgoing -q ../public - 3:cbdfbd5a5db2 + 4:cbdfbd5a5db2 $ hg push ../public pushing to ../public searching for changes @@ -352,21 +358,22 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 2 new obsolescence markers - new changesets 540ba8f317e6 + 4 new obsolescence markers (run 'hg heads' to see heads, 'hg merge' to merge) $ hg log -G -q -r 'head()' - o 4:540ba8f317e6 + o 5:540ba8f317e6 | ~ - @ 3:cbdfbd5a5db2 + @ 4:cbdfbd5a5db2 | ~ $ hg --hidden shortlog -G -r 1:: - o 4:540ba8f317e6 public implement feature X (v3) + o 5:540ba8f317e6 public implement feature X (v3) | - | @ 3:cbdfbd5a5db2 draft fix bug 15 (v2) + | @ 4:cbdfbd5a5db2 draft fix bug 15 (v2) |/ + | x 3:55dd95168a35 draft temporary amend commit for f91e97234c2b + | | | x 2:f91e97234c2b draft fix bug 15 (v1) |/ o 1:de6151c48e1c public fix bug 37 @@ -376,7 +383,7 @@ 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) + rebasing 4:cbdfbd5a5db2 "fix bug 15 (v2)" (bug15) $ hg push ../public pushing to ../public searching for changes @@ -384,7 +391,7 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - 2 new obsolescence markers + 3 new obsolescence markers $ hg push ../review pushing to ../review searching for changes @@ -457,7 +464,6 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files - new changesets 2fe6c4bd32d0 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,8 +474,10 @@ $ 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) + @ 6:a360947f6faf draft fix bug 24 (v2 by bob) | + | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 + | | | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd public fix bug 15 (v2) @@ -484,30 +492,31 @@ adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) - 1 new obsolescence markers - new changesets e3f99ce9d9cd + 2 new obsolescence markers (run 'hg heads' to see heads, 'hg merge' to merge) - 2 new content-divergent changesets + 2 new divergent changesets Figure SG09: multiple heads! divergence! oh my! $ hg --hidden shortlog -G -r 3:: - o 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + o 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) | - | @ 5:a360947f6faf draft fix bug 24 (v2 by bob) + | @ 6:a360947f6faf draft fix bug 24 (v2 by bob) |/ + | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 + | | | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd 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) + 6:a360947f6faf draft fix bug 24 (v2 by bob) + 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) Use evolve to fix the divergence. $ HGMERGE=internal:other hg evolve --content-divergent - merge:[5] fix bug 24 (v2 by bob) - with: [6] fix bug 24 (v2 by alice) + merge:[6] fix bug 24 (v2 by bob) + with: [7] fix bug 24 (v2 by alice) base: [4] fix bug 24 (v1) 0 files updated, 1 files merged, 0 files removed, 0 files unresolved working directory is now at 5ad6037c046c @@ -515,20 +524,24 @@ Figure SG10: Bob's repository after fixing divergence. $ hg --hidden shortlog -G -r 3:: - @ 7:5ad6037c046c draft fix bug 24 (v2 by bob) + @ 9:5ad6037c046c draft fix bug 24 (v2 by bob) | - | x 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + | x 8:bcfc9a755ac3 draft temporary amend commit for a360947f6faf + | | + +---x 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + | | + | x 6:a360947f6faf draft fix bug 24 (v2 by bob) |/ - | x 5:a360947f6faf draft fix bug 24 (v2 by bob) - |/ + | x 5:3466c7f5a149 draft temporary amend commit for 2fe6c4bd32d0 + | | | x 4:2fe6c4bd32d0 draft fix bug 24 (v1) |/ o 3:a06ec1bf97bd public fix bug 15 (v2) | ~ - $ hg --hidden shortlog -r 'precursors(5ad6037c046c)' - 5:a360947f6faf draft fix bug 24 (v2 by bob) - 6:e3f99ce9d9cd draft fix bug 24 (v2 by alice) + $ hg --hidden shortlog -r 'precursors(9)' + 6:a360947f6faf draft fix bug 24 (v2 by bob) + 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) $ cat file1 Do stuff. pretty good fix