D7631: absorb: allowing committed changes to be absorbed into their ancestors

rdamazio (Rodrigo Damazio Bovendorp) phabricator at mercurial-scm.org
Sat Feb 1 07:10:39 UTC 2020


rdamazio added a comment.


  Sorry for the delay in replying here.

INLINE COMMENTS

> martinvonz wrote in absorb.py:993
> Maybe I'm also misunderstanding what this patch does in that case. `hg absorb -r A` will not obsolete A? I would think it definitely should do that. Perhaps the successors or the absorbed commit should be all the nodes absorbed into as well as any potential leftovers (which were not absorbed).

See the child commit (D7630 <https://phab.mercurial-scm.org/D7630>), which adds the "evolve" operation.

Because of the invariant about parent phases, checking that the revision being absorbed is not public also ensures that everything it's absorbing into is not public. Is that what you were looking for? If the commit A being absorbed is a draft and its parent is public, then absorb just won't find anywhere to absorb the lines and will leave everything in A.

About setting obsmarkers from the absorbed commit into the targets, while that's technically correct, I suspect it'll become a hard-to-navigate mess which adds very little. Do you want me to add that?

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7631/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7631

To: rdamazio, #hg-reviewers
Cc: mharbison72, martinvonz, pulkit, quark, mercurial-devel


More information about the Mercurial-devel mailing list