> a hg ci-6ren">
gpt4 book ai didi

version-control - 移动/重命名后,Mercurial 差异不起作用

转载 作者:行者123 更新时间:2023-12-04 15:02:18 24 4
gpt4 key购买 nike

将文件移动到另一个目录后,我无法再显示两个修订版之间的差异。例如。:

hg init

touch a
hg add a
hg ci -m "Added a"

echo "Bli" >> a
hg ci -m "Bli"
echo "Bla" >> a
hg ci -m "Bla"
echo "Blub" >> a
hg ci -m "Blub"

hg diff -r 0 -r 1 a

结果是:
diff -r 8603b08f5a64 -r 16675581549e a
--- a/a Mon Apr 23 09:03:25 2012 +0000
+++ b/a Mon Apr 23 09:03:25 2012 +0000
@@ -0,0 +1,1 @@
+Bli

这正是我所期望的。但是,当我现在将文件“a”移动到目录“b”时:
mkdir b
hg mv a b/a
hg ci -m "Moved a into b"
cd b
hg diff -r 0 -r 1 a

这导致什么都没有(根本没有输出)。我还尝试使用 git Giff 算法:
hg diff --git -r 0 -r 1 a

同样,根本没有输出。日志似乎没问题:
hg log --follow a

结果是:
changeset:   4:cb8185829bfd
tag: tip
user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
date: Mon Apr 23 09:08:12 2012 +0000
summary: Moved a into b

changeset: 3:4d1ba89885c3
user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
date: Mon Apr 23 09:03:26 2012 +0000
summary: Blub

changeset: 2:e9126dbb50b2
user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
date: Mon Apr 23 09:03:26 2012 +0000
summary: Bla

changeset: 1:16675581549e
user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
date: Mon Apr 23 09:03:25 2012 +0000
summary: Bli

changeset: 0:8603b08f5a64
user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
date: Mon Apr 23 09:03:25 2012 +0000
summary: Added a

有人知道为什么在移动文件后差异不起作用吗?非常感谢您的帮助。

最佳答案

这对于今天的 Mercurial 来说是困难的或不可能的。我认为你能得到的最接近的是

hg log --follow --patch -r 1 a

Mercurial 将在显示差异 ( --follow ) 之前向后跟踪副本 ( --patch )。

一般情况下,Mercurial 不会跟踪 文件身份 ,它只跟踪 文件名 .当您按修订号查找信息时,Mercurial 将首先查找修订,然后查找该修订中的所有文件名。所以 hg cat -r 0 a会给你同样的结果
hg update -r 0
cat a

即,结果独立于当前的工作目录父目录。

关于version-control - 移动/重命名后,Mercurial 差异不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com