Release -> Merge -> Проверка - PullRequest
       5

Release -> Merge -> Проверка

1 голос
/ 05 апреля 2011

Как видно из названия, это моя последовательность версий. Я использую Tortoise SVN клиент. Репозиторий - это файл на сетевом ресурсе.

У меня есть папки Trunk и Branch.
Я выписался из Branch, сделал много изменений и вернулся в Branch.
Однако из-за незнакомого слияния с Trunk я всегда публикую свой хороший проектный код в производство непосредственно из Branch.
Последний выпуск был 3 месяца назад. Редакция 380.
Моя версия для разработки сейчас на 400.

На прошлой неделе мне пришлось исправить ошибку в R380. Поэтому я проверил R380, исправил ошибки и выпустил их снова.
Тем не менее, мне нужно перенести весь этот код в версию для разработки R400, но я не хочу уничтожать мои последние 3 месяца работы.
Кроме того, в R400 есть некоторая глючная часть кода, которую я не могу зарегистрировать. Может кто-нибудь показать мне, как это сделать правильно?

Я сделал папку Bugfix и попытался проверить R380 в этой папке, но клиент SVN не позволяет мне SWITCH или RELOCATE.
Это позволит мне только зайти в папку Branch. Боюсь, что если я проверю в измененной папке R380 до Branch, она сотрет мою версию R400. Спасибо.

1 Ответ

1 голос
/ 05 апреля 2011

Как упомянуто в " В ветви компонента Subversion требуются изменения из другой ветви функции ", вы можете объединить только точный диапазон ревизий обратно в вашу ветку.
Вы можете сгенерировать патч из изменений, которые вы сделали в trunk.
Если вам нужно, вы можете сначала создать временную ветвь из r380, удалить ошибочную часть, которую вы не хотите, , а затем сгенерировать указанный патч и применить его к 'Branch'.

svn diff -r448:449 > ~/global.patch
patch -p0 < ~/global.patch

(хотя вопрос " Как заставить svn diff создавать файл, который будет применяться, когда используется svn cp или svn mv? " сообщает о некоторых случаях, которые не работают, особенно если есть изменения свойств между филиалами)

...