Non credo che i cambiamenti non confermati siano intrinsecamente una cosa negativa. Ti riferisci a una "incapacità di unirli con loro" - se hai una modifica non impegnata in un file, e tiri e aggiorni una modifica a quel file, Mercurial avvierà il processo di unione proprio come se lo avessi commesso, quindi ti chiese una fusione. Intendevi qualcosa di diverso?
Quindi, per le modifiche locali che non vuoi ancora condividere con altri sviluppatori, hai due approcci. Il primo è mantenere le modifiche nella copia di lavoro, ma non spingerle, e l'altro è metterle da parte, fuori dalla copia di lavoro. La scelta dipende dal fatto che si desideri che queste modifiche siano disponibili mentre si lavora.
Se li conservi nella copia di lavoro, le modifiche in entrata funzioneranno correttamente, quindi devi solo evitare di creare modifiche in uscita e ciò significa evitare di commetterle. Se i file sono nuovi, è facile - semplicemente non hg add
li. Se sono già tracciati, è possibile escluderli specificatamente da commit con hg commit --exclude foo.txt
. Se hai un gran numero di file da escludere o li escluderai da molti commit (ad es. Per una modifica permanente a un file di configurazione locale), guarda l' estensione di esclusione .
Se sei pronto a spostare le modifiche da parte, hai un'altra serie di opzioni. La cosa più semplice è semplicemente usare hg diff
sui file per produrre una patch che li descriva, che tenete in un posto sicuro, quindi hg patch --no-commit
riapplicare quella patch quando si desidera ripristinare le modifiche. Puoi renderlo più fluido installando l' estensione shelve , l' estensione della soffitta o qualche altro parente. Potresti anche usare l' estensione delle code , ma che sta usando una mazza per rompere un dado. Potresti anche solo eseguire il commit delle modifiche, quindi aggiornare di nuovo al genitore e impegnare altri lavori lì, lasciando le modifiche in un ramo anonimo tozzo hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
(anche se potrebbe essere più facile fare manualmente!). Dovresti quindi fare attenzione a non spingere quel changeset, però.