重新组织后,告诉Mercurial有关移动文件的信息

时间:2012-05-31 21:02:09

标签: mercurial

我们最近在我们的服务器上重新组织了一个非常无组织的网站。该网站使用Mercurial进行版本控制。我们重新组织了一切。成千上万的文件。现在当我执行hg status时,它会显示大量新的未跟踪文件,由?和大量丢失的文件表示,这些文件与未跟踪的文件相同,由!表示

如何告诉Mercurial我们移动了这些文件?我知道我可以一个接一个地做,但鉴于有成千上万,这不是一个选择。

3 个答案:

答案 0 :(得分:70)

您可以使用hg mv --after表示您已移动文件。

答案 1 :(得分:22)

如果文件默认情况下100%相似,

hg addremove将检测到事后重命名,并且可以使用-s覆盖相似性阈值。

此外,如果使用TortoiseHg,thg guess将弹出一个对话框,您可以使用滑块设置相似性并查看添加和删除文件之间的匹配,然后选择要记录为的对重命名。

示例:

C:\>hg init test
C:\>cd test
C:\test>echo >file1
C:\test>echo ONE>file1
C:\test>echo TWO>file2
C:\test>hg ci -Am init
adding file1
adding file2

C:\test>ren file1 file3
C:\test>ren file2 file4
C:\test>hg st
! file1
! file2
? file3
? file4

C:\test>hg addrem
removing file1
removing file2
adding file3
adding file4
recording removal of file1 as rename to file3 (100% similar)
recording removal of file2 as rename to file4 (100% similar)

C:\test>hg status -C   # -C shows file copies.
A file3
  file1                # file3 copied from file1...
A file4
  file2                # file 4 copied from file2...
R file1
R file2

答案 2 :(得分:13)

使用hg addremove。你不能只是移动文件并期望Mercurial知道这一点 - 如果你正在移动跟踪文件,请使用hg mv