我有两个版本r1和r2。 r1为不同的文件添加了不同的行(并进行了其他修改)。 r2删除了某些文件中r1引入的一些行。有没有办法得到r1删除行的那些文件的列表?
答案 0 :(得分:1)
是
svn diff
为您提供两个修订版之间的统一差异。使用--summarize
标志仅列出文件名。
因此,svn diff -rR1:R2 --summarize
会在修订版R1
和R2
之间列出所有受影响的文件。
现在,对于每个文件,您可以使用grep通过搜索"^-"
来获取已删除行的列表(即:以-
字符开头的行。)
总体命令是:
R1="your first revision value"
R2="your second revision value"
for i in $(svn diff -r${R1}:${R2} --summarize | cut -c9-)
do
echo "Listing lines deleted between revisions ${R1} and ${R2} in file:${i}"
echo "===================================================================="
svn diff -r${R1}:${R2} ${i} | grep -in "^-"
echo "===================================================================="
done
cut
命令用于从svn -diff --summarize
的输出中删除前导状态标志和空格,而grep命令用于搜索修订版之间标记为已删除的行。 grep的-n
参数也告诉它打印diff中受影响的更改的行号。这与原始文件中的行号不同,但它位于同一邻域中。
答案 1 :(得分:0)
您是否尝试过使用svn diff
?
答案 2 :(得分:0)