2010-04-20 12 views
26

Je sais que Mercurial peut suivre les renames de fichiers, mais comment puis-je l'obtenir à show me rename au lieu de ajoute/supprime quand je fais hg status? Par exemple, au lieu de:Afficher les renames en statut hg?

A bin/extract-csv-column.pl 
A bin/find-mirna-binding.pl 
A bin/xls2csv-separate-sheets.pl 
A lib/Text/CSV/Euclid.pm 
R src/extract-csv-column.pl 
R src/find-mirna-binding.pl 
R src/modules/Text/CSV/Euclid.pm 
R src/xls2csv-separate-sheets.pl 

Je veux une indication que quatre fichiers ont été déplacés.

Je pense avoir lu quelque part que la sortie est comme ceci pour préserver la rétrocompatibilité avec quelque chose-ou-autre, mais cela ne m'inquiète pas.

+0

Voulez-vous dire "hg status"? Je ne pense pas que hg log produise une sortie au format que vous avez listé. –

+0

En fait, j'utilise ce qui suit pour faire en sorte que hg log montre des choses supplémentaires (et des couleurs): http://bitbucket.org/sjl/mercurial-cli-templates/src/ Passons donc à la question 'hg status'. –

Répondre

32

Il y a plusieurs façons de procéder.

Avant de vous engager, vous pouvez utiliser hg diff --git pour montrer ce qui a été rebaptisé:

$ hg diff --git 
diff --git a/theTest.txt b/aTest.txt 
rename from theTest.txt 
rename to aTest.txt 

Notez que cela ne fonctionne que si vous avez utilisé hg mv, hg rename ou mv et hg addremove --similarity 100.

Une fois que vous commettez, vous pouvez toujours utiliser hg diff, mais vous devrez spécifier le changement à l'aide -r:

$ hg diff -r 0 -r 1 --git 
diff --git a/test.txt b/theTest.txt 
rename from test.txt 
rename to theTest.txt 

Pour les deux hg status et hg log, utilisez l'option de ligne de commande C pour voir le source qu'un fichier a été copié.

$ hg status -C 
A aTest.txt 
    theTest.txt 
R theTest.txt 

La ligne juste au-dessous aTest.txt indique la source, il a été copié à partir (theTest.txt).

$ hg log -v -C 
changeset: 1:4d7b42489d9f 
tag:   tip 
user:  jhurne 
date:  Tue Apr 20 20:57:07 2010 -0400 
files:  test.txt theTest.txt 
copies:  theTest.txt (test.txt) 
description: 
Renamed test.txt 

Vous pouvez voir les fichiers qui ont été touchés (TEST.TXT et theTest.txt), et que "theTest.txt" a été copié à partir test.txt.

14

Vous pouvez savoir combien de fichiers ont été renommés avec résumé hg. Si vous voulez voir les fichiers réels qui ont été renommés, la façon la plus rapide que j'ai trouvé est de faire:

hg st -a -C 

Ce sera quelque chose comme cette sortie:

A <path\to\renamed\file> 
    <path\copied\from> 
A <path\to\added\file> 
A <path\to\renamed\file> 
    <path\copied\from> 

Depuis le statut de hg considère un changement de nom Pour être une copie et une suppression, vos fichiers renommés listeront une copie du fichier. Les fichiers qui ont été ajoutés mais non renommés ne listeront pas un fichier copié du fichier.