Si je repasse le code depuis un moment et que j'ai oublié de créer une série de patchs, comment puis-je créer la série de patch rétrospectivement? Jusqu'à présent, la seule chose qui vient à l'esprit est:Comment diviser le travail en plusieurs patchs avec des files d'attente mercurielles?
# Prepare and test the first batch of changes.
$ hg qrecord -m 'first batch' 1.patch
$ hg qnew -m 'stash downstream changes' stash-1.patch
$ hg qdelete -k temp-1.patch
$ make hello
cc hello.c -o hello
hello.c: In function ‘main’:
hello.c:4: error: syntax error at end of input
make: *** [hello] Error 1
$ echo '}' >> hello.c
$ make hello
cc hello.c -o hello
$ hg qrefresh
# Recover the stashed changes.
$ patch -p1 < .hg/patches/last.patch
# And around we go again!
$ hg qrecord -m 'second batch' 2.patch
$ hg qnew -m 'stash downstream changes' stash-2.patch
$ hg qdelete -k stash-2.patch
$ make hello
...
Cette approche très lourde est également dangereuse. Je pourrais oublier le -k
sur qdelete
, à quel point je vais me tapotter le front contre un mur de briques pendant plusieurs minutes, ou je pourrais inclure trop ou trop peu pendant l'opération de qrecord.
Y a-t-il un meilleur moyen?
(Ce que je voudrais vraiment être hg qpop
juste avant un patch que je veux diviser, et utiliser une commande actuellement inexistante, hg qunrecord
, pour aspirer interactivement les changements hors du patch dans mon répertoire de travail Une fois que je suis heureux avec les changements, hg qnew -f
pourrait presser un nouveau patch en face de l'ancien.)
Est-ce que cette question sur la division en différents correctifs par fichier? C'est à dire. les modifications pour un fichier donné ne sont pas réparties entre plusieurs correctifs. Parce que si c'est le cas, on peut faire mieux que l'approche que vous avez décrite ci-dessus. C'est une vieille question, mais toujours pertinente. –
@FaheemMitha: Je suis passé à git il y a un certain temps, donc ce n'est pas particulièrement pertinent pour moi.Mais pour mémoire, je tiens certainement à différencier les changements dans les fichiers, en particulier les fichiers de projet de niveau supérieur qui contiennent souvent plusieurs ajouts/suppressions de fichiers sans rapport. En fait, c'est presque la norme plutôt que l'exception. –
Ok. Merci pour les commentaires, Marcelo. –