Вы должны проверить, есть ли i = 0
и не делить потом.
(При необходимости после проверки вы можете выбросить исключение и обработать его позже).
Дополнительная информация: http://www.cprogramming.com/tutorial/exceptions.html
Используйте hg addremove
. Вы не можете просто перемещать файлы и ожидать, что Mercurial узнает об этом - если вы перемещаете отслеживаемые файлы, используйте hg mv
.
Вы можете использовать hg mv --after
, чтобы показать, что вы уже переместили файл.
hg addremove
будет обнаруживать переименования по факту, если файлы на 100% похожи по умолчанию, и порог сходства можно изменить с помощью -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