質問

I'am collaborating with someone on remote repo. We realized that changes I made should be removed out of repo. But those changes are in many changesets and mixed with someone's changes.

We decided to remove my changes just before I commit another changeset. So I've made a patch out of uncommited changes and qpop it.

Now I want to backout rest of my changes out of remote and selectively make patch out of those changes leaving my colleague changes untouched.

Moreover I want to have diffs from new patch with diffs from patch_ive_made_before in one patch. So in other words - I'd like to have one patch out of 2 different changesets. Do I have to do it manually?

Then after I do it, I will commit/push cleared changes into the repository.

How this could be done with Mercurial Queues?

役に立ちましたか?

解決

You can make a patch that is the reverse of a previous change using this command:

hg diff --change NODEID_YOU_REGRET --reverse > undoes-what-you-regret.patch

That patch could be put in a mercurial queue using:

hg qimport undoes-what-you-regret.patch

Were I doing it, though, I'd skip mq entirely and just do:

hg backout --rev NODEID_YOU_REGRET

that will create a new head, which you can hg merge into any line of development that's a decendent of the original change -- i.e.: anything that has that code.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top