Subversion (и TortoiseSVN): возможно ли создать тег непосредственно из существующего тега? - PullRequest
1 голос
/ 16 февраля 2010

В моем хранилище subversion у меня есть стандартные папки /trunk, /branches и /tags и тег, скажем /tags/tag1.

Можно ли оформить /tags/tag1, внести некоторые локальные изменения, а затем зафиксировать в качестве другого тега , скажем /tags/tag2? Могу ли я сделать это, не касаясь ствола или каких-либо веток?

Кроме того, если это обычно возможно с помощью Subversion, можно ли это сделать с помощью TortoiseSVN?

Edit:

Если это можно сделать с помощью TortoiseSVN, я предполагаю, что это можно сделать из командной строки. Какие команды мне нужно использовать?

Ответы [ 5 ]

3 голосов
/ 16 февраля 2010

Да, вы можете сделать это: извлеките тег, затем из рабочей копии выберите «Ветвь / тег» и выберите «Рабочая копия» в разделе «Создать копию в хранилище из:» и в «Кому-URL:» В поле введите URL нового тега.

Но почему вы хотите это сделать? Обычно теги являются «только для чтения» снимками состояния базы кода и не должны изменяться.

1 голос
/ 16 февраля 2010

Это можно сделать из TortoiseSVN.Перейдите в расположение тега, который вы локально изменили в проводнике Windows.Выберите «Branch / Tag» в контекстном меню TortoiseSVN.Теперь выберите URL-адрес TO, например, «svn: // server / project / tag2».Далее, для «Создать копию в хранилище из» выберите опцию «Рабочая копия»

0 голосов
/ 09 марта 2017

Что ж, вы можете создать тег из тега, но, как уже упоминалось, теги являются снимками «только для чтения», так что лучше сначала создать Trunc из этого более раннего тега, скажем тег 1 «Обновление до ревизии» и дать конкретный номер версии тега 1 а затем внесите изменения в Trunc и без svn-обновления / фиксации trunc просто разветвите тег из trunc, выберите рабочую копию и создайте новый тег. Не забудьте переключить Trunc в конце этого упражнения, чтобы иметь непрерывность с svn теги.

0 голосов
/ 16 февраля 2010

Subversion в основном рассматривает все как структуру каталогов - тег - это просто еще одна папка в структуре, которая находится внутри каталога 'тегов'.

Таким образом, технически вы можете проверить каталог tags, скопировать одну папку тегов в новую папку, svn add эту новую папку и зафиксировать ее - что по сути создаст новый тег на основе старых файлов. Однако вы не получите связь между старым тегом и новым (что имеет смысл - теги не должны быть связаны ни с чем, они просто должны быть снимками).

Лучшим сценарием, если вы хотите хорошую последовательность изменений, было бы скопировать старый тег в ветку; внести изменения, зафиксировать ветку, а затем скопировать ветку обратно в новый тег. Это намного точнее сохранит историю изменений.

0 голосов
/ 16 февраля 2010

Вы можете создать ветку от /tags/tag1 до /tags/tag2. Вы можете сделать это, не касаясь ствола или любых существующих ветвей.

Мы называем это ветвлением исправления, потому что /trunk продвинулся дальше, но в /tags/release-1.0 есть что-то, что нужно исправить. Итак, мы перейдем от /tags/release-1.0 до /tags/release-1.0.1. Мы исправим и передадим этот тег.

...