Это несколько связано с этим вопросом, но это другой вопрос.
У нас есть центральный репозиторий Hg, обслуживаемый пользователями через SSH и mercurial-сервер . У нас есть несколько клиентов Mac, Linux и Windows, подключающихся к нему.
Это уже дважды происходило, когда один из пользователей Windows повредил свой репозиторий, а затем перенес его обратно в центральный, повредив его. Я хочу написать скрипт входящего подключения в центральном хранилище, чтобы предотвратить принятие транзакции, если она повредит центральное хранилище.
Хотя, к сожалению, я не знаю достаточно о Mercurial, чтобы написать такой скрипт. Есть ли вероятность того, что кто-то еще сталкивался с этим? Лично я не совсем уверен, почему hg не делает этого по умолчанию.
mercurial
corruption
bobinabottle
источник
источник
Ответы:
Последние версии Mercurial (начиная с 1.5) поддерживают проверку входящих данных. добавлять
в конфигурацию hg вашего сервера (либо
.hg/hgrc
конфиг hgwebdir должен работать нормально), чтобы сервер проверял входящие данные и отказывался от недействительных нажатий. Клиент увидит ошибку, похожую на:Надеюсь, это поможет!
источник
Может быть, вам следует вообще избегать отправки в хранилище. С Mercurial и его распределенной природой у каждого может быть своя ветвь, и когда они чувствуют, что готовы, они говорят вам, и вы отрываетесь от них. Нет проблем с фиксацией доступа, нет толчка, который сломает вещи ...
Это, по крайней мере, совет, который дал мне мой друг, когда я мигрировал из SVN в Mercurial.
Я не знаю, если это вариант для вас, но создание личного хранилища для всех, а затем привлечь людей, которые вам нужны, может потребовать меньше работы, чем пытаться поймать опасные толчки.
источник
Не могли бы вы сделать то же самое, что и в блоге Дэвида Херрона , но вместо того, чтобы делать это на предварительной маршрутизации, сделать это на крюке предварительной фиксации на центральном репо?
источник
Одна из возможных альтернатив:
Это решение не то, что вам нужно, но, по крайней мере, вы получаете возможность откатить свой репозиторий в случае повреждения.
источник