2011-05-11 9 views
2

Итак, я использую Subversion как SCM для классического ASP webapp, который я поддерживаю. Мы используем ветвление функций для обработки изменений, имеющих зависимости или долгосрочную разработку.Филиалы и общие серверы dev?

Мы используем общие веб-серверы для Dev/QA, и именно здесь возникает мой вопрос. Центральный сервер Dev - это рабочая копия соединительной линии, а затем, когда мне нужно увидеть изменения в Dev из ветки функции, я сливаю их в рабочую копию Dev. До сих пор так хорошо, но я настраиваю себя на негодность по дороге?

Например, сегодня аналитик сказал мне, что я могу «удалить» изменения, внесенные мной в функцию, а затем объединиться с сайтом Dev для демонстрации - не потому, что эта функция была убита, просто потому, что он не " Мне нужно больше это видеть. И я понял, что не могу легко это сделать. Изменения, которые я объединил, теперь просто отображаются как локальные модификации рабочей копии Dev, и я не могу их легко удалить (мне пришлось бы вручную отменить изменения в затронутых файлах, поскольку полное возвращение могло/могло бы убить изменения, связанные с Другие особенности).

Чем больше я пишу об этом, тем больше чувствую, что я ответил на свой вопрос. Нужно ли мне менять мою ветвящуюся стратегию - ветвь на среду? Или мне нужно иметь отдельный «общий Dev» сайт для каждой ветки (dev.mysite.com:4801, dev.mysite.com:4802)? Или это в значительной степени, как вы справляетесь с этим?

ответ

1

Если функция, которую вы хотите удалить, точно и полностью содержится в одной конкретной ревизии, в любой ветке, связанной с вашей внешней стеной, вы должны иметь возможность выполнить обратное слияние этой конкретной ревизии на рабочей копии вашей ветви соединительной линии , Взгляните на опции команды "svn merge". Согласно этой странице, вы должны быть в состоянии выдать команду:

SVN слияния -c -Revision YourDevBranch YourWorkingCopy

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

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

+0

ОК, вы правы, я могу отменить слияние изменений. Я никогда раньше не использовал этот тип слияния. Полагаю, это в какой-то степени подтверждает этот подход? –

+0

Да, это была моя точка на самом деле :) – yms