Rya*_*son 27 mercurial dvcs rename
我知道Mercurial可以跟踪文件的重命名,但是当我这样做时,如何让它显示重命名而不是添加/删除hg status
?例如,而不是:
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
Run Code Online (Sandbox Code Playgroud)
我想要一些迹象表明已经移动了四个文件.
我想我读到的地方输出是这样的,以保持与某些东西或其他东西的向后兼容性,但我并不担心.
Jim*_*rne 33
有几种方法可以做到这一点.
在提交之前,您可以使用它hg diff --git
来显示重命名的内容:
$ hg diff --git
diff --git a/theTest.txt b/aTest.txt
rename from theTest.txt
rename to aTest.txt
Run Code Online (Sandbox Code Playgroud)
需要注意的是,如果你使用这仅适用hg mv
,hg rename
或mv
和hg 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
Run Code Online (Sandbox Code Playgroud)
对于这两个hg status
和hg log
,使用-C命令行标志,以查看该文件从复制源.
$ hg status -C
A aTest.txt
theTest.txt
R theTest.txt
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
您可以看到受影响的文件(test.txt和theTest.txt),以及从test.txt复制的"theTest.txt".
Kev*_*dge 14
您可以找到已使用hg摘要重命名的文件数.如果你想看到重命名的实际文件,我发现最快的方法是:
hg st -a -C
Run Code Online (Sandbox Code Playgroud)
这将输出如下内容:
A <path\to\renamed\file>
<path\copied\from>
A <path\to\added\file>
A <path\to\renamed\file>
<path\copied\from>
Run Code Online (Sandbox Code Playgroud)
由于hg status将重命名视为副本和删除,因此重命名的文件将列出从文件复制的文件.添加但未重命名的文件不会列出从文件复制的文件.