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.
Details
- Reviewers
baymax - Group Reviewers
hg-reviewers
Diff Detail
- Repository
- rHG Mercurial
- Branch
- default
- Lint
No Linters Available - Unit
No Unit Test Coverage
Event Timeline
tests/test-absorb-rev.t | ||
---|---|---|
88–89 | hg absorb has a -r flag? Did you forgot to upload some ancestors of this commit? |
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.
Sorry for the upload mess (though it's arguably a phabsend bug :) ). Tried uploading the "right" way now.
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 reported that as https://bz.mercurial-scm.org/show_bug.cgi?id=6241.
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?
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.
This means generate split+fold markers. That is going to be fun to deal with :-). I dont' really have any much better idea however (the alternative seems to use simple prune markers, which is meh).
It's not *always* empty - if there had been lines that it failed absorb (because it couldn't find where to absorb into), those would be left in the commit.
I'm fine with doing this, but is there an efficient way to detect that it became empty?
This means generate split+fold markers. That is going to be fun to deal with :-). I dont' really have any much better idea however (the alternative seems to use simple prune markers, which is meh).
I'm not following this part - why do you need markers at all?
(you can argue whether you want them - but I don't see why you *need* them)
I'm fine with doing this, but is there an efficient way to detect that it became empty?
And by "this" I meant I'm fine with making it disappear if allowemptycommit is False. I don't fully understand how markers help accomplish that.
When you try to create an empty commit, you'll get a None back for the nodeid (from repo.commitctx(), IIRC), so check for that.
It looks like this series is introducing UI change of the same kind as the one @martinvonz is looking into for hg copy. I'll try to have a look at both of them tomorrow.
There seems to have been no activities on this Diff for the past 3 Months.
By policy, we are automatically moving it out of the need-review state.
Please, move it back to need-review without hesitation if this diff should still be discussed.
:baymax:need-review-idle:
hg absorb has a -r flag? Did you forgot to upload some ancestors of this commit?