материнская плата выделенного сервера, который я арендую уже пять лет, вышла из строя, и материнскую плату заменили на новую. Очень старый дистрибутив (Debian) не мог справиться со всем новым оборудованием на материнской плате, поэтому я решил переустановить новый дистрибутив (Debian Wheezy) с нуля (даже обновление было довольно проблематичным, поскольку старый Debian не распознавал чипсет Ethernet новой материнской платы, насколько я могу судить, поэтому я решил переустановить с нуля).
Я переустановил SVN и получил все репозитории, выполнив:
tar -xzf repoBackups.tgz
И это «работает».
Проблема в том, что хотя, скажем, Eclipse распознает репозитории SVN, он хочет зафиксировать каждый отдельный файл, даже если они идентичны.
Может ли это быть связано с временными метками на файлах? В любом случае, есть ли у вас идея, что вызвало это и как решить проблему?
ямогпросто попросите всех повторно зафиксировать каждый отдельный файл каждого проекта, и я думаю, что все будет в порядке, но некоторые из этих проектов довольно большие, и это будет немного болезненно для разработчиков.
В качестве бонусного (и менее важного) вопроса: не «страдает» ли от этой проблемы другая система контроля версий, например Git или Mercurial?
решение1
Копирование файлов репозитория Subversion не является поддерживаемым способом резервного копирования. (См.[SVN]: Как сделать резервную копию репозитория?иКаков наилучший способ резервного копирования репозиториев Subversion?иКак сделать резервную копию удаленного репозитория SVN(для надлежащих методов.) Похоже, что база данных оказалась в поврежденном состоянии.
Попробуйте запустить svnadmin dump
на нетарированном репозитории и svnadmin load
на полученном дампе. Это может привести к рабочему репозиторию (но не обещаю, я не очень хорошо знаком с svn).
Временные метки файлов не имеют значения. Subversion не использует их для принятия решения о фиксации, она использует номера ревизий.