将文件夹从存储库迁移到另一个存储库,包含所有更改树数据

时间:2010-10-10 14:58:25

标签: version-control mercurial migration

我在mercurial存储库中有一个文件夹,我想将其复制到另一个mercurial存储库,但是我对此文件夹进行了所有更改,并且没有丢失我在此文件夹上执行的所有版本控制。

这可能与mercurial有关吗?

1 个答案:

答案 0 :(得分:0)

我认为如果与该目录中的文件相关的更改集仅引用该目录中的文件,则可以使用hg export / import来实现该目的。首先确定这些文件的所有变更集,然后导出它们,然后导入它们......这里是shell脚本来完成第一部分:

for i in $(hg log -M --template="{node}\n" directory)
do 
  hg export -r $i -o "$(date '+%Y%m%d%H%M%S')_%H"
done

然后将这些文件移动到新的repo并依次对每个文件进行hg导入。

如果您的更改集不包含其他文件,那么这将有效...即使这样您也可能发现很多拒绝,并且它不包括原始提交消息或合并更改集(显然)。