Создание локальной ветки SVN

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

Но я в настоящее время использую SVN и нуждаюсь в выходе из уже измененной версии SVN. В сущности, я хочу:

  • svn_repo_version = 2259
  • working_copy = изменено 2259
  • new_local_svn_branch = на основе измененного 2259

Каков наилучший способ сделать это?

Ответ 1

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

Нет причин, по которым вы не сможете создать свою собственную ветку. Фактически, я использую, чтобы дать нашим разработчикам специальный каталог "private", где они могли бы поместить свой собственный код и сделать частное ветвление. У меня была pre-commit script, которая позволяла владельцу ветки вносить изменения, хотя у меня была настройка, поэтому каждый мог ее увидеть.

Если вы опасаетесь, что ваши частные ветки могут засорить каталог branches, помните, что вы можете удалить ветку из каталога branches. Или вы можете запросить параллельную директорию private, где вы можете разместить свои материалы.

Если вы действительно хотите создать настоящую личную область, где вы можете использовать Subversion и проверить код, не появляясь в основном репозитории, у вас есть два варианта, о которых я знаю:

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

  • Git: Git поставляется с инструментом под названием git-svn, который позволяет вам вытащить данные из репозитория Subversion в локальный репозиторий Git. Затем вы можете использовать свой локальный репозиторий Git для своего разветвления, а затем переместить обратно в Subversion. Там даже Git версия Tortoise.

Единственное предостережение в том, что вам придется загрязнять руки интерфейсом командной строки с обоими этими инструментами.

Ответ 2

Боюсь, вам нужно будет создать новую ветку и слить в нее любые изменения. Единственная альтернатива - просто проверить ветку, продолжать обновление и не совершать (или продолжать переключение до фиксации) до тех пор, пока вы не закончите. У вас всегда может быть две рабочие копии, если вам нужно работать с исходной ветвью/стволом. Нигде рядом с идеалом, но то, как работает SVN, что все еще очень хорошо, учитывая альтернативы в то время.

Я лично управляю местной историей, если это то, что вы делаете после моей IDE (Eclipse).