1

我在我们的 mercurial 存储库中使用分支,并注意到在单独的分支中完成的重命名在合并到默认分支后未显示预提交。但是,在您发出hg diff -g命令时提交后,它会正确显示重命名。

以下片段显示了我的意思。正在创建一个新的存储库。我默认创建一个文件。然后我创建一个名为 branch-one 的分支。我重命名分支一中的文件并将此更改合并回默认值。在提交默认值之前,我做了一个差异来查看更改是什么,并注意它不会获取重命名,而是报告删除然后添加。但是在提交之后我再次检查差异,这次重命名被正确报告。

有没有办法在提交之前正确报告差异?

D:\hgsource>hg init SO-question

D:\hgsource>cd SO-question

D:\hgsource\SO-question>echo test file content > test.txt

D:\hgsource\SO-question>hg commit -A -m "first commit"
adding test.txt

D:\hgsource\SO-question>hg branch branch-one
marked working directory as branch branch-one

D:\hgsource\SO-question>hg rename test.txt new-file.txt

D:\hgsource\SO-question>hg status
A new-file.txt
R test.txt

D:\hgsource\SO-question>hg commit -m "renamed file in branch-one"

D:\hgsource\SO-question>hg update default
1 files updated, 0 files merged, 1 files removed, 0 files unresolved

D:\hgsource\SO-question>hg merge branch-one
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)

D:\hgsource\SO-question>hg diff -g
diff --git a/new-file.txt b/new-file.txt
--- /dev/null
+++ b/new-file.txt
@@ -0,0 +1,1 @@
+test file content
diff --git a/test.txt b/test.txt
deleted file mode 100644
--- a/test.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-test file content

D:\hgsource\SO-question>hg commit -m "merged from branch-one"

D:\hgsource\SO-question>hg diff -c tip
diff --git a/test.txt b/new-file.txt
rename from test.txt
rename to new-file.txt

我在 Windows XP 上使用 1.6.3 版。

4

1 回答 1

1

注意: diff 可能会为合并生成意外结果,因为如果未指定修订,它将默认与工作目录的第一个父变更集进行比较。

http://linux.die.net/man/1/hg

于 2010-10-11T04:45:24.070 回答