Как создать ветку в SVN?
Как мне создать ветку?
Ответ 1
Ветвление в Subversion облегчается очень легким и эффективным средством копирования.
Ветвление и пометка фактически одинаковы. Просто скопируйте всю папку в хранилище куда-нибудь в хранилище с помощью команды svn copy
.
По сути, это означает, что условно копирование папки означает - будь то резервное копирование, тег, ветвь или что-то еще. В зависимости от того, как вы хотите думать о вещах (обычно в зависимости от того, какой инструмент SCM вы использовали в прошлом), вам нужно настроить структуру папок в вашем хранилище для поддержки вашего стиля.
Обычные стили должны иметь несколько папок в верхней части вашего хранилища, которые называются tags
, branches
, trunk
и т.д., Что позволяет копировать весь trunk
(или подмножества) в папки tags
и/или branches
. Если у вас более одного проекта, вы можете повторить такую структуру в каждом проекте:
Может потребоваться некоторое время, чтобы привыкнуть к этой концепции - но она работает - просто убедитесь, что вы (и ваша команда) четко понимаете соглашения, которые вы собираетесь использовать. Также неплохо иметь хорошее соглашение об именах - что-то, что говорит вам, почему была сделана ветка/тег и является ли она по-прежнему уместной, - рассмотреть способы архивации ветвей, которые устарели.
Ответ 2
Создайте новую ветку с помощью команды 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"
Ответ 3
Если вы используете репозиторий через 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"
Ответ 4
svn cp /trunk/ /branch/NEW_Branch
Если у вас есть локальные изменения в магистрали, используйте Rsync
для синхронизации изменений
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
Ответ 5
Обычно вы копируете его в svn + ssh://host.example.com/repos/project/branches/mybranch, чтобы вы могли хранить несколько ветвей в репозитории, но ваш синтаксис действительно.
Вот несколько советов по как настроить макет репозитория.
Ответ 6
Предположим, вы хотите создать ветку из имени соединительной линии (как "TEST" ) затем используйте:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
Ответ 7
Если вы планируете слияние своего ветки, я настоятельно рекомендую вам посмотреть на это:
Я слышал, что Subversion 1.5 строит больше отслеживания слияния, у меня нет опыта с этим. Мой проект находится на 1.4.x, а svnmerge.py - спасатель жизни.
Ответ 8
Верхний совет для новых пользователей SVN; это может немного помочь получить правильные URL-адреса.
Запустите svn info
, чтобы отобразить полезную информацию о текущей выделенной ветке.
URL-адрес должен (если вы запустите svn в корневой папке), укажите URL-адрес, который вам нужно скопировать.
Также, чтобы переключиться на вновь созданную ветвь, используйте команду svn switch
:
svn switch http://my.repo.url/myrepo/branches/newBranchName
Ответ 9
- Создайте новую папку вне вашего текущего проекта. Вы можете дать ему любое имя. (Пример: у вас есть чек для проекта под названием "Настройка", и у него много проектов, таких как "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. Теперь вы можете увидеть журналы в... ваша рабочая копия будет сохранена в вашей ветке.
- Теперь вы можете взять чек... и позволить вам наслаждаться вашей работой.:)
Ответ 10
Разветвление SVN совершенно бесполезно, это 100% то же самое, как если бы вы создали совершенно новый SVN-репозиторий.
Он копирует всю файловую систему чего-то, что вы разветвляете, и единственное преимущество, которое у вас есть, это возможность слить ветку обратно в базу, но вы можете сделать то же самое с совершенно новым репозиторием, если вы создали это вместо ветки...
Может быть, даже лучше создать новый репозиторий, а затем удалить его, вы сэкономите место на сервере!
Надеюсь, команда SVN исправит это в будущем и создаст ветки на основе различий в файлах, а не копирует целые папки...