Page MenuHomePhabricator

absorb: make the absorbed changeset be automatically "evolved"
Needs ReviewPublic

Authored by rdamazio on Dec 13 2019, 12:55 AM.

Details

Reviewers
None
Group Reviewers
hg-reviewers
Summary

When a committed changeset is absorbed, this will make it so it's not used for
computing the absorption, but is still recreated at the destination.

Diff Detail

Repository
rHG Mercurial
Branch
default
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

rdamazio created this revision.Dec 13 2019, 12:55 AM
martinvonz added inline comments.
tests/test-absorb-rev.t
73–74

hg absorb has a -r flag? Did you forgot to upload some ancestors of this commit?

martinvonz added inline comments.Dec 13 2019, 1:47 AM
tests/test-absorb-rev.t
73–74

Oh, it's added in D7631, which is marked as a *child* of this review. How did that happen? hg phabsend should set the relationships automatically. How did you run that command? Just hg phabsend .^::. or similar? Or did you manually mark D7631 as a child?

(on mobile) I think it was hg phabsend -r .+.^

(on mobile) I think it was hg phabsend -r .+.^

Ohh, that makes some sense that phabsend might do it backwards if you pass the revisions backwards, but that's still clearly a bug. I'll report it in bugzilla if it's not already there. I'll manually update the parent/child relationship on these reviews for now.

rdamazio marked 2 inline comments as done.Dec 14 2019, 1:02 AM
rdamazio retitled this revision from RFC: absorb: make the absorbed changeset be automatically "evolved" to absorb: make the absorbed changeset be automatically "evolved".
rdamazio updated this revision to Diff 18727.

Sorry for the upload mess (though it's arguably a phabsend bug :) ). Tried uploading the "right" way now.

rdamazio updated this revision to Diff 18729.Dec 14 2019, 1:25 AM
rdamazio updated this revision to Diff 18842.Dec 17 2019, 11:42 PM
rdamazio updated this revision to Diff 18844.Dec 17 2019, 11:46 PM
rdamazio updated this revision to Diff 18874.Thu, Dec 19, 2:36 AM
rdamazio updated this revision to Diff 19049.Mon, Jan 6, 7:46 PM
pulkit added a subscriber: pulkit.Mon, Jan 13, 10:57 AM

This results in an empty commit which is not similar to what rebase or evolve will generally result in after D7631 unless ui.allowemptycommit=True is set. I think good behavior is to obsolete the absorbed changeset in favour of either it's parent or one of the revs in which it was absorbed.

Sorry for the upload mess (though it's arguably a phabsend bug :) ). Tried uploading the "right" way now.

I reported that as https://bz.mercurial-scm.org/show_bug.cgi?id=6241.

This results in an empty commit which is not similar to what rebase or evolve will generally result in after D7631 unless ui.allowemptycommit=True is set. I think good behavior is to obsolete the absorbed changeset in favour of either it's parent or one of the revs in which it was absorbed.

I made a related comment on the parent patch before I realized that this patch adds obsmarker handling. My suggestion there was to mark all the commits that got absorbed into as successors, and if there's anything left in the absorbed commit, that would be yet another successor. Would that work?

pulkit added a comment.EditedMon, Jan 13, 12:37 PM

This results in an empty commit which is not similar to what rebase or evolve will generally result in after D7631 unless ui.allowemptycommit=True is set. I think good behavior is to obsolete the absorbed changeset in favour of either it's parent or one of the revs in which it was absorbed.

I made a related comment on the parent patch before I realized that this patch adds obsmarker handling. My suggestion there was to mark all the commits that got absorbed into as successors, and if there's anything left in the absorbed commit, that would be yet another successor. Would that work?

Yep, that sounds good.