Думайте о пользователях, которые будут использовать Ваше приложение. Почему они используют его и в который контекст?
Это - запуск.
Нет, и я категорически отговариваю от этого. Существует так много возможных побочных эффектов, с которыми вы столкнетесь при автоматическом слиянии.
Как бы вы разрешили конфликты? Чем больше разработок, тем больше изменений в ветви и стволе, больше конфликтов при слиянии. Слияние должно выполняться вручную.
А как насчет нежелательных слияний? Есть вещи (например, изменение номеров версий, зависимостей и т. Д.), Которые вы не делаете не хочу сливаться обратно. При автоматическом слиянии вам нужно было отменить слияние слияний, что вызывает большую путаницу и работу.
С функцией отслеживания слияния SVN 1.5 вы получите хорошую информацию и посмотрите, не слил ли кто-то свои изменения обратно в багажник. Просто нужно использовать его правильно.
вы не можете автоматизировать это: даже если нет явных конфликтов, слияние может привести к неработающему коду.
две возможности на будущее улучшения в порядке возрастания предпочтений:
первое: фиксация в основной ветке, назначение кого-то для выбора избранных ревизий в ветке выпуска
два: переключение на ртутный. сурово. это очень похоже на svn, и невозможно забыть слияние, так как слияние ветки A в ветку B означает добавление в B всех коммитов, которые находятся в A, но не в B
# alice edits some files and commits two revisions
# into her repository, then pushes them into the master
alice ~/wc/stable % hg ci
alice ~/wc/stable % hg ci
alice ~/wc/stable % hg push
pushing to http://repo/stable
searching for changes
...
# bobby tries to push, but oops, his copy is stale
bobby ~/wc/stable % hg ci
bobby ~/wc/stable % hg ci
bobby ~/wc/stable % hg ci
bobby ~/wc/stable % hg push
pushing to http://repo/stable
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)
# bobby must augment his repository such that a push
# to the master will leave the master with a single
# head. this is achieved by pulling changes from
# the master, which will cause *his* repository to have
# two "head" revisions:
bobby ~/wc/stable % hg pull
searching for changes
...
added 2 changesets with 4 changes to 4 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
# he will now merge the heads to reduce them to a single
# head. pushing that into the master will be ok (since
# the result of such a push is a single head)
bobby ~/wc/stable % hg merge
bobby ~/wc/stable % hg ci
bobby ~/wc/stable % hg push
# ok!
, вы можете сказать, что это другое от слияния ветвей, рабочая копия устарела. WRT master, push завершится ошибкой и предложит ему объединить свое предыдущее слияние с новыми изменениями мастера перед повторной попыткой.
svnmerge.py будет отслеживать все ваши слияния за вас.
Хм, это ужасно похоже на что мы здесь делаем, но я не знаю, как это сделать в настоящее время.
Обычно подобные ошибки выявляются в процессе проверки кода.
Мне интересно, что произойдет в случае конфликт слияния, и когда это произойдет, как он будет разрешен.