有没有办法在整个存储库上运行 svn log (而不仅仅是检查主干)而不必检查它?

Posted

技术标签:

【中文标题】有没有办法在整个存储库上运行 svn log (而不仅仅是检查主干)而不必检查它?【英文标题】:Is there any way to run svn log on an entire repository (not just a checkout of trunk) without having to check it out? 【发布时间】:2010-08-20 11:54:00 【问题描述】:

我有一个 Subversion 存储库,我们的 Atlassian Fisheye 实例由于一些意外提交 + 回退(即有人标记了整个存储库而不止一次标记了 /trunk,而几乎窒息)。 所以我想要做的是审核大于平均提交的 repo,并使用 svndumpfilter 执行转储+加载以删除错误提交。 不过,我在获取每个修订版的大小时遇到​​了一些麻烦。我快到了。我有以下确定使用带有主干结帐的 svn 日志可见的每个修订版的大小:

for r in `svn log -q | grep ^r | cut -d ' ' -f 1 | tr -d r`; 
do echo "revision $r is " `svn diff -c $r | wc -c` " bytes";
done

但是,由于错误提交发生在主干之外,因此在(主干的)工作副本上运行 svn log 不会列出它们。 相反,我需要 svn log 的功能来运行存储库范围。 我可以签出整个存储库,但我没有必要的几天/几周来签出所有标签+分支。 有人可以帮我吗?

【问题讨论】:

【参考方案1】:

当然,您可以指定svn log 的 URL:

svn log svn://server/repo

【讨论】:

谢谢Greg,我还必须在上面命令中的“svn diff -c $r”之后添加repo路径,它可以完美运行。 如果您在存储库的工作副本中,“svn log ^/”是该命令的压缩版本。 也可以和HTTP URL一起使用,svn log https:://svn.server.com/path/to/repo

以上是关于有没有办法在整个存储库上运行 svn log (而不仅仅是检查主干)而不必检查它?的主要内容,如果未能解决你的问题,请参考以下文章

在本地存储库上创建 SVN 分支

如何在远程存储库上使用 git bisect?

svn - 基于文件的修订号而不是 repo

将 sonarqube 扫描器配置为在云源存储库上作为云构建中的一个步骤运行

在 GitHub 存储库上显示 Jenkins 构建的当前状态

在数据库而不是假存储库上运行测试是不好的做法吗?