Обновление рабочей копии Subversion, когда кто-то зафиксировал файл с недопустимым именем - PullRequest
3 голосов
/ 13 октября 2011

Я работаю над проектом с пользователями Mac OS X и Windows 7.SVN используется в качестве системы контроля версий.Проблемы начались, когда кто-то, использующий Mac OS X, зафиксировал файл, содержащий символ «. Этот символ разрешен в файловой системе Mac OS, но не в Windows. Поэтому никто, использующий Windows, не может обновлять или повторно извлекать данные из хранилища.

Есть ли способ

  • либо полностью удалить исправленные ревизии из svn
  • , либо переименовать файл во всех ревизиях, изменив каким-либо образом старые ревизии в хранилище
  • или разрешить "символы в именах файлов в NTFS с помощью некоторого хака"
  • или заставить сервер svn запрещать недопустимые имена файлов

Я нашел несколько решений, в которых вы используетеsvnadmin dump и svnadmin load команды для удаления ошибочных версий.Тем не менее, требуется целая вечность, чтобы даже сбросить весь репозиторий.

1 Ответ

2 голосов
/ 13 октября 2011

Вы можете переименовать файл, используя svn move/rename в новой ревизии, поэтому, когда пользователи наберут svn update, они получат файл с действительным именем. На самом деле изменение ревизий в хранилище потребует некоторых хаков, и это далеко от духа SVN.

Самый простой способ предотвратить подобные вещи в будущем - это установить на сервере скрипт ловушки перед фиксацией. Посмотрите здесь хорошее описание того, как установить хук до фиксации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...