如何导入具有不同目录结构的mercurial补丁

时间:2010-03-19 09:33:28

标签: mercurial

我在另一个存储库中使用hg export 42创建了一个补丁,用于修改文件

asd/fgh/foo/bar.c
asd/fgh/foo/fish.h
boo/hoo.txt

我需要将此补丁导入到具有以下结构的存储库中:

src/foo/bar.c
src/foo/fish.h
boo/hoo.txt

是否有任何命令可以实现此目的 - 如果需要,我可以在旧的仓库上重新运行hg export,并且我愿意忽略具有相同路径的文件(例如, boo/hoo.txt

我原先认为hg import -p3 patch.diff中的repository/src会这样做,但显然它仍然希望在顶层创建asd/fgh/层次结构(并在那里放置.rej文件)< / p>

2 个答案:

答案 0 :(得分:2)

一种选择是进入补丁文件,只需更改名称即可。一些搜索和替换,你可能会很高兴。

我知道接受文件名转换映射的唯一mercurial命令是'convert'命令,因此可能通过像hg convert --filemap thefilemap exportingrepo newexportingrepo这样的事件运行旧的repo来找到解决方案,其中文件映射包含在其中:

rename asd/fgh src

然后从newexportingrepo导出并导入到接收回购。

我,我可能会手动编辑补丁。 :)

答案 1 :(得分:0)

您可以随时进行两项更改。重命名目录然后应用补丁。