我知道我可以 svn diff -r a:b repo 查看两个指定修订版本之间的更改.我想要的是每个修改文件的差异.这样的命令可用吗?
ben*_*din 179
它没有内置命令,所以我通常只做这样的事情:
#!/bin/bash
# history_of_file
#
# Outputs the full history of a given file as a sequence of
# logentry/diff pairs. The first revision of the file is emitted as
# full text since there's not previous version to compare it to.
function history_of_file() {
url=$1 # current url of file
svn log -q $url | grep -E -e "^r[[:digit:]]+" -o | cut -c2- | sort -n | {
# first revision as full text
echo
read r
svn log -r$r $url@HEAD
svn cat -r$r $url@HEAD
echo
# remaining revisions as differences to previous revision
while read r
do
echo
svn log -r$r $url@HEAD
svn diff -c$r $url@HEAD
echo
done
}
}
Run Code Online (Sandbox Code Playgroud)
然后,你可以用:
history_of_file $1
Run Code Online (Sandbox Code Playgroud)
ngn*_*ngn 143
与您描述的略有不同,但我认为这可能是您实际需要的:
svn blame filename
Run Code Online (Sandbox Code Playgroud)
它将打印文件,每行以前一次更改它的提交的时间和作者为前缀.
emi*_*zki 88
如果要查看包含代码更改的文件的完整历史记录:
svn log --diff [path_to_file] > log.txt
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 38
您可以使用git-svn将存储库导入Git存储库,然后使用git log -p filename.这显示了文件的每个日志条目,后跟相应的diff.
小智 20
从...开始
svn log -q file | grep '^r' | cut -f1 -d' '
Run Code Online (Sandbox Code Playgroud)
这将为您提供文件更改的修订列表,然后您可以使用该列表重复调用脚本svn diff.
奇怪命名的"责备"命令就是这样做的.如果你使用Tortoise,它会给你一个"from revision"对话框,然后是一个文件列表,其中包含一行一行的修订版号和作者旁边的作者.
如果右键单击修订信息,则可以打开一个"显示日志"对话框,其中提供完整的签入信息以及签入的其他文件.
| 归档时间: |
|
| 查看次数: |
183347 次 |
| 最近记录: |