gpt4 book ai didi

svn - 我可以按排序顺序获取 svn diff 吗?

转载 作者:行者123 更新时间:2023-12-04 21:41:56 24 4
gpt4 key购买 nike

如何让 svn diff 按照底层更改文件的顺序排序?我看到围绕它进行了许多讨论,但没有任何最终解决方案。

我知道我可以获取已更改的文件列表,对其进行排序,然后逐个文件调用差异文件以获得我想要的内容。但是,我一直在寻找更简单的东西,以防万一。

这是我要解决的最后一个用例。我在私有(private)合并中做了一些更改,然后合并到主干中。我想通过将进入主干的更改与我的分支中的更改进行比较来验证我的合并。我在想我可以使用类似的东西在我的分支上获得差异

svn diff -r <change no at which branch was created>:HEAD --summarize <branch url>

并将其与主干上的差异进行比较。但是,差异并不是按照更改文件的排序顺序进行此类比较的。我知道我可以获取更改的文件,对它们进行排序并逐个获取两个分支的差异文件以进行此类比较。然而,在我尝试这条路径之前,我想知道是否已经存在解决/解决此类用例的方法。

最佳答案

我写了几个脚本。第一个列出分支上更改的排序差异为:

#!/bin/bash
# argument 1: change at which branch was created
# argument 2: branch url
# argument 3: change at which the first checkin was made into the branch
# this script produces sorted diff for changes in a given branch over specified change range

fnames=`svn diff -r $1:HEAD --summarize $2 | sort`
for f in $fnames
do
if [ "$f" != "M" ] && [ "$f" != "A" ] && [ "$f" != "MM" ]; then
echo $f
echo "=============================="
svn diff $f@$3 $f
fi
done

另一个为更改创建排序差异(在我的情况下用于主干检查)为:

#!/bin/bash
# argument 1: change number
# this script produces sorted diff for given change number

fnames=`svn diff -c $1 --summarize <trunk url> | sort`
for f in $fnames
do
if [ "$f" != "M" ] && [ "$f" != "A" ] && [ "$f" != "MM" ]; then
echo $f
echo "=============================="
svn diff $f@$(expr $1 - 1) $f@$1
fi
done

这两个脚本的输出差异是我审查的 list 。

关于svn - 我可以按排序顺序获取 svn diff 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31770801/

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