39 votes

Pourquoi 'hg mv' (mercurial) ne déplace pas l'historique d'un fichier par défaut ?

Je sais. comment le faire Je ne peux pas comprendre pourquoi hg mv ne déplace pas non plus l'historique du fichier par défaut.

Cela semble vraiment idiot d'être obligé de courir. hg log --follow avant hg mv . Cela me rappelle les moments avec cvs où il fallait supprimer et ajouter un fichier en utilisant deux opérations différentes et en perdant l'historique de la même manière.

IMHO, si je n'utilisais que le mv intégré, cela serait acceptable pour perdre l'historique, mais j'utilise hg mv et, en pensant au référentiel lui-même, cela n'a pas de sens de perdre l'histoire by default . Il devrait y avoir hg mv --no-follow et non l'inverse.

Ce n'est pas intuitif. Quelqu'un ici a une explication sensée de ce comportement ? S'agit-il d'une erreur de conception, ou y a-t-il vraiment une bonne raison à cela ? Est-il possible de faire cela --follow par défaut d'une manière ou d'une autre lorsque l'on utilise hg mv ?

34voto

xanatos Points 30513

Vous pouvez changer le comportement par défaut de log : dans votre ~/.hgrc (ou quelque part/Mercurial.ini), ajoutez

[alias] 
log = log -f 

J'ai lu que l'apparence de la bûche est due à la vitesse. Le déplacement n'est pas vraiment une opération de "premier niveau" dans Mercurial. C'est une copie + suppression (ceci comparé à Bazaar où le déplacement/renommage est une opération de "premier niveau" mais qui n'a pas de copie avec conservation de l'historique).

33voto

Matthew Flaschen Points 131723

Vous ne savez pas comment faire. hg log --follow affecte la façon dont le journal est affiché, et non la façon dont le déplacement réel est effectué. Par défaut, l'historique du nom de fichier est affiché. --follow suit les renommages et les copies. Cela correspond à la façon dont Mercurial est implémenté en interne.

Il n'y a aucune raison de courir hg log --follow avant hg mv .

2voto

Greeso Points 914

La réponse de @xantos est maintenant datée. La bonne façon de mettre à jour le hgrc est :

[alias]
log = log -f

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X