54 Unlike the previous way of handling such changes, by stripping the old |
54 Unlike the previous way of handling such changes, by stripping the old |
55 changesets from the repository, obsolescence markers can be propagated |
55 changesets from the repository, obsolescence markers can be propagated |
56 between repositories. This allows for a safe and simple way of exchanging |
56 between repositories. This allows for a safe and simple way of exchanging |
57 mutable history and altering it after the fact. Changeset phases are |
57 mutable history and altering it after the fact. Changeset phases are |
58 respected, such that only draft and secret changesets can be altered (see |
58 respected, such that only draft and secret changesets can be altered (see |
59 "hg hg phases" for details). |
59 "hg help phases" for details). |
60 |
60 |
61 Obsolescence is tracked using "obsolete markers", a piece of metadata |
61 Obsolescence is tracked using "obsolete markers", a piece of metadata |
62 tracking which changesets have been made obsolete, potential successors |
62 tracking which changesets have been made obsolete, potential successors |
63 for a given changeset, the moment the changeset was marked as obsolete, |
63 for a given changeset, the moment the changeset was marked as obsolete, |
64 and the user who performed the rewriting operation. The markers are stored |
64 and the user who performed the rewriting operation. The markers are stored |
74 |
74 |
75 Current feature status |
75 Current feature status |
76 ====================== |
76 ====================== |
77 |
77 |
78 This feature is still in development. If you see this help, you have |
78 This feature is still in development. If you see this help, you have |
79 enable an extension that turned this feature on. |
79 enabled an extension that turned this feature on. |
80 |
80 |
81 Obsolescence markers will be exchanged between repositories that |
81 Obsolescence markers will be exchanged between repositories that |
82 explicitly assert support for the obsolescence feature (this can currently |
82 explicitly assert support for the obsolescence feature (this can currently |
83 only be done via an extension). |
83 only be done via an extension). |
84 |
84 |
110 0 - 1f0dee641bb7 add a (public) |
110 0 - 1f0dee641bb7 add a (public) |
111 |
111 |
112 test kill and immutable changeset |
112 test kill and immutable changeset |
113 |
113 |
114 $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' |
114 $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' |
115 1 public stable |
115 1 public |
116 $ hg prune 1 |
116 $ hg prune 1 |
117 abort: cannot prune immutable changeset: 7c3bad9141dc |
117 abort: cannot prune immutable changeset: 7c3bad9141dc |
118 (see "hg help phases" for details) |
118 (see "hg help phases" for details) |
119 [255] |
119 [255] |
120 $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' |
120 $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' |
121 1 public stable |
121 1 public |
122 |
122 |
123 test simple kill |
123 test simple kill |
124 |
124 |
125 $ hg id -n |
125 $ hg id -n |
126 5 |
126 5 |
375 |
375 |
376 $ hg evolve --any --traceback --bumped |
376 $ hg evolve --any --traceback --bumped |
377 recreate:[8] another feature that rox |
377 recreate:[8] another feature that rox |
378 atop:[7] another feature (child of ba0ec09b1bab) |
378 atop:[7] another feature (child of ba0ec09b1bab) |
379 computing new diff |
379 computing new diff |
380 committed as 2d8c5414e9f0 |
380 committed as 6707c5e1c49d |
381 working directory is now at 2d8c5414e9f0 |
381 working directory is now at 6707c5e1c49d |
382 $ hg glog |
382 $ hg glog |
383 @ 9 feature-B: bumped update to 99833d22b0c6: - test |
383 @ 9 feature-B: bumped update to 99833d22b0c6: - test |
384 | |
384 | |
385 o 7 : another feature (child of ba0ec09b1bab) - test |
385 o 7 : another feature (child of ba0ec09b1bab) - test |
386 | |
386 | |
599 merging 1 incomplete! (edit conflicts, then use 'hg resolve --mark') |
599 merging 1 incomplete! (edit conflicts, then use 'hg resolve --mark') |
600 abort: unresolved conflicts, can't continue |
600 abort: unresolved conflicts, can't continue |
601 (use hg resolve and hg graft --continue) |
601 (use hg resolve and hg graft --continue) |
602 [255] |
602 [255] |
603 $ hg log -r7 --template '{rev}:{node|short} {obsolete}\n' |
603 $ hg log -r7 --template '{rev}:{node|short} {obsolete}\n' |
604 7:a5bfd90a2f29 stable |
604 7:a5bfd90a2f29 |
605 $ echo 3 > 1 |
605 $ echo 3 > 1 |
606 $ hg resolve -m 1 |
606 $ hg resolve -m 1 |
607 (no more unresolved files) |
607 (no more unresolved files) |
608 $ hg graft --continue -O |
608 $ hg graft --continue -O |
609 grafting 7:a5bfd90a2f29 "conflict" (tip) |
609 grafting 7:a5bfd90a2f29 "conflict" (tip) |
810 $ cd ../work |
810 $ cd ../work |
811 $ hg fold .^ --message "Folding with custom commit message" |
811 $ hg fold .^ --message "Folding with custom commit message" |
812 2 changesets folded |
812 2 changesets folded |
813 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
813 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
814 $ glog |
814 $ glog |
815 @ 16:d1297ecc971f@default(draft) Folding with custom commit message |
815 @ 16:98cb758db56d@default(draft) Folding with custom commit message |
816 | |
816 | |
817 o 13:27b934eaf1f9@default(draft) dansk! |
817 o 13:0a2f9b959bb4@default(draft) dansk! |
818 | |
818 | |
819 o 7:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) |
819 o 7:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) |
820 | |
820 | |
821 o 6:ba0ec09b1bab@default(public) a nifty feature |
821 o 6:ba0ec09b1bab@default(public) a nifty feature |
822 | |
822 | |
829 |
829 |
830 $ hg fold .^ --logfile commit-message |
830 $ hg fold .^ --logfile commit-message |
831 2 changesets folded |
831 2 changesets folded |
832 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
832 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
833 $ hg qlog |
833 $ hg qlog |
834 17 - 0b1eca0e871b A longer |
834 17 - a00182c58888 A longer |
835 commit message (draft) |
835 commit message (draft) |
836 7 - 99833d22b0c6 another feature (child of ba0ec09b1bab) (public) |
836 7 - 99833d22b0c6 another feature (child of ba0ec09b1bab) (public) |
837 6 - ba0ec09b1bab a nifty feature (public) |
837 6 - ba0ec09b1bab a nifty feature (public) |
838 0 - e55e0562ee93 base (public) |
838 0 - e55e0562ee93 base (public) |
839 |
839 |