Comment déplacer des fichiers (vers un sous-dossier) sans perdre leur historique?
Dans mon référentiel Mercurial (je veux dire le dossier contenant le .hg), j'ai MyProject/dossier avec tous les fichiers de projet. Maintenant, je dois créer le dossier src/à l'intérieur et y déplacer tous les fichiers (de MyProject / à MyProject/src /). Comment puis-je le faire sans perdre toute l'histoire?
hg mv
fait la bonne chose, mais hg log
ne répertorie pas les entrées après le déplacement, sauf si vous lui donnez le -f
option. Voir cette question pour plus d'informations
Pourquoi 'hg mv' (Mercurial) ne déplace pas l'historique d'un fichier par défaut?
Après cela, vous souhaiterez probablement ajouter le -f
option pour hg log
au fichier hgrc pour le dépôt.
.hg/hgrc
[defaults]
log = -f
Puisque vous avez une balise "tortoisehg", je me suis dit que j'expliquerais la façon dont je fais cela en utilisant l'interface graphique.
Habituellement, je renomme/déplace simplement des fichiers dans mon IDE ou dans l'Explorateur Windows, puis quand je vais valider, THG affichera un tas de (?) Fichiers inconnus et (R) fichiers supprimés. Faites simplement un clic droit sur l'un des fichiers et choisissez "Détecter les renommages ...", puis cliquez sur le bouton "Rechercher les renommages".
Vous devrez peut-être régler le curseur "Min Similarité" jusqu'à ce que vous obteniez tous les fichiers que vous voulez et uniquement les fichiers que vous voulez, mais c'est généralement très simple.
Dans Windows avec Tortoise HG installé, il existe une extension Windows Shell qui gère très bien cela.
Dans l'Explorateur Windows, faites simplement un clic droit et faites glisser le ou les fichiers que vous souhaitez déplacer dans le dossier de destination. Vous êtes alors présenté avec un pop-up qui vous donne ces choix:
HG Move versioned item (s) here
HG Copier les articles versionnés ici
Utilisation hg mv
pour déplacer vos fichiers, puis utilisez hg log -f
(suivre) pour voir l'historique, y compris les renommages.