L'aggiunta di cambiamento non impegnati in una nuova patch con code di Mercurial
-
27-09-2019 - |
Domanda
Il processo di creazione di patch in Mercurial è il seguente:
Creare patch con qnew -> cambiamenti rendono -> Patch Aggiorna
Che cosa succede se ho già fatto (UNCOMMITED) cambia e voglio aggiungerli alla coda?
Soluzione
E 'dipende dalla versione, e sembra che è cambiato in 1.5.1.
1.5.1 o successivo
Il comando aggiungerà eventuali modifiche non di default
qnew crea una nuova patch in cima alla patch attualmente-applicata (se presente). La patch verrà inizializzato con le eventuali modifiche in sospeso nel lavoro directory.
prima di quanto 1.5.1
Si desidera utilizzare qnew -f
. Dal docs :
-f: Creare una nuova patch se vengono modificati i contenuti della directory di lavoro. Le eventuali modifiche in sospeso vengono aggiunti alla patch appena creato, quindi dopo di questo comando, la directory di lavoro non sarà più modificato.
Altri suggerimenti
In realtà, il processo di patch funziona allo stesso se ci sono modifiche non o meno. Lo faccio sempre come segue:
[... make changes ...]
hg qnew -m "foo bar changes" foobar.patch
--> new empty patch at top of queue
hg qrefresh
--> this adds all diffs from 'hg diff' into the current top patch
EDIT: @CaseBash ha giustamente rilevato che ho sbagliato circa il comportamento predefinito corrente