Почему Mercurial не проверяет последнюю версию перед отправкой? - PullRequest
2 голосов
/ 04 февраля 2012

В SVN вы не можете выполнить коммит, если ваша локальная ревизия не обновлена ​​в главном хранилище. Mercurial не проверяет это и позволяет фиксировать. Тогда вы должны сделать слияние.

Если работает много программистов, это может привести к большой проблеме. Есть ли способ обойти это?

1 Ответ

6 голосов
/ 04 февраля 2012

Mercurial и SVN имеют два совершенно разных способа работы.

SVN централизован, все ваши коммиты будут немедленно доступны всем остальным.Вот почему вы всегда должны фиксировать все остальные изменения.Таким образом, вы можете убедиться, что то, что вы сделали, по-прежнему работает с изменениями, сделанными другими.

С Mercurial, коммиты локальны для вашего рабочего каталога.Только push распространяется на других людей.Это причина, почему нет проверки каждого коммита.(Таким образом, вы также можете работать в автономном режиме, то есть без подключения к хранилищу).

Только при попытке push ваших изменений Mercurial проверяет, есть ли новые коммиты в веткеРаботаем один.Если это так, вы можете принудительно нажать кнопку (это создаст новую головку) или объединить другие модификации, тем самым подтверждая работу других.иметь дело с коммитом / толчком, это одно из их многочисленных преимуществ.Пока слияние выполнено правильно, у вас не будет проблем из-за этого.

Если вы действительно хотите проверять наличие новых изменений на каждом коммите, я думаю, что это возможно сделать с некоторыми хуками, ноЯ действительно не вижу причины, почему.Может быть, кто-то предложит такую ​​вещь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...