Я не верю, что незавершенные изменения, по сути, плохая вещь. Вы ссылаетесь на «невозможность слияния с ними» - если у вас есть незафиксированное изменение какого-либо файла, и вы извлекаете и обновляете изменение этого файла, Mercurial начнет процесс слияния так же, как если бы вы его зафиксировали, а затем запросил слияние Вы имели в виду что-то другое?
Итак, для локальных изменений, которыми вы еще не хотите делиться с другими разработчиками, у вас есть два подхода. Первый - сохранить изменения в вашей рабочей копии, но не выдвигать их, а другой - отложить их в сторону от рабочей копии. Выбор зависит от того, хотите ли вы, чтобы эти изменения были доступны во время работы.
Если вы сохраните их в рабочей копии, входящие изменения будут работать нормально, поэтому вам просто нужно избегать создания исходящих изменений, а это значит избегать их фиксации. Если файлы новые, это просто - не надо hg add
их. Если они уже отслежены, вы можете специально исключить их из коммитов hg commit --exclude foo.txt
. Если у вас есть большое количество файлов для исключения или вы будете исключать их из многих коммитов (например, для постоянного изменения в локальном файле конфигурации), посмотрите на расширение exclude .
Если вы готовы отложить изменения, у вас есть другой набор опций. Самое простое - просто использовать hg diff
файлы для создания патча, описывающего их, который вы храните в безопасном месте, а затем hg patch --no-commit
повторно применить этот патч, когда вы захотите вернуть изменения. Вы можете сделать это Smoother, установив расширение сукна , на расширение чердака , или какой - либо другой родственник. Вы могли также использовать расширение очередей , но это использует кувалду, чтобы сломать орех. Вы можете даже просто зафиксировать изменения, затем обновить их до родительского и зафиксировать другую работу, оставив изменения в короткой анонимной ветке hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
(хотя это может быть проще сделать вручную!). Тогда вам придется позаботиться о том, чтобы не продвигать этот набор изменений.