Как мне создать ветку в SVN?
Как мне создать ветку в SVN?
Ветвление в Subversion облегчается очень легким и эффективным средством копирования.
Ветвление и пометка фактически одинаковы. Просто скопируйте всю папку в хранилище куда-нибудь в хранилище, используя svn copy
команду.
По сути, это означает, что условно копирование папки означает - будь то резервное копирование, тег, ветвь или что-то еще. В зависимости от того, как вы хотите думать о вещах (обычно в зависимости от того, какой инструмент SCM вы использовали в прошлом), вам нужно настроить структуру папок в вашем хранилище для поддержки вашего стиля.
Общие стили должны иметь кучу папок в верхней части хранилища под названием tags
, branches
, trunk
и т.д. - что позволяет копировать все ваши trunk
(или суб-наборы) в tags
и / или branches
папку. Если у вас более одного проекта, вы можете повторить такую структуру в каждом проекте:
Может потребоваться некоторое время, чтобы привыкнуть к этой концепции - но она работает - просто убедитесь, что вы (и ваша команда) четко понимаете соглашения, которые вы собираетесь использовать. Также неплохо иметь хорошее соглашение об именах - что-то, что говорит вам, почему была сделана ветка / тег и является ли она по-прежнему уместной, - рассмотрите способы архивации ветвей, которые устарели.
svn cp
использует дешевые копии, он не копирует реальные файлы во время ветвления. См. Svnbook.red-bean.com/en/1.1/ch04s02.htmlСоздайте новую ветку, используя
svn copy
команду следующим образом:источник
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
(если вы хотите иметь новую ветку в отдельном каталоге), чтобы начать работу над вновь созданной веткой.--parents
опцию сsvn copy
!-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 по какой-то причине слил в ошибку) .Если ваше репо доступно через https, вы можете использовать эту команду для перехода ...
источник
Если у вас есть некоторые локальные изменения в транке, используйте
Rsync
для синхронизации измененийисточник
rsync
таким образом.svn cp
также скопирует любые локальные изменения.Предположим, вы хотите создать ветку из имени транка (как «TEST»), а затем использовать:
источник
Обычно вы копируете его в svn + ssh: //host.example.com/repos/project/branches/mybranch, чтобы вы могли сохранить несколько веток в хранилище, но ваш синтаксис действителен.
Вот несколько советов о том, как настроить макет хранилища .
источник
Главный совет для новых пользователей SVN; это может немного помочь с быстрым получением правильных URL.
Запустите
svn info
для отображения полезной информации о текущей извлеченной ветке.URL должен (если вы запускаете svn в корневой папке) дать вам URL, с которого нужно скопировать.
Также, чтобы переключиться на вновь созданную ветку, используйте
svn switch
команду:источник
Если вы даже планируете объединить свою ветку, я настоятельно рекомендую вам взглянуть на это:
Svnmerge.py
Я слышал, что Subversion 1.5 создает больше отслеживания слияний, но у меня нет с этим опыта. Мой проект на 1.4.x и svnmerge.py спасает жизнь!
источник
источник
Ниже приведены шаги по созданию ветви из ствола с использованием TortoiseSVN в Windows Machine. Очевидно, что для этого требуется клиент TortoiseSVN.
источник