Как мне создать ветку?
-
08-06-2019 - |
Вопрос
Как мне создать ветку в SVN?
Решение
Ветвлению в Subversion способствует очень-очень легкое и эффективное средство копирования.
Ветвление и пометка - это фактически одно и то же.Просто скопируйте целую папку из репозитория в другое место в репозитории, используя svn copy
команда.
По сути, это означает, что по соглашению это означает копирование папки - будь то резервная копия, тег, ветка или что-то еще.В зависимости от того, как вы хотите думать о вещах (обычно в зависимости от того, какой инструмент SCM вы использовали в прошлом), вам необходимо настроить структуру папок в вашем репозитории для поддержки вашего стиля.
Общие стили заключаются в том, чтобы иметь кучу папок в верхней части вашего репозитория под названием tags
, branches
, trunk
, и т.д.- это позволяет вам копировать весь ваш trunk
(или подмножества) в tags
и/или branches
папки.Если у вас более одного проекта, вы можете захотеть воспроизвести такого рода структуру в рамках каждого проекта:
Может потребоваться некоторое время, чтобы привыкнуть к концепции, но это работает - просто убедитесь, что вам (и вашей команде) понятны соглашения, которые вы собираетесь использовать.Также неплохо иметь хорошее соглашение об именовании - что-то, что говорит вам, почему была создана ветвь / тег и подходит ли это по-прежнему - рассмотрите способы архивирования ветвей, которые устарели.
Другие советы
Создайте новую ветку, используя 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"
Если ваше репозиторий доступен по протоколу 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
Обычно вы копируете его в svn + ssh://host.example.com/repos/project/branches/mybranch, чтобы вы могли хранить несколько ветвей в репозитории, но ваш синтаксис допустим.
Вот несколько советов по как настроить макет вашего репозитория.
Предположим, вы хотите создать ветку из имени магистрали (как "TEST") затем используйте:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
Если вы даже планируете объединить свою ветку, я настоятельно рекомендую вам взглянуть на это:
Я слышал, что Subversion 1.5 встраивает больше отслеживания слияний, но у меня нет опыта в этом.Мой проект находится на версии 1.4.x и svnmerge.py спасает мою жизнь!
Лучший совет для новых пользователей SVN;это может немного помочь в быстром получении правильных URL-адресов.
Бежать svn info
для отображения полезной информации о текущем извлеченном филиале.
URL-адрес должен (если вы запускаете svn в корневой папке) указывать вам URL, с которого вам нужно скопировать.
Также, чтобы переключиться на вновь созданную ветку, используйте svn switch
команда:
svn switch http://my.repo.url/myrepo/branches/newBranchName
- Создайте новую папку за пределами вашего текущего проекта.Вы можете дать ему любое название.(Пример:У вас есть проверка для проекта с именем "Настройка".И в нем есть много проектов, таких как "Project1", "Project2"....И вы хотите создать ветку "Project1".Итак, сначала откройте "Настройка", щелкните правой кнопкой мыши и создайте новую папку и дайте ей имя "Project1Branch").
- Щелкните правой кнопкой мыши на "Myproject1"....TortoiseSVN -> Ветка / Тег.
- Выберите рабочая копия.
- Откройте браузер....Просто справа от параллели на "К URL".
- Выберите настройка ..... щелкните правой кнопкой мыши, затем Добавьте папку.и пройдите по папке, которую вы создали.Вот это и есть "Project1Branch".Теперь нажмите кнопку OK, чтобы добавить.
- Оформите заказ на этот новый банк.
- Снова перейдите к своему проекту, ветку которого вы хотите создать.Щелкните правой кнопкой мыши TorotoiseSVN -> ветвь / тег.Затем выберите рабочая копия.И вы можете указать URL-адрес в качестве названия вашего филиала.например {ваш IP-адрес/svn/AAAA/Настройка/Project1Branch}.И вы можете указать имя в URL-адресе, чтобы создать папку только с этим именем.Например {Ваш IP-адрес/svn/AAAA/Настройка/Project1Branch/MyProject1Branch}.
- Нажмите кнопку OK.Теперь вы можете просмотреть логи...ваша рабочая копия будет храниться в вашем филиале.
- Теперь вы можете выписать чек ... и наслаждаться своей работой.:)