Как мне создать ветку?

Как создать ветку в SVN?

+608
источник поделиться
10 ответов

Ветвление в Subversion облегчается очень легким и эффективным средством копирования.

Ветвление и пометка фактически одинаковы. Просто скопируйте всю папку в хранилище куда-нибудь в хранилище с помощью команды svn copy.

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

Обычные стили должны иметь несколько папок в верхней части вашего хранилища, которые называются tags, branches, trunk и т.д., Что позволяет копировать весь trunk (или подмножества) в папки tags и/или branches. Если у вас более одного проекта, вы можете повторить такую структуру в каждом проекте:

Может потребоваться некоторое время, чтобы привыкнуть к этой концепции - но она работает - просто убедитесь, что вы (и ваша команда) четко понимаете соглашения, которые вы собираетесь использовать. Также неплохо иметь хорошее соглашение об именах - что-то, что говорит вам, почему была сделана ветка/тег и является ли она по-прежнему уместной, - рассмотреть способы архивации ветвей, которые устарели.

+343
источник

Создайте новую ветку с помощью команды svn copy следующим образом:

$ svn copy svn+ssh://host.example.com/repos/project/trunk \
           svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
      -m "Creating a branch of project"
+597
источник

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

svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"
+30
источник
svn cp /trunk/ /branch/NEW_Branch

Если у вас есть локальные изменения в магистрали, используйте Rsync для синхронизации изменений

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
+25
источник

Обычно вы копируете его в svn + ssh://host.example.com/repos/project/branches/mybranch, чтобы вы могли хранить несколько ветвей в репозитории, но ваш синтаксис действительно.

Вот несколько советов по как настроить макет репозитория.

+14
источник

Предположим, вы хотите создать ветку из имени соединительной линии (как "TEST" ) затем используйте:

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
+14
источник

Если вы планируете слияние своего ветки, я настоятельно рекомендую вам посмотреть на это:

Svnmerge.py

Я слышал, что Subversion 1.5 строит больше отслеживания слияния, у меня нет опыта с этим. Мой проект находится на 1.4.x, а svnmerge.py - спасатель жизни.

+11
источник

Верхний совет для новых пользователей SVN; это может немного помочь получить правильные URL-адреса.

Запустите svn info, чтобы отобразить полезную информацию о текущей выделенной ветке.

URL-адрес должен (если вы запустите svn в корневой папке), укажите URL-адрес, который вам нужно скопировать.

Также, чтобы переключиться на вновь созданную ветвь, используйте команду svn switch:

svn switch http://my.repo.url/myrepo/branches/newBranchName
+11
источник
  • Создайте новую папку вне вашего текущего проекта. Вы можете дать ему любое имя. (Пример: у вас есть чек для проекта под названием "Настройка", и у него много проектов, таких как "Project1", "Project2".... И вы хотите создать ветвь "Project1". Поэтому сначала откройте " "Настройка", щелкните правой кнопкой мыши и создайте новую папку и дайте ей имя "Project1Branch" ).
  • Щелкните правой кнопкой мыши на "Myproject1"... TortoiseSVN → Branch/Tag.
  • Выберите рабочую копию.
  • Откройте браузер... Просто справа от параметра "К URL".
  • Выберите настройку..... щелкните правой кнопкой мыши и затем добавьте папку. и пройдите через папку, которую вы создали. Здесь это "Project1Branch". Теперь нажмите кнопку ОК, чтобы добавить.
  • Возьмите кассу этого нового банча.
  • Снова перейдите в свой проект, какую ветку вы хотите создать. Щелкните правой кнопкой мыши TorotoiseSVN → branch/tag. Затем выберите рабочую копию. И вы можете указать URL в качестве имени вашей ветки. например {ваш IP-адрес/svn/AAAA/Настройка/Project1Branch}. И вы можете установить имя в URL-адресе, чтобы оно создавало только папку с этим именем. Например {Ваш IP-адрес/svn/AAAA/Настройка/Project1Branch/MyProject1Branch}.
  • Нажмите кнопку OK. Теперь вы можете увидеть журналы в... ваша рабочая копия будет сохранена в вашей ветке.
  • Теперь вы можете взять чек... и позволить вам наслаждаться вашей работой.:)
+5
источник

Разветвление SVN совершенно бесполезно, это 100% то же самое, как если бы вы создали совершенно новый SVN-репозиторий.

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

Может быть, даже лучше создать новый репозиторий, а затем удалить его, вы сэкономите место на сервере!

Надеюсь, команда SVN исправит это в будущем и создаст ветки на основе различий в файлах, а не копирует целые папки...

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос