1 ============================= |
1 ============================= |
2 Mutable History For Mercurial |
2 Mutable History For Mercurial |
3 ============================= |
3 ============================= |
4 |
4 |
5 This package supplies the ``evolve`` extension for Mercurial, which |
5 Evolve Extension |
6 provides several commands to mutate history and deal with the |
6 ================= |
7 resulting issues. |
7 |
8 |
8 This package supplies the ``evolve`` extension for Mercurial, |
9 It also: |
9 |
10 |
10 **The full implementation of the changeset evolution concept is still in |
11 - enables the "changeset obsolescence" feature of Mercurial |
11 progress.** Please subscribe to the `evolve-testers mailing list |
12 - issues several warning messages when trouble appears in your repository |
12 <https://www.mercurial-scm.org/mailman/listinfo/evolve-testers>`_ to stay up to |
13 |
13 date with changes. |
14 **This extension is experimental and not yet meant for production.** |
14 |
15 |
15 This extension: |
16 You can enable it by adding the line below to the ``extensions`` |
16 |
17 section of your hgrc:: |
17 * enables the “changeset evolution” feature of Mercurial core, |
18 |
18 |
19 evolve = PATH/TO/evolve-main/hgext/evolve.py |
19 * provides a set of commands to mutate your history, |
|
20 |
|
21 * issues several warning messages when troubles from some mutable appears in |
|
22 your repository, |
|
23 |
|
24 * provides an ``hg evolve`` command to deal with such "troubles", |
|
25 |
|
26 * improves performance of obsolescence marker exchanges and discovery during |
|
27 push and pull. |
|
28 |
|
29 Documentation |
|
30 ------------- |
20 |
31 |
21 We recommend reading the documentation first. An online version is |
32 We recommend reading the documentation first. An online version is |
22 available here: |
33 available here: |
23 |
34 |
24 https://www.mercurial-scm.org/doc/evolution/ |
35 https://www.mercurial-scm.org/doc/evolution/ |
25 |
36 |
26 Or see the ``doc/`` directory for a local copy. |
37 How to Install |
27 |
38 ============== |
28 Contribute |
39 |
29 ========== |
40 Using Pip |
30 |
41 --------- |
31 Bugs are to be reported on the mercurial's bug tracker (component: evolution): |
42 |
32 https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- |
43 You can install the latest evolution version usin pip:: |
|
44 |
|
45 $ pip install --user hg-evolve |
|
46 |
|
47 Then just enable it in you hgrc:: |
|
48 |
|
49 $ hg config --edit # adds the two line below: |
|
50 [extensions] |
|
51 evolve = |
|
52 |
|
53 From Source |
|
54 ----------- |
|
55 |
|
56 To install a local version from source:: |
|
57 |
|
58 $ hg clone https://www.mercurial-scm.org/repo/evolve/ |
|
59 $ cd evolve |
|
60 $ make install-home |
|
61 |
|
62 Then just enable it in you hgrc:: |
|
63 |
|
64 $ hg config --edit # adds the two line below: |
|
65 [extensions] |
|
66 evolve = |
|
67 |
|
68 Documentation lives in ``doc/``. |
|
69 |
|
70 Server Only Version |
|
71 =================== |
|
72 |
|
73 It is possible to enable a smaller subset of the extensions aimed at server |
|
74 serving repository. It skips the additions of the new commands and local UI |
|
75 messages that might add performance overheads. To use the server only |
|
76 extension, install the package and use:: |
|
77 |
|
78 $ hg config --edit # adds the two line below: |
|
79 [extensions] |
|
80 evolve.serveronly = |
|
81 |
|
82 |
|
83 How to Contribute |
|
84 ================= |
|
85 |
|
86 Bugs are to be reported on the mercurial's bug tracker (component: `evolution`_): |
|
87 |
|
88 .. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=--- |
33 |
89 |
34 Please use the patchbomb extension to send email to mercurial devel. Please |
90 Please use the patchbomb extension to send email to mercurial devel. Please |
35 make sure to use the evolve-ext flag when doing so. You can use a command like |
91 make sure to use the evolve-ext flag when doing so. You can use a command like |
36 this: |
92 this:: |
37 |
93 |
38 hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>' |
94 $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>' |
39 |
95 |
40 See also |
96 For guidelines on the patch description, see the `official Mercurial guideline`_. |
41 https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions |
97 |
42 for guidelines on the patch description. |
98 .. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions |
43 |
99 |
44 Please don't forget to update and run the tests when you fix a bug or |
100 Please don't forget to update and run the tests when you fix a bug or |
45 add a feature. To run the tests, you need a working copy of Mercurial, |
101 add a feature. To run the tests, you need a working copy of Mercurial, |
46 say in $HGSRC: |
102 say in $HGSRC:: |
47 |
103 |
48 cd tests |
104 $ cd tests |
49 python $HGSRC/tests/run-tests.py |
105 $ python $HGSRC/tests/run-tests.py |
50 |
106 |
51 (evolve's stable and default branches correspond to Mercurial's stable |
107 (evolve's stable and default branches correspond to Mercurial's stable |
52 and default branches. So to test evolve from default, you need |
108 and default branches. So to test evolve from default, you need |
53 Mercurial on default.) |
109 Mercurial on default.), Older version of Mercurial are supportd on their respective ``mercurial-x.y`` branches. |
54 |
|
55 |
110 |
56 Changelog |
111 Changelog |
57 ========= |
112 ========= |
58 |
113 |
|
114 6.0.0 -- In progress |
|
115 -------------------- |
|
116 |
|
117 - drop compatibility for Mercurial < 3.8, |
|
118 - removed old (unpackaged) pushexperiment extension, |
|
119 - move all extensions in the official 'hgext3rd' namespace package, |
|
120 - add the "topic" experimental extensions. See the README.topic file for details |
|
121 - officially ship 'evolve.serveronly' extensions. That extensions contains |
|
122 only the part related to exchange and is intended to be used by server. |
|
123 |
|
124 Using the extension will enable evolution, use 'experimental.evolution=!' |
|
125 to disable obsmarkers echange. The old '__temporary__.advertiseobsolete' |
|
126 option is no longer supported. |
|
127 |
59 5.6.1 -- 2017-02-28 |
128 5.6.1 -- 2017-02-28 |
60 |
129 ------------------- |
61 - fix a crash that sometime happened when evolving merges. |
130 |
|
131 - fix a crash that sometime happened when evolving merges. |
62 |
132 |
63 5.6.0 -- 2017-02-01 |
133 5.6.0 -- 2017-02-01 |
64 |
134 ------------------- |
65 - compatibility with Mercurial 4.1. |
135 |
66 - improvement of prune error message. |
136 - compatibility with Mercurial 4.1. |
67 - fold: require --from flag for folding revisions to working copy |
137 - improvement of prune error message. |
68 - fix crash when trying to fold an empty revision set (issue5453) |
138 - fold: require --from flag for folding revisions to working copy |
69 - uncommit: preserve copy information of remaining files (issue5403) |
139 - fix crash when trying to fold an empty revision set (issue5453) |
|
140 - uncommit: preserve copy information of remaining files (issue5403) |
70 |
141 |
71 5.5.0 -- 2016-10-30 |
142 5.5.0 -- 2016-10-30 |
72 |
143 ------------------- |
73 - The {obsolete} template now yield "obsolete" or "". |
144 |
74 - compatibility with Mercurial 4.0 |
145 - The {obsolete} template now yield "obsolete" or "". |
75 - Fix erroneous manifest computation when solving 'bumped' changeset. |
146 - compatibility with Mercurial 4.0 |
76 - split: avoid crash on empty commit (issue5191), |
147 - Fix erroneous manifest computation when solving 'bumped' changeset. |
77 - next: improve locking to avoid issue with working copy parent (issue5244) |
148 - split: avoid crash on empty commit (issue5191), |
78 - prev: improve locking to avoid issue with working copy parent (issue5244) |
149 - next: improve locking to avoid issue with working copy parent (issue5244) |
79 - evolve: fix abort suggestion to include '.' in 'hg update -C .' |
150 - prev: improve locking to avoid issue with working copy parent (issue5244) |
|
151 - evolve: fix abort suggestion to include '.' in 'hg update -C .' |
80 |
152 |
81 5.4.1 -- 2016-08-01 |
153 5.4.1 -- 2016-08-01 |
|
154 ------------------- |
82 |
155 |
83 - compat with Mercurial 3.9 |
156 - compat with Mercurial 3.9 |
84 |
157 |
85 5.4.0 -- 2016-05-06 |
158 5.4.0 -- 2016-05-06 |
|
159 ------------------- |
86 |
160 |
87 - Some collaboration with the topic experimental extensions, |
161 - Some collaboration with the topic experimental extensions, |
88 - hg evolve --all with consider all troubles in your current topic, |
162 - hg evolve --all with consider all troubles in your current topic, |
89 - preserve 'topic' during evolve, |
163 - preserve 'topic' during evolve, |
90 - 'next' and 'prev' restrict themself to the current topic by default, |
164 - 'next' and 'prev' restrict themself to the current topic by default, |
91 - remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without |
165 - remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without |
92 the leading 'hg' will give you an hardtime) |
166 the leading 'hg' will give you an hardtime) |
93 - during 'hg evolve' skip unsupported merge instead of aborting |
167 - during 'hg evolve' skip unsupported merge instead of aborting |
94 - various documentation fix and update |
168 - various documentation fix and update |
95 - hg summary now suggest 'hg evolve --continue when appropriate` |
169 - hg summary now suggest 'hg evolve --continue when appropriate` |
96 - compatibility with Mercurial 3.8 'hgext' namespace package. |
170 - compatibility with Mercurial 3.8 'hgext' namespace package. |
97 - small improvement to the `hg split` instruction |
171 - small improvement to the `hg split` instruction |
98 - add a 'metaedit' command to rewrite changeset meta data. |
172 - add a 'metaedit' command to rewrite changeset meta data. |
99 |
173 |
100 5.3.0 -- 2016-02-11 |
174 5.3.0 -- 2016-02-11 |
|
175 ------------------- |
101 |
176 |
102 - split: add a new command to split changesets, |
177 - split: add a new command to split changesets, |
103 - tests: drop our copy of 'run-tests.py' use core one instead, |
178 - tests: drop our copy of 'run-tests.py' use core one instead, |
104 - bookmark: do all bookmark movement within a transaction. |
179 - bookmark: do all bookmark movement within a transaction. |
105 - evolve: compatibility with Mercurial 3.7 |
180 - evolve: compatibility with Mercurial 3.7 |
152 - significant performance improvement for all revsets. |
230 - significant performance improvement for all revsets. |
153 - provide a hint of how to update to the successor of an obsolete working copy |
231 - provide a hint of how to update to the successor of an obsolete working copy |
154 parent. |
232 parent. |
155 |
233 |
156 5.1.4 -- 2015-04-23 |
234 5.1.4 -- 2015-04-23 |
|
235 ------------------- |
157 |
236 |
158 - significant documentation update |
237 - significant documentation update |
159 - fix issue4616: pulling with bundle2 would crash if common marker when |
238 - fix issue4616: pulling with bundle2 would crash if common marker when |
160 discovered on non-served changesets. |
239 discovered on non-served changesets. |
161 - fix the debugobsrelsethashtree command |
240 - fix the debugobsrelsethashtree command |
162 |
241 |
163 5.1.3 -- 2015-04-20 |
242 5.1.3 -- 2015-04-20 |
|
243 ------------------- |
164 |
244 |
165 - discovery: fix misbehaving discovery across python version |
245 - discovery: fix misbehaving discovery across python version |
166 - pull: properly install the bundle2 par generator |
246 - pull: properly install the bundle2 par generator |
167 (avoid sending all markers for each pull) |
247 (avoid sending all markers for each pull) |
168 - commit: avoid potential deadlock (acquires wlock before lock) |
248 - commit: avoid potential deadlock (acquires wlock before lock) |
169 - graft: avoid potential deadlock (acquires wlock before lock) |
249 - graft: avoid potential deadlock (acquires wlock before lock) |
170 |
250 |
171 5.1.2 -- 2015-04-01 |
251 5.1.2 -- 2015-04-01 |
|
252 ------------------- |
172 |
253 |
173 - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing |
254 - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing |
174 |
255 |
175 5.1.1 -- 2015-03-05 |
256 5.1.1 -- 2015-03-05 |
|
257 ------------------- |
176 |
258 |
177 - debugobsconvert: fix invalid markers during conversion |
259 - debugobsconvert: fix invalid markers during conversion |
178 - discovery: cache some of the obs hash computation to improve performance (issue4518) |
260 - discovery: cache some of the obs hash computation to improve performance (issue4518) |
179 - revset: fix some crash with (issue4515) |
261 - revset: fix some crash with (issue4515) |
180 |
262 |
181 5.1 -- 2015-01-30 |
263 5.1 -- 2015-01-30 |
|
264 ------------------- |
182 |
265 |
183 - evolve: explicitly disable bookmark on evolve (issue4432) |
266 - evolve: explicitly disable bookmark on evolve (issue4432) |
184 - evolve: don't abort Mercurial on version mismatch |
267 - evolve: don't abort Mercurial on version mismatch |
185 - compatibility with mercurial 3.3 |
268 - compatibility with mercurial 3.3 |
186 |
269 |
187 5.0.2 -- 2014-12-14 |
270 5.0.2 -- 2014-12-14 |
|
271 ------------------- |
188 |
272 |
189 - evolve: remove dependency to the rebase extension |
273 - evolve: remove dependency to the rebase extension |
190 |
274 |
191 5.0.1 -- 2014-11-25 |
275 5.0.1 -- 2014-11-25 |
|
276 ------------------- |
192 |
277 |
193 - amend: fix --logfile argument |
278 - amend: fix --logfile argument |
194 - evolve: preserve branch change when evolving |
279 - evolve: preserve branch change when evolving |
195 - evolve: fix potential crash while solving `bumped` changesets. |
280 - evolve: fix potential crash while solving `bumped` changesets. |
196 - uncommit: abort when rev specifies the current changeset |
281 - uncommit: abort when rev specifies the current changeset |
197 - evolve: various message improvement |
282 - evolve: various message improvement |
198 - evolve: fix selection of changeset to evolve from the middle of a stack (issue4434) |
283 - evolve: fix selection of changeset to evolve from the middle of a stack (issue4434) |
199 - evolve: make next/prev only move bookmarks optionally |
284 - evolve: make next/prev only move bookmarks optionally |
200 - evolve: tell user which "base of divergent changeset" is not found |
285 - evolve: tell user which "base of divergent changeset" is not found |
201 |
286 |
202 |
|
203 |
|
204 5.0.0 -- 2014-10-22 |
287 5.0.0 -- 2014-10-22 |
|
288 ------------------- |
205 |
289 |
206 - drop compat with Mercurial pre 3.2 |
290 - drop compat with Mercurial pre 3.2 |
207 - uncommit: add a --rev argument |
291 - uncommit: add a --rev argument |
208 - evolve: add a `working directory now at xxxxxxxxxx` message |
292 - evolve: add a `working directory now at xxxxxxxxxx` message |
209 - evolve: automatically translate obsolete hashes when evolving |
293 - evolve: automatically translate obsolete hashes when evolving |
245 - improvement to obsolescence marker exchange: |
332 - improvement to obsolescence marker exchange: |
246 - added progress when pushing obsmarkers |
333 - added progress when pushing obsmarkers |
247 - added multiple output during obsolescence markers exchange |
334 - added multiple output during obsolescence markers exchange |
248 - only push markers relevant to pushed subset |
335 - only push markers relevant to pushed subset |
249 - add a new experimental way to exchange marker (when server support): |
336 - add a new experimental way to exchange marker (when server support): |
|
337 |
250 - added progress when pulling obsmarkers |
338 - added progress when pulling obsmarkers |
251 - only pull markers relevant to pulled subset |
339 - only pull markers relevant to pulled subset |
252 - avoid exchanging common markers in some case |
340 - avoid exchanging common markers in some case |
253 - use bundle2 as transport when available. |
341 - use bundle2 as transport when available. |
|
342 |
254 - add a hook related to the new commands |
343 - add a hook related to the new commands |
255 |
344 |
256 3.3.2 -- 2014-05-14 |
345 3.3.2 -- 2014-05-14 |
|
346 ------------------- |
257 |
347 |
258 - fix a bug where evolve were creating changeset with 2 parents on windows |
348 - fix a bug where evolve were creating changeset with 2 parents on windows |
259 (fix issues #16, #35 and #42) |
349 (fix issues #16, #35 and #42) |
260 - adds a --obsolete flag to import (requires Mercurial 3.0) |
350 - adds a --obsolete flag to import (requires Mercurial 3.0) |
261 - prune: update to successor rather than parent when pruning '.' with -s |
351 - prune: update to successor rather than parent when pruning '.' with -s |
262 - fold: add missing --message and --logfile option |
352 - fold: add missing --message and --logfile option |
263 - fold: add squash as an alias |
353 - fold: add squash as an alias |
264 |
354 |
265 3.3.1 -- 2014-04-23 |
355 3.3.1 -- 2014-04-23 |
|
356 ------------------- |
266 |
357 |
267 - various language fix |
358 - various language fix |
268 - active bookmark now move when using prev/next (#37) |
359 - active bookmark now move when using prev/next (#37) |
269 - fix some preservation of rename information on evolve (#33) |
360 - fix some preservation of rename information on evolve (#33) |
270 - abort when evolve tries to move a node on top of itself (will helps on the #35 front) |
361 - abort when evolve tries to move a node on top of itself (will helps on the #35 front) |
271 - fold: enable --date and --user options |
362 - fold: enable --date and --user options |
272 |
363 |
273 3.3.0 -- 2014-03-04 |
364 3.3.0 -- 2014-03-04 |
|
365 ------------------- |
274 |
366 |
275 - raise Mercurial's minimal requirement to 2.7 |
367 - raise Mercurial's minimal requirement to 2.7 |
276 - drop `latercomer` and `conflicting` compatibility. Those old alias are |
368 - drop `latercomer` and `conflicting` compatibility. Those old alias are |
277 deprecated for a long time now. |
369 deprecated for a long time now. |
278 - add verbose hint about how to handle corner case by hand. |
370 - add verbose hint about how to handle corner case by hand. |
305 - prune: various minor improvements |
399 - prune: various minor improvements |
306 - prune: add option to prune a specific bookmark |
400 - prune: add option to prune a specific bookmark |
307 - prune: add -u and -d option to control metadata |
401 - prune: add -u and -d option to control metadata |
308 |
402 |
309 3.0.0 -- 2013-02-02 |
403 3.0.0 -- 2013-02-02 |
|
404 ------------------- |
310 |
405 |
311 - compatibility with 2.5 |
406 - compatibility with 2.5 |
312 |
407 |
313 2.2.0 -- |
408 2.2.0 -- |
|
409 ------------------- |
314 |
410 |
315 - make evolve smarter at picking next troubled to solved without --any |
411 - make evolve smarter at picking next troubled to solved without --any |
316 |
412 |
317 2.1.0 -- 2012-12-03 |
413 2.1.0 -- 2012-12-03 |
|
414 ------------------- |
318 |
415 |
319 - qsync fixes |
416 - qsync fixes |
320 - have qfold ask for commit message |
417 - have qfold ask for commit message |
321 |
418 |
322 2.0.0 -- 2012-10-26 |
419 2.0.0 -- 2012-10-26 |
|
420 ------------------- |
323 |
421 |
324 - compat with mercurial 2.4 |
422 - compat with mercurial 2.4 |
325 |
423 |
326 1.1.0 -- 2012-10-26 |
424 1.1.0 -- 2012-10-26 |
|
425 ------------------- |
327 |
426 |
328 - fix troubles creation reporting from rebase |
427 - fix troubles creation reporting from rebase |
329 - rename latecomer to bumped |
428 - rename latecomer to bumped |
330 - renamed conflicting to divergent |
429 - renamed conflicting to divergent |
331 - smarter divergent handling |
430 - smarter divergent handling |
332 |
431 |
333 1.0.2 -- 2012-09-19 |
432 1.0.2 -- 2012-09-19 |
|
433 ------------------- |
334 |
434 |
335 - fix hg fold bug |
435 - fix hg fold bug |
336 - fix hg pull --rebase |
436 - fix hg pull --rebase |
337 - fix detection of conflict with external tools |
437 - fix detection of conflict with external tools |
338 - adapt to core movement (caches and --amend) |
438 - adapt to core movement (caches and --amend) |
339 |
439 |
340 1.0.1 -- 2012-08-31 |
440 1.0.1 -- 2012-08-31 |
|
441 ------------------- |
341 |
442 |
342 - documentation improvement |
443 - documentation improvement |
343 - fix a performance bug with hgweb |
444 - fix a performance bug with hgweb |
344 |
445 |
345 1.0 -- 2012-08-29 |
446 1.0 -- 2012-08-29 |
|
447 ------------------- |
346 |
448 |
347 - Align with Mercurial version 2.3 (drop 2.2 support). |
449 - Align with Mercurial version 2.3 (drop 2.2 support). |
348 - stabilize handle killed parent |
450 - stabilize handle killed parent |
349 - stabilize handle late comer |
451 - stabilize handle late comer |
350 - stabilize handle conflicting |
452 - stabilize handle conflicting |
372 - obsolete/evolve: fix grammar in prerequisite messages |
475 - obsolete/evolve: fix grammar in prerequisite messages |
373 - evolve: avoid duplication in graft wrapper |
476 - evolve: avoid duplication in graft wrapper |
374 - evolve: graft --continue is optional, test |
477 - evolve: graft --continue is optional, test |
375 |
478 |
376 0.6 -- 2012-07-31 |
479 0.6 -- 2012-07-31 |
|
480 ------------------- |
377 |
481 |
378 - obsolete: change warning output to match mercurial core on |
482 - obsolete: change warning output to match mercurial core on |
379 - qsync: ignore nonexistent nodes |
483 - qsync: ignore nonexistent nodes |
380 - make compat server both compatible with "dump" and "dump%i" version |
484 - make compat server both compatible with "dump" and "dump%i" version |
381 |
485 |
382 0.5 -- 2012-07-16 |
486 0.5 -- 2012-07-16 |
|
487 ------------------- |
383 |
488 |
384 - obsolete: Detect conflicting changeset! |
489 - obsolete: Detect conflicting changeset! |
385 - obsolete: adapt to core: marker are written in transaction now |
490 - obsolete: adapt to core: marker are written in transaction now |
386 - evolve: add the solve alias to obsolete |
491 - evolve: add the solve alias to obsolete |
387 - doc: big update of terms and summary of the concept |
492 - doc: big update of terms and summary of the concept |
388 - evolve: switch the official name for "kill" to prune |
493 - evolve: switch the official name for "kill" to prune |
389 |
494 |
390 |
495 |
391 0.4.1 -- 2012-07-10 |
496 0.4.1 -- 2012-07-10 |
|
497 ------------------- |
392 |
498 |
393 - [convert] properly exclude null successors from conversion |
499 - [convert] properly exclude null successors from conversion |
394 - Ignore buggy marker in newerversion |
500 - Ignore buggy marker in newerversion |
395 |
501 |
396 |
502 |
397 0.4.0 -- 2012-07-06 |
503 0.4.0 -- 2012-07-06 |
|
504 ------------------- |
398 |
505 |
399 - obsolete: public changeset are no longer latecomer. |
506 - obsolete: public changeset are no longer latecomer. |
400 - obsolete: move to official binary format |
507 - obsolete: move to official binary format |
401 - adapt for new mercurial |
508 - adapt for new mercurial |
402 - obsolete: we are not compatible with 2.1 any more |
509 - obsolete: we are not compatible with 2.1 any more |
403 |
510 |
404 0.3.0 -- 2012-06-27 |
511 0.3.0 -- 2012-06-27 |
|
512 ------------------- |
405 |
513 |
406 - obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) |
514 - obsolete: Add "latecomer" error detection (stabilize does not handle resolution yet) |
407 - evolve: Introduce a new `uncommit` command to remove change from a changeset |
515 - evolve: Introduce a new `uncommit` command to remove change from a changeset |
408 - rebase: allow the use of --keep again |
516 - rebase: allow the use of --keep again |
409 - commit: --amend option create obsolete marker (but still strip) |
517 - commit: --amend option create obsolete marker (but still strip) |