SVN помечает тег - PullRequest
       9

SVN помечает тег

0 голосов
/ 22 января 2019

Клиент имеет репозиторий SVN со структурой / транк / ветки / теги. Теперь мы хотим сделать исправление к более старой версии. Но состояние старой версии только в тегах / oldversion. Могу ли я сделать тэг тегов / oldversion, затем исправить и зафиксировать новый тэг? Или есть другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Макет tunk / branch / tags - это просто соглашение, и ничто не помешает вам работать с тегами. Но соглашение подразумевает, что теги доступны только для чтения, и вы не должны фиксировать изменения в существующих тегах.

Из вашего описания я понимаю, что /tag/oldversion указывает либо на довольно старую ревизию /trunk, либо на подкаталог внутри /branches, который больше не существует. Я рекомендую вам создать новую ветку для обычной работы в старой версии и, как только вы закончите, создайте новый тег.

  1. Запустите Repo-browser , щелкните правой кнопкой мыши /tag/oldversion и выберите «Показать журнал».

  2. Нажмите на последнюю ревизию, возможно, ту, где был создан тег. На панели ниже обратите внимание на «Копировать с пути» и «Редакция». Это исходный URL, на который указывает тег. Например, /trunk в r123.

  3. Вернуться в Repo-browser , нажать кнопку «ГОЛОВКА» рядом с «Ревизия» и использовать диалоговое окно для выбора старой ревизии.

    Open revision selector
    Select revision

  4. Теперь, когда Repo-браузер отображает r123, щелкните правой кнопкой мыши на /trunk, выберите «Копировать в ...» и отредактируйте предложенный путь для создания новой ветви, например, /branches/legacy или /branches/1.x или все, что вам подходит. Не волнуйтесь, вы можете просмотреть изменения в диалоговом окне «Ввести сообщение журнала» перед их фиксацией.

    Enter log message

  5. Теперь у вас есть новая полнофункциональная ветка, которая указывает на ваш старый код. Вы можете проверить эту ветку и начать кодирование. Создавайте теги из него по мере выпуска.

(Да, общая процедура, вероятно, быстрее с командной строкой.)

0 голосов
/ 22 января 2019

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

Вы можете внести изменения непосредственно в отмеченную ветку, если хотите. Если вы используете TortoiseSVN, вы можете увидеть что-то вроде «это похоже на тег, вы уверены, что хотите внести это изменение?» (Скорее всего, забил на это - не могу вспомнить сообщение с головы до головы) и просто продолжаю.

Альтернатива, как вы упомянули; вы можете сделать еще одну svn copy (svn copy, являющуюся фактической командой, которую вы выполняете всякий раз, когда вы разветвляете / маркируете каталог - между веткой и тегом нет никакой разницы) отметьте и внесите изменения (вы увидите то же сообщение выше).

Например:

Repo
|_trunk
|_branches
|_tags
    |_oldversion // svn copy (branch) this directory
    |_newversion // to create this directory and apply the fix

Я бы предпочел этот второй метод, если вам необходимо сохранить предыдущий тег в целях отслеживания.

...