Как мне создать ветку в SVN?
Как мне создать ветку?
Ответы (10)
Разветвлению в Subversion способствует очень легкая и эффективная функция копирования.
Ветвление и тегирование практически одинаковы. Просто скопируйте всю папку из репозитория в другое место репозитория с помощью команды svn copy
.
В основном это означает, что копирование папки подразумевается по соглашению - будь то резервная копия, тег, ветка или что-то еще. В зависимости от того, как вы хотите думать о вещах (обычно в зависимости от того, какой инструмент SCM вы использовали в прошлом), вам необходимо настроить структуру папок в своем репозитории для поддержки вашего стиля.
Общие стили должны иметь группу папок в верхней части вашего репозитория с именами tags
, branches
, trunk
и т. Д., Что позволяет вам копировать все ваши trunk
(или подмножества) в папки tags
и / или branches
. Если у вас несколько проектов, возможно, вы захотите воспроизвести такую структуру для каждого проекта:
Чтобы привыкнуть к этой концепции, может потребоваться некоторое время, но она работает - просто убедитесь, что вы (и ваша команда) четко понимаете соглашения, которые вы собираетесь использовать. Также неплохо иметь хорошее соглашение об именах - что-то, что говорит вам, почему ветка / тег была создана и подходит ли она по-прежнему, - подумайте о способах архивирования устаревших ветвей.
svn cp
использует дешевые копии, он не копирует реальные файлы во время ветвления. См. svnbook.red-bean.com/en/1.1/ch04s02.html а>
- person Walty Yeung; 20.03.2018
Создайте новую ветку с помощью команды 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"
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
(если вы хотите переключить текущую проверку на новую ветку) или svn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(если вы хотите иметь новую ветку в отдельном каталоге), чтобы начать работу над вновь созданной веткой.
- person Jakub Narębski; 14.10.2012
--parents
с svn copy
!
- person Jakub Narębski; 15.10.2012
-m
, он будет выглядеть как svn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. С -m
он говорит svn: E205009: Local, non-commit operations do not take a log message or revision properties
. (Я заменил адреса, но они существуют, за исключением, конечно, нового каталога ветки и всего пути + url, который SVN по какой-то причине слил с ошибкой).
- person Hi-Angel; 29.06.2016
svn cp
== svn copy
, часть svn+ssh
в этом ответе неверна, он не работает (вызывает указанную выше ошибку ↑).
- person Hi-Angel; 29.06.2016
Если ваше репо доступно через 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"
svn cp /trunk/ /branch/NEW_Branch
Если у вас есть некоторые локальные изменения в стволе, используйте Rsync
для синхронизации изменений.
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
rsync
таким образом. svn cp
также скопирует любые локальные изменения.
- person Kevin Panko; 02.09.2015
Предположим, вы хотите создать ветку из имени ствола (как «ТЕСТ»), затем используйте:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
Главный совет для новых пользователей SVN; это может немного помочь в быстром получении правильных URL-адресов.
Запустите svn info
, чтобы отобразить полезную информацию о текущей извлеченной ветви.
URL-адрес должен (если вы запустите svn в корневой папке) предоставить вам URL-адрес, с которого вам нужно скопировать.
Также, чтобы переключиться на только что созданную ветку, используйте команду svn switch
:
svn switch http://my.repo.url/myrepo/branches/newBranchName
Обычно вы копируете его в svn + ssh: //host.example.com/repos/project/branches/mybranch, чтобы вы могли сохранить несколько веток в репозитории, но ваш синтаксис действителен.
Вот несколько советов по как настроить макет репозитория.
Если вы даже планируете объединить свою ветку, я настоятельно рекомендую вам взглянуть на это:
Я слышал, что Subversion 1.5 расширяет возможности отслеживания слияния, но у меня нет в этом опыта. Мой проект находится на 1.4.x, а svnmerge.py спасает жизнь!
- Создайте новую папку вне вашего текущего проекта. Вы можете дать ему любое имя. (Пример: у вас есть касса для проекта под названием «Настройка». И в нем много проектов, таких как «Project1», «Project2» .... И вы хотите создать ветвь «Project1». Итак, сначала откройте « Настройка », щелкните правой кнопкой мыши и создайте новую папку с именем« Project1Branch »).
- Щелкните правой кнопкой мыши "Myproject1" .... TortoiseSVN -> Branch / Tag.
- Выберите рабочую копию.
- Откройте браузер .... Как раз справа от параллели по "To URL".
- Выберите настройку ..... щелкните правой кнопкой мыши, затем «Добавить папку». и пройдите по созданной вами папке. Вот он «Project1Branch». Теперь нажмите кнопку ОК, чтобы добавить.
- Возьмите кассу на этой новой банке.
- Снова перейдите в свой проект, ветку которой вы хотите создать. Щелкните правой кнопкой мыши TorotoiseSVN -> ветка / тег. Затем выберите рабочую копию. И вы можете указать URL-адрес в качестве имени вашей ветки. например {ваш IP-адрес / svn / AAAA / Customization / Project1Branch}. И вы можете установить имя в URL-адресе, чтобы папка создавалась только с этим именем. Например, {Ваш IP-адрес / svn / AAAA / Customization / Project1Branch / MyProject1Branch}.
- Нажмите кнопку ОК. Теперь вы можете видеть логи ... ваша рабочая копия будет храниться в вашей ветке.
- Теперь вы можете оформить заказ ... и позволить вам наслаждаться своей работой. :)
Ниже приведены шаги по созданию ответвления от ствола с помощью TortoiseSVN на компьютере с Windows. Очевидно, что для этого необходимо установить клиент TortoiseSVN.
- Щелкните правой кнопкой мыши обновленную магистраль с локальной машины Windows
- Выберите TortoiseSVN
- Нажмите ветку / тег
- Выберите путь «Кому» в репозитории SVN. Обратите внимание, что целевой URL обновляется в соответствии с указанным путем и именем ветки.
- Не создавайте папки внутри веток в браузере репозитория
- Добавить путь веток. Например, филиалы /
- Добавьте содержательное сообщение журнала для вашей справки
- Нажмите ОК, это создаст новую папку в локальной системе.
- Оформить заказ ветку, созданную в новую папку