Подтвердить что ты не робот

TortoiseSVN: Как объединить ветку обратно в магистраль без переключения рабочей копии на багажник?

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

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

  • передать все ветке
  • переключить всю рабочую копию в туловище, меняя (в основном, удаление) сотни файлов
  • используйте параметр "Реинтегрировать ветвь", слияние измененных/новых файлов из ветки, которые уже были на диске 30 секунд назад.
  • убедитесь, что код компилирует
  • передать в магистраль

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Я сохраняю рабочую копию обоих из них в любое время.

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

Ответ 3

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

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

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

Ответ 4

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

Вам понадобится рабочая копия/ствол. Вы можете получить его, выполнив проверку svn, вытащив старую рабочую копию рабочего места где-нибудь на вашем диске или используя svn-переключатель (см. Раздел "Traversing Branches" ).