Недавно я начал использовать Mercurial, и мне нравится, как у меня есть защита VCS для моей индивидуальной разработки, не проверяя ее в центральном репозитории, а затем я нажимаю на центральное репозиторий, когда у меня есть что-то готовое для остальной команды.
Когда я выполняю "hg commit", я пишу сообщение о коммите, относящееся к добавлению с момента последнего коммита. У меня может быть 5 или около того локальных коммитов, прежде чем я буду готов отправить материал в центральный. Когда я нажимаю, если я не указываю ревизию, все мои локальные коммиты и их сообщения добавляются в центральный репозиторий, но я не хочу загромождать центральный журнал всеми моими локальными небольшими шагами. Когда я нажимаю и указываю локальную ревизию, я думаю, что отправляется только эта ревизия и ее сообщение о фиксации, верно?
Проблема в том, что я хочу отправить сообщение о фиксации, которое суммирует всю мою локальную «автономную» работу, потому что это то, что я действительно добавляю. Однако отправляемое сообщение фиксации - это то, что я написал в последний раз. Скажем, я работаю над функцией A и у меня есть пять локальных коммитов для нее; «Добавлен A.1» «Добавлен A.2» «Исправлен код в foo.cpp» и так далее, заканчивая «Добавленным A.4». Что я хочу зарегистрировать в центральном репозитории, так это «Добавлен A, очищен foo.cpp», но если я нажимаю эту последнюю ревизию, он просто видит «Добавлен A.4». Теперь, когда были обновления в центральном, мне нужно слить локально, прежде чем я нажимаю, мое локальное сообщение фиксации - «Слияние с подсказкой». Ясно, что это не лучшее сообщение о фиксации, чтобы отталкивать его.
Что здесь хорошего? Мне неизвестен какой-либо механизм для изменения существующего сообщения фиксации или отправки нового сообщения фиксации. Я не хочу вносить тривиальные изменения в свое локальное репо просто для того, чтобы ввести новое сообщение фиксации перед изменением; это просто глупо. Я, должно быть, что-то упускаю, потому что это кажется простым. Или я неправильно думаю о ртути?