2011-04-28 129 views
5

我在someFolder中创建并使用了Mercurial存储库。现在我发现需要跟踪文件的一级。所以我需要的是创建someOtherFolder并将其移动someFolder。这应该没问题。移动Mercurial存储库

在这一点上,我将有

someOtherFolder 
    someFolder 
     .hg 
     many other files 

有没有办法告诉水银,以扩大其范围,并开始跟踪文件内someOtherFolder呢?

回答

6

有可能做到这一点一个更好的方式,但有一两件事你可以做的是hg mv所有文件到一个新的子目录someFolder,然后重命名父someFoldersomeOtherFolder,如:

someFolder$ mkdir someFolder 

someFolder$ hg locate | xargs --replace=FILE hg mv FILE someFolder/FILE 

someFolder$ hg status 
A someFolder/a.txt 
A someFolder/foo/b.txt 
R a.txt 
R foo/b.txt 

someFolder$ hg commit -m "moved files to subfolder" 
someFolder$ cd .. 
$ mv someFolder someOtherFolder 
+0

+1太棒了。我必须使用'-I FILE'而不是'--replace FILE' – Dori 2012-09-25 17:43:05

2

你应该能够使用hg convert extension来做到这一点。

我没有测试这一点,但这样的事情可能工作:

$ echo include someFolder > /tmp/myfilemap 
$ echo rename someFolder someOtherFolder/someFolder >> /tmp/myfilemap 
$ hg convert --filemap /tmp/myfilemap /path/to/repo/foo /tmp/mysubfoo-repo