[Bug 5669] New: hg qrefresh loses graft metadata

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Mon Aug 28 16:52:28 UTC 2017


https://bz.mercurial-scm.org/show_bug.cgi?id=5669

            Bug ID: 5669
           Summary: hg qrefresh loses graft metadata
           Product: Mercurial
           Version: 4.3
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: mq
          Assignee: bugzilla at mercurial-scm.org
          Reporter: dinumarina at gmail.com
                CC: mercurial-devel at mercurial-scm.org

Use case:
We have "feature" branches in our repo, merged into "master" and "dev"
branches. Developers commit to "dev" branch and commits are cherrypicked back
to master and feature branches. Developers are undisciplined in committing
separate changesets for the feature branches. So code review has to split a
"dev" commit and graft the parts to the various feature branches. Workflow:

- graft changeset from remote branch
- need to prune some changes from grafted changeset:
- ~ hg qimport -r tip
- do some changes
- ~ hg qrefresh (if no qrefresh, metadata is kept; so loss is taking place
here)
- ~ hg qfinish -a

At this point, graft metadata is lost. The alternate histedit workflow doesn't
lose this metadata.

Alternative workflows:
A) Edit graft before it's committed: it would be great if there was a way for
the graft extension to forgo commit
B) histedit: this works and we use it for the purpose, but is very cumbersome
because of the interactive nature and no thg GUI support; it would be so nice
though if histedit would allow a shortcut option for "edit tip" (I've tried
using --commands with a file containing "edit tip"), but it seems it doesn't
parse revision names, so we need to make a special tool just to run histedit
for tip

In the absence of A) which would be the semantically correct way to do it, I
think the MQ way is the best alternative, if only it didn't lose graft meta.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list