Я настроил зеркалирование своего репозитория, и оно работает хорошо, но недавно у меня возникла проблема.
Целевой репозиторий каким-то образом остался с невыпущенной блокировкой - из того, что я прочитал, это может быть вызвано прерыванием операции svnsync, и я подозреваю, что это может быть из-за того, что в моем хуке после фиксации я выполняю svnsync в блокирующем режиме, а не нажимаю его в фоновом режиме через &.
Я делаю это для того, чтобы пользователь мог быть уверен, что если фиксация завершена, то она теперь во всех репозиториях, но, может быть, это создает риск того, что они нажмут кнопку отмены и остановят хук фиксации?
Я не могу найти четких указаний или предложений о том, что лучше или как лучше всего, или даже если нажатие кнопки «Отмена» может привести к прерыванию хука фиксации сообщения и синхронизации, выполняемой из него — в большинстве мест я вижу, как люди используют & для удара синхронизации в фоновом режиме — предотвращает ли это повреждение блокировки в случае, если пользователь нажимает кнопку «Отмена» для своей фиксации во время синхронизации? Как вы убедитесь, что оба репозитория действительно синхронизированы или сообщают о проблемах? Вам нужен отдельный механизм уведомления для этого?
Обновлять:
Из двух вышеперечисленных вариантов я решил выбрать третий ;)
Я вызываю svnsync в фоновом режиме, но в то же время заставляю хук ждать его завершения:
svnsync ... &
wait $!
Я думаю, что это прекрасно сочетает в себе лучшее из обоих миров, но время покажет, насколько это будет эффективно — пожалуйста, дайте мне знать, что вы думаете обо всей проблеме и какие предложения вы могли бы поделиться по этому поводу.