我们最近在服务器上重新组织了一个非常无组织的网站。本网站使用Mercurial进行版本控制。我们重新组织了一切。数以千计的文件。现在,当我做一个hg status
时,它会显示大量新的未跟踪文件,这些文件由?
和大量丢失的文件表示,这些文件与未跟踪的文件相同,由!
表示。
我如何告诉 Mercurial 我们移动了这些文件?我知道我可以一个接一个地做,但这不是一个选择,因为有成千上万的人。
hg mv --after
来表示您已经移动了文件。
文件默认为 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
使用 hg addremove
.您不能只是移动文件并期望 Mercurial 知道这一点——如果您要移动跟踪的文件,请使用 hg mv
.