Каков самый простой способ сделать ветвление и слияние с помощью TortoiseSVN?


Что такое действительно простой " как " делать ветвление и слияние с помощью TortoiseSVN?

1 80

1 ответ:

предполагая, что ваш рабочий каталог работает из магистрали:

щелкните правой кнопкой мыши на "корневой рабочей папке" (этот термин всегда относится к проводнику Windows) и сделайте svn update чтобы обновить рабочую папку до последней версии магистрали.

убедитесь, что у вас есть стабильный.

щелкните правой кнопкой мыши на корневой рабочей папке и сделайте svn commit чтобы убедиться, что все локальные изменения зафиксированы в магистрали.

щелкните правой кнопкой мыши на корневой рабочей папке и выполните svn repo-browser.

если у вас еще нет папки ветвей в репозитории: щелкните правой кнопкой мыши на папке чуть выше папки магистрали и сделайте "создать папку" и создайте папку ветвей (например, если ваша магистраль http://myserver/svn/MyRepository/MyProj/Trunk создать http://myserver/svn/MyRepository/MyProj/Branches).

щелкните правой кнопкой мыши на папке trunk и сделайте Copy To: и введите новое имя папки для вашей ветви. Например: http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch. (Не волнуйтесь, что это будет тратить много места... это называется "дешевая копия" ... это не фактически скопируйте содержимое файлов, если они не изменятся).

закрыть обозреватель.

щелкните правой кнопкой мыши корень рабочей папки и выполните: svn switch и выберите имя папки вашей новой ветви (например,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Оставьте все остальное по умолчанию.

теперь работайте над своей веткой. Когда вы доберетесь до вех, щелкните правой кнопкой мыши на корневой рабочей папке и сделайте svn commit для фиксации в вашей ветке. (Это не будет видно в багажнике).

если другие работая на одной ветке, периодически делайте svn update из корневой папки работать. Это будет обновляться из ветки. (Он не будет получать никаких обновлений из багажника.)

независимо от того, работают ли другие на той же ветке, вы должны периодически объединять изменения из ствола, чтобы убедиться, что ваша ветвь не будет слишком сложно интегрировать позже. Чтобы выполнить периодическое слияние: щелкните правой кнопкой мыши на корне рабочей папки и выполните svn merge. Выберите "объединить диапазон ревизий". В разделе " URL для слияния из", выберите ствол (например,http://myserver/svn/MyRepository/MyProj/Trunk). Уходи Выбор Редакции пустой и оставить все остальное в покое. нажимать далее. Оставьте все в покое и нажмите слияние. Убедитесь, что все еще работает... исправьте это, если нет. Как только вы удовлетворены, сделайте обычный svn update из корневой папки работы для обновления из ветки (это необходимо, даже если вы единственный, кто работает на ветке, чтобы удовлетворить SVN). Тогда сделай svn commit для фиксации изменений объединенной магистрали в ветке. Вы можете периодически повторить этот шаг столько раз, сколько вы хотите.

как только ваша ветвь будет готова к интеграции, выполните описанный выше шаг в последний раз и выполните окончательное тестирование. Выполните заключительную фиксацию в ветке.

щелкните правой кнопкой мыши на корневой рабочей папке и сделайте еще один svn switch, на этот раз переключение на магистраль (например,http://myserver/svn/MyRepository/MyProj/Trunk). Это будет иметь эффект по существу "отменить" всю работу, которую вы сделали на вашей ветке, но не волнуйтесь... вы получите свою работу обратно. (Он также будет сообщено много обновлений для файлов, которые вы не изменили в своей ветке, но это всего лишь изменения "свойства SVN"... не беспокойся о них.)

щелкните правой кнопкой мыши на рабочей папке и сделать svn merge. На этот раз выберите "реинтегрировать ветку". Для URL-адреса поместите в свою ветку (например,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Оставьте все остальное в покое и нажмите кнопку Далее. Оставьте все в покое и нажмите слияние. Теперь у вас есть вся работа, которую вы сделали в своем филиале, а также современная работа с ствол.

выполнить итоговый тест. Все должно работать, потому что это должен быть тот же набор файлов, который вы имели в своем последнем тесте в ветке. Щелкните правой кнопкой мыши на корневой рабочей папке и сделайте svn commit. Зафиксируйте все, даже файлы, над которыми вы не работали в своей ветке (у них просто есть изменения "SVN property", но фиксация их помогает SVN отслеживать все ревизии).

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

необязательно: зайдите в репо-браузер, щелкните правой кнопкой мыши на папке филиала (например,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch) и "удалить". Это никак не повлияет на ствол, и вам больше не нужна ветка. (Даже если вы действительно параноик, не волнуйтесь, потому что вы даже можете вернуть свою удаленную ветку из браузера РЕПО в любое время, если вам действительно нужно.)

пожалуйста, не стесняйтесь комментировать!