Допустим, у меня есть два файла в репозитории Subversion:
workingcopy/
file1.txt
file2.txt
А потом я переименую один, внешний по отношению к SVN:
$ mv file1.txt fileA.txt
Теперь SVN помечает file1.txt как отсутствующий, fileA.txt
как неверсированный
$ svn st
! file1.txt
? fileA.txt
Насколько SVN знает, я удалил file1.txt
и создал совершенно другой файл fileA.txt
, поэтому он не будет знать, как отслеживать изменения между файлами.
РЕДАКТИРОВАТЬ: это работает, я просто не могу правильно записать имена файлов:)
Аналогично, если вы удаляете файл
$ rm file2.txt
$ svn st
! file2.txt
SVN знает только, что файл пропал, и попытка пометить его как удаленный не работает:
$ svn remove file2.txt
svn: 'file2.txt' does not exist
Я знаю, что в Mercurial вы можете пометить файл как перемещенный, скопированный, удаленный и т. Д. После факта с помощью флага --after
, независимо от того, что Mercurial видит в рабочей копии.
Есть ли похожий трюк в SVN?