Проблема с SVN и изменением имени файла - PullRequest
4 голосов
/ 17 января 2011

Я программирую в Visual Studio 2010, используя TortiseSVN и VisualSVN в качестве моего клиента для подключения к репозиториям SVN.

У меня частенькая проблема, хотя в целом с SVN. Одна вещь, которая постоянно появляется, - то, что, если я делаю изменения в файлах, а именно, именах файлов, или перемещаю их в новые папки и т. Д., Я в конечном итоге получаю всевозможные конфликты с хранилищем, и это просто вызывает все виды странных ошибок.

Я понимаю важность контроля версий и доступа к регистрации / извлечения, как это, но что большинство из вас делает, чтобы иметь дело с такого рода вещами? Я имею в виду, что я пытался сделать весь текст «Удалить из Subversion», изменить свой файл, затем «Добавить в Subversion», и, похоже, он не очень хорошо справляется со своей задачей. Это особенно расстраивает при работе над веб-проектами, где имена файлов могут меняться очень часто по мере развития проекта и его многогранности.

Существуют ли стандартные способы борьбы с такого рода вещами или это всего лишь один из недостатков SVN в целом?

Ответы [ 3 ]

4 голосов
/ 17 января 2011

Во-первых, я должен признать, что в течение последних лет я вступал в каждую ловушку, которую предлагает SVN.Но на 99% это была моя ошибка.

Распространенные ошибки:

  • Переименование файла и изменение только в нижнем регистре.txt на UPPERCASE.txt (только для Windows, чтобы избежать этого измененияимя сначала UPPERCASE1.txt, а затем переименовать в UPPERCASE.txt)
  • Использование проводника для операций переименования / удаления / перемещения (лучше использовать встроенные методы Tortoises
  • Перекрестное слияние связанных конфликтов

и еще кое-что, что я не могу вспомнить в данный момент.

Я еще не использовал visualsvn, но я думаю, что он построен поверх Tortoise. Если вы используете Visual Studio, Я бы порекомендовал ankhsvn http://ankhsvn.open.collab.net/, который отлично интегрируется в визуальную студию и отлавливает большинство ошибок, которые вы можете совершить (все изнутри IDE).

1 голос
/ 17 января 2011

Еще один совет: не пытайтесь перемещать / удалять / переименовывать целую кучу файлов и каталогов за один коммит. В Subversion Server и клиенте v1.6 есть как минимум пара ошибок (от которых зависят Ankhsvn и tortoise), которые испортили хотя бы вашу рабочую копию. Подойдет многокомпонентный подход (поэтому сначала переименуйте, зафиксируйте, затем переместите одну папку, зафиксируйте и т. Д.).

0 голосов
/ 17 января 2011

Subversion обрабатывает изменения имени файла как удаление и добавление, что может быть несколько проблематично. Это просто неотъемлемое ограничение Subversion и часть того, почему некоторые из нас перешли на использование разных систем контроля версий.

...