Можно ли настроить Subversion, где, когда кто-то фиксирует обновление в хранилище, все извлеченные рабочие копии обновляются автоматически?

заранее спасибо

2 ответа2

0

Нет, и если вам удастся взломать решение, которое сделало это, я думаю, что все, кто его использует, будут огорчены вами. Обновление svn update вызывает объединение любых файлов, которые пользователь изменил в своей рабочей копии. Это слияние может пойти не так, как надо, и потерять все свои изменения, если они не обратят внимания. В SVN и большинстве других систем контроля версий, которые широко используются, пользователь должен явно запросить получение работы, которую другие люди выполняли ПО ДИЗАЙНУ. Это делается для того, чтобы человек не прерывал собственный рабочий процесс, пытаясь заставить свои изменения скомпилировать и выполнить чью-то (возможно, незавершенную) работу, пока они не станут хорошими и не будут готовы потратить время на правильное прохождение слияния. DVCS, такой как Mercurial или git (или Fossil, или Bazaar, или veracity, или ...), позволит вам вносить изменения без слияния (и пока не видеть их в вашей рабочей копии), в этих системах может иметь смысл автоматически вносить изменения , но SVN сочетает тягу с обновлением, так что особенно в SVN такое автоматическое обновление было бы плохой идеей.

Отмечу, что системы контроля версий с парадигмой «блокировать, редактировать, разблокировать» действительно могут хорошо работать с системой автоматического обновления. ClearCase работает таким образом, например. Но современные системы почти всегда «копируют, редактируют, объединяют» и, следовательно, не поддаются автоматической системе обновления, поскольку над одним файлом могут работать несколько человек.

Теперь, может быть, вы хотите, чтобы определенные рабочие копии только для чтения обновлялись автоматически, например, на сервере сборки или что-то в этом роде. Это было бы хорошим кандидатом на хук-скрипт в SVN или даже лучше на работу cron в Unix-подобных системах или запланированное задание в Windows.

0

Нет, нет Ничто не отслеживает все рабочие копии. Если вы знаете, где находятся все рабочие копии, вы можете написать ловушку, которая обновит все WC. Но нет универсального метода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .