#windows #macos #svn #cross-platform #filenames
#Windows #macos #svn #кроссплатформенный #имена файлов
Вопрос:
Я работаю над проектом как с пользователями Mac OS X, так и с Windows 7. SVN используется в качестве системы контроля версий. Проблемы начались, когда кто-то, использующий Mac OS X, передал файл, содержащий символ «. Этот символ разрешен в файловой системе Mac OS, но не в Windows. Поэтому никто, использующий Windows, не может обновить или повторно извлечь из репозитория.
Есть ли способ
- либо полностью удалите исправленные версии из svn
- или переименование файла во всех ревизиях путем изменения старых ревизий в репозитории каким-либо образом
- или разрешение » символов в именах файлов в NTFS с помощью какого-либо взлома
- или заставить сервер svn запретить недопустимые имена файлов
Я нашел несколько решений, в которых вы используете команды svnadmin dump
и svnadmin load
для удаления версий с ошибками. Однако требуется время, чтобы даже выгрузить весь репозиторий.
Ответ №1:
Вы можете переименовать файл с помощью svn move/rename
в новой редакции, чтобы при создании пользователи svn update
получали файл с допустимым именем. На самом деле изменение ревизий в репозитории потребовало бы некоторых взломов и является чем-то далеким от духа SVN.
Самый простой способ предотвратить подобные вещи в будущем — установить на сервере скрипт перехвата предварительной фиксации. Ознакомьтесь здесь с хорошим описанием того, как установить перехват предварительной фиксации.
Комментарии:
1. Хорошо, но тогда все ревизии, которые содержали ошибку, были бы бесполезны, поскольку к ним нельзя получить доступ в Windows. Спасибо за описание перехвата предварительной фиксации 🙂
2. Обычно это не имеет значения. Если вы хотите удалить изменения из истории (что вообще запрещено), почему бы просто не оставить их как есть? Если вы, например, отметили некоторые из соответствующих базовых показателей, просто измените их впоследствии, чтобы они были хорошей основой для дальнейшей работы. И перейдите к перехвату предварительной фиксации.