TortoiseSVN: Как объединить филиал обратно в транк, не переключая рабочую копию в транк? - PullRequest
12 голосов
/ 01 марта 2010

Мы используем TortoiseSVN в командной среде. Работая над более крупной функцией, я создаю ветвь функции, работаю там неделю, объединяю изменения из ствола в мою ветку через день, а когда функция завершается, я объединяю ее обратно в ствол.

При слиянии я всегда делаю следующее:

  1. передать все в ветку
  2. переключить всю рабочую копию в транк, изменяя (в основном удаляя) сотни файлов
  3. используйте опцию "Реинтегрировать ветку", объединяя измененные / новые файлы из ветки, которые уже были на диске 30 секунд назад
  4. убедитесь, что код компилируется
  5. коммит на транк

Это кажется мне неэффективным - я создаю кучу файлов, удаляю их при переключении на транк и затем снова создаю их при слиянии с транком.

Есть ли другой способ объединить ветку с транком, используя TortoiseSVN, который был бы более эффективным, без двух отдельных рабочих копий? (что на самом деле не очень эффективно в нашем сценарии, потому что некоторые зависимости используют абсолютные пути, и мне нужно вручную изменять их, когда я хочу скомпилировать из другой рабочей копии)

Ответы [ 4 ]

13 голосов
/ 01 марта 2010

Невозможно объединить и зафиксировать в SVN без рабочей копии ствола (то есть цели слияния). Это не действие, которое можно выполнить непосредственно в хранилище, так как оно изменяет файлы, и перед фиксацией вы захотите убедиться, что они объединены правильно.

Так что, я полагаю, вам в основном нужно действие switch-and-merge (или switch-and-merge-reintegrate ). Насколько я знаю, эта команда не предоставляется SVN или TortoiseSVN, поэтому вы застряли, выполняя ее так, как вы описали.

0 голосов
/ 27 октября 2016

Я знаю, что опаздываю на вечеринку, но одна идея - использовать команду subst, чтобы виртуальный диск указывал на активную рабочую копию:

cd \myproject\trunk
subst z: .
... use the trunk ...
cd \myproject\branchxy
subst /d z:
subst z: .
... use the branch xy ...

Таким образом, вы просто будете использовать subst -созданную букву диска во входящих внешних зависимостях.

0 голосов
/ 22 октября 2013

У меня всегда есть рабочая копия обоих документов.

Если вы извлекаете корень ниже ствола и ответвления, то у вас есть оба, так что нет необходимости переключаться назад и вперед. Просто перемещайтесь вверх и вниз по дереву, как при обычной файловой структуре.

0 голосов
/ 18 августа 2012

Вот выдержка из книги SVN:

Вам понадобится рабочая копия / trunk. Вы можете получить его, выполнив проверку svn, извлекать старую рабочую копию транка из какого-либо места на вашем диске или используя переключатель svn (см. Раздел «Обход ветвей»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...