我肯定错过了有关如何使用hg blame
的内容。
我在文件Foo.csproj
中有一个特定的行是可疑的,我想看看谁修改了它。根据{{3}},这应该是hg blame Foo.csproj
,也许是hg blame -unl Foo.csproj
。
其中一个回复给我
abort: Foo.csproj: no such file in rev xxxxx
我尝试过完全合格的路径,而不是。发生了什么事?我使用的功能错了吗?它的意思是什么?我如何找出我想要找到的内容(最后一个修改该文件第1700行的人)。
请注意,虽然我对在Sourcetree和TortoiseHg中如何完成此操作感兴趣,并且我确定其他人也可能感兴趣,但我特别想知道如何使用命令执行此操作线客户端。
答案 0 :(得分:3)
Blame的工作方式与您期望的完全一样,并且您的示例命令是正确的,因此我怀疑您遇到了一些棘手的问题。这是一个正常情况的例子:
ry4an@four:~$ hg init GeorgeMauer
ry4an@four:~$ cd GeorgeMauer/
ry4an@four:~/GeorgeMauer$ echo test > afile.txt
ry4an@four:~/GeorgeMauer$ hg commit -Am first --user George
adding afile.txt
ry4an@four:~/GeorgeMauer$ echo more test >> afile.txt
ry4an@four:~/GeorgeMauer$ hg commit -m second --user Other
ry4an@four:~/GeorgeMauer$ hg blame afile.txt
0: test
1: more test
ry4an@four:~/GeorgeMauer$ hg blame -u afile.txt
George: test
Other: more test
ry4an@four:~/GeorgeMauer$
您是否有可能与Windows(和Mac)默认文件系统中隐藏的“不区分大小写,但保持大小写”属性相冲突?
尝试hg manifest
以确保您提供的文件名的大小写是在repo中记录的内容,这可能与您在磁盘上的文件不同。对于上面的示例,我看起来像:
ry4an@four:~/GeorgeMauer$ hg manifest
afile.txt
例如,如果您包含foo.csproj
,那么
当您询问存储库中没有的文件时,您收到的错误消息是:
ry4an@four:~/GeorgeMauer$ hg blame filedoesnotexist
abort: filedoesnotexist: no such file in rev 72a94e6fe429
所以要么它从未被添加和提交,要么更有可能是你用错误的名字来称呼它。