我们最近在我们的服务器上重新组织了一个非常无组织的网站。该网站使用Mercurial进行版本控制。我们重新组织了一切。成千上万的文件。现在当我执行hg status
时,它会显示大量新的未跟踪文件,由?
和大量丢失的文件表示,这些文件与未跟踪的文件相同,由!
表示
如何告诉Mercurial我们移动了这些文件?我知道我可以一个接一个地做,但鉴于有成千上万,这不是一个选择。
答案 0 :(得分:70)
您可以使用hg mv --after
表示您已移动文件。
答案 1 :(得分:22)
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
。