2008-09-11 5 views
3

У нас возникла проблема с использованием Subversion в Windows. Разработчик зафиксировал файл foo.Data.sql, а позже другой разработчик передал файл под названием foo.data.sql. Естественно, это вызвало проблему у клиентов Windows (все клиенты - Windows в наших средах), потому что файлы чувствительны к регистру в Subversion, но не в Windows.Предотвращение проблем с файлами в Subversion

Нам удалось решить эту проблему путем удаления одного из файлов непосредственно в хранилище, но у меня еще есть два вопроса:

  1. Как это возможно для разработчиков, чтобы сделать это с помощью клиента для Windows? Имеет ли он недопустимую рабочую копию, или есть ли ошибка в клиенте (TortoiseSVN)?
  2. Как мы можем предотвратить внесение изменений, подобных этим, из входа в репозиторий (т. Е. Кто-нибудь написал сценарий крюка, который выполняет проверку работоспособности для проблем с файловым корпусом)?

ответ

4

Существует определенно сценарий крючка, который проверяет чувствительность к регистру - Sourceforge использует его как один из своих опций. Быстрый Google поворачивает вверх: http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windows и http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/case-insensitive.py

Вопрос будет возник на платформе окон, если пользователь 1 добавлено foo.data.sql и пользователь 2 добавил foo.Data.sql перед тем, как обновление от пользователя 1.

Надеюсь, что это поможет :)

0

1; Это возможно, потому что два файла поступают от двух разработчиков. Один из них переименовывает или создает файл с разными случаями, а во время фиксации не понимает, что это будет добавление, а не изменение фиксации.

2; Проверка TortoiseSVN FAQ

2

В Windows файлы нечувствительны к регистру, но сохраняют регистр. Вы можете переименовать файл, изменив его, и Windows сохранит это изменение. Проблема возникает, когда Subversion пытается создать второй файл. Windows сообщает, что файл уже существует.

Если вы хотите объединить два файла в одну копию, а не удалять файл в репозитории, вы можете переименовать плохой файл в репозиторий (например, добавить суффикс типа «.temp»), обновить клиент , объединитесь в хороший файл и удалите плохой файл.

Смежные вопросы