我在另一个存储库中使用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>
答案 0 :(得分:2)
一种选择是进入补丁文件,只需更改名称即可。一些搜索和替换,你可能会很高兴。
我知道接受文件名转换映射的唯一mercurial命令是'convert'命令,因此可能通过像hg convert --filemap thefilemap exportingrepo newexportingrepo
这样的事件运行旧的repo来找到解决方案,其中文件映射包含在其中:
rename asd/fgh src
然后从newexportingrepo导出并导入到接收回购。
我,我可能会手动编辑补丁。 :)
答案 1 :(得分:0)
您可以随时进行两项更改。重命名目录然后应用补丁。