2011-01-26 121 views

回答

8

你会想要使用随mercurial一起提供的convert扩展。由于您想从历史记录中清理目录,因此您必须完全过滤现有的存储库,然后将其转换为新的存储库。

假设你的回购以下组成结构:

/ 
src 
doc 
images 
upload 

创建包含以下内容

exclude upload 

你可以做更多与此文件,但保持简便得到一个简单的文本文件到你的目标。要排除的路径是相对于库根

现在运行善变转换

hg convert --filemap path/to/the/textfile old-repo new-repo 

切换到新的回购协议的目录。请注意,mercurial创建了一个裸/空rev回购(没有内容,但.hg目录)。运行以下内容更新到最新的更改。注意上传目录不见了!

cd path/to/new/repo 
hg update 

警告:我不知道如何处理命名的分支或标记。你是你自己的。至少你不会修改原始的回购。根据需要制作尽可能多的副本,以便正确使用。