Создание локальной ветки SVN - PullRequest
15 голосов
/ 01 июня 2011

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

Но в настоящее время я использую SVN и мне нужно разветвляться из ужеМодифицированная версия SVN.По сути, я хочу следующее:

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

Как лучше всего это сделать?

Ответы [ 2 ]

17 голосов
/ 02 июня 2011

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

Нет причин, по которым вы не сможете создать свою собственную ветку. На самом деле, я использую, чтобы дать нашим разработчикам специальный «приватный» каталог, в который они могли бы поместить свой собственный код и сделать приватное ветвление. У меня был сценарий предварительной фиксации, который позволял вносить изменения только владельцу ветки, хотя он был настроен, так что любой мог его увидеть.

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

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

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

  • Git : Git поставляется с инструментом под названием git-svn, который позволяет извлекать данные из репозитория Subversion в локальный репозиторий Git. Затем вы можете использовать свой локальный Git-репозиторий, чтобы выполнить ветвление, а затем перенести ваши изменения обратно в Subversion. Есть даже Git-версия Черепаха .

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

2 голосов
/ 01 июня 2011

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

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

...