file - 在Mercurial中,如何从命名分支中选择特定文件并与默认文件 merge 回去?

标签 file merge mercurial branch

我有一个很大的命名分支,有很多更改。其中一些更改是非破坏性的,因此我想首先选择这些特定文件,并尽快将其与默认文件合并。 (然后,破坏性更改也将合并。)

在Git中,我将创建另一个分支并压缩索引之外的所有变更集,然后将特定文件添加到索引中并提交。之后,我可以将此临时分支与master合并,以便master仅具有非破坏性更改即可进行干净提交。我不知道如何用Mercurial做到这一点。

最佳答案

据我所知,Mercurial没有任何工具可以拆分变更集。如果您幸运的话,您想要的所有更改都位于单独的更改集中,那么您可以使用TransplantExtension。我认为可以将其与Git的“樱桃精选”进行比较,但是我还没有大量使用git。

您也可以使用hg diff手动将对特定文件的更改提交到新分支。使用rev范围标记整个源分支:

hg diff myfile -r startrevision:endrevision

输出可以视为补丁。对所需的每个文件执行此操作,然后提交并合并。跳过破坏性的更改。当然,您也可以在修订范围的中间多次进行破坏性更改。

话虽这么说,但您尝试做的不是为 Mercurial 而建的。硬核历史编辑更是Git的领域(请注意,这只是我的看法)。将您的稳定更改和破坏性更改保存在单独的变更集中(甚至可能在单独的分支中)。我使用transplantrebasestrip移动更改。完成所有操作后,将它们合并并正确推送。

哦,检查MercurialQueues。我还没有使用过它,但是我已经看到它做了一些疯狂的事情。也许它有能力按照您想要的方式做某事。

关于file - 在Mercurial中,如何从命名分支中选择特定文件并与默认文件 merge 回去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140157/

相关文章:

c++ - 如何检查文件最后一行的 new_line 字符? C++

python - 有没有办法找到Python中存在*.csv?

windows - 可执行的merge.exe(从MSYS2中提取)未在Windows上运行

mercurial - 撤消 hg 推送(取消?)

mercurial - Perforce 与 Mercurial 的客户端规范映射类似

java - 抛出并捕获自定义异常

Java - Desktop.open() 无法打开视频或音乐

MySQL - 查询输出合并数据

python - 如何在父子关系上组合两个数据帧(介于连接和合并之间)

git - 当对版本控制的提交要求开发人员更改他们自己的配置时