以hg身份显示重命名?

时间:2010-04-20 23:56:56

标签: mercurial dvcs rename

我知道Mercurial可以跟踪文件的重命名,但是当我执行hg status时,如何将其重命名为 show 重命名而不是添加/删除?例如,而不是:

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

我想要一些迹象表明已经移动了四个文件。

我想我在某处看到输出是这样的,以保持与某些东西的向后兼容性,但我并不担心。

2 个答案:

答案 0 :(得分:33)

有几种方法可以做到这一点。

在提交之前,您可以使用hg diff --git来显示重命名的内容:

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

请注意,只有在您使用hg mvhg renamemvhg addremove --similarity 100时才有效。

提交后,您仍然可以使用hg diff,但您必须使用-r指定更改:

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

对于hg statushg log,请使用-C命令行标志查看从中复制文件的来源。

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

aTest.txt下方的行表示从中复制的源(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

您可以看到受影响的文件(test.txt和theTest.txt),并且从test.txt复制了“theTest.txt”。

答案 1 :(得分:14)

您可以找到已使用hg摘要重命名的文件数。如果你想看到重命名的实际文件,我发现最快的方法是:

hg st -a -C

这将输出如下内容:

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

由于hg status将重命名视为副本和删除,因此重命名的文件将列出从文件复制的文件。添加但未重命名的文件不会列出从文件中复制的文件。