1

我发现了这个漂亮的小脚本,我把它做成了一个 bash 脚本。

#!/bin/bash
svn log -v -r{$1}:HEAD | awk '/^r[0-9]+ / {user=$3} /./{if (user=="'$2'") {print}}' | grep -E "^   M|^   G|^   A|^   D|^   C|^   U" | awk '{print $2}' | sort | uniq

$1 = 2012-10-01 //for example
$2 = George //for example

该脚本似乎有效,但它仅打印出来自主干的提交。当我从终端 svn 登录时,无论分支如何,我都会看到所有提交。

到目前为止,我已将问题缩小到 awk。我们在分支文件夹名称中使用空格。不确定这是否有问题。

/./ 在 awk 区域是问题吗?

到目前为止,我从 svn info 获取 url 并将其放入变量中。

theURL=$(svn info | grep -E "^(URL: )http(s)?:")
theURL=${theURL:5}

也许我可以告诉 awk 只打印出与我的 url 方案的一部分匹配的行?

谢谢,

4

1 回答 1

1

svn log没有路径参数使用默认的“。” 路径(在您的情况下,它必须并且只能是工作副本 - 链接到 repo 的主干)

svn log URL同时可以与远程存储库的树的任何部分一起使用,与(某些)WC的当前设置无关。

只需添加并使用第三个参数

于 2012-12-28T15:13:22.733 回答