是否可以获得svn客户端调试输出?

问题描述 投票:0回答:5

我希望在 svn 客户端中启用极其详细的日志输出,专门用于解决失败的合并问题。

我目前面临的问题是从主干合并到我的功能分支中没有带来新的变化,但是两个 HEAD 的差异揭示了突出的未合并工作。

通常我认为这意味着合并信息已经混乱,或者项目目录结构中更深层次的合并信息导致了问题。然而,在这种情况下,我已经清理了所有 mergeinfo 属性,并手动确保功能分支的 mergeinfo 的根不包含我尝试合并的主干头部的修订。

对于此任务和其他任务,我希望能够启用 SVN 调试日志,该日志实际上会向我显示以下内容:

  • 尝试将修订版 XXX 从 https:.... 合并到工作副本
    • 已跳过,已合并
  • 尝试...

我正在考虑使用某种编译时标志来重新编译 svn 客户端以指示日志记录的详细程度,但没有取得任何进展。有谁知道如何从 SVN 客户端获取更多信息吗? (命令行,Linux)。

svn
5个回答
15
投票

您可以使用

--config-option servers:global:neon-debug-mask=<level>
获取网络调试输出(参见级别此处)。这对合并和其他逻辑问题没有帮助(非常低级别);只是为了那些在谷歌上搜索 svn 客户端调试输出以解决网络问题的人指出这一点。


2
投票

据我所知,不。 --verbose 存在,但仅适用于

svn status
svn pl
(可能更多,但不合并或更新)。我绝对可以看到这样做的必要性,特别是如果你正在使用 mergeinfo。

听起来您已经知道自己在做什么,但尝试运行

svn pl -v
以查看根节点上的合并信息。

另外,我注意到 svn 1.6.6 及更早版本在 mergeinfo 方面存在问题,特别是它在某些情况下会破坏它。升级到最新版本(在 ubuntu 10.04 上,我使用 svn 检查了源代码,构建了它,然后卸载了 apt-get 版本)。

祝你好运。


1
投票

是的,这是可能的。在

~/.subversion/servers
文件末尾添加:

neon-debug-mask = 511

0
投票

可能与您的问题没有直接关系,但请说您想查看哪些文件:

svn up

看,我这样做:

  1. 在 shell 中启动
    htop
  2. 将光标带入
    svn up
    过程
  3. 点击
    s
    (用于跟踪)
  4. 点击
    F4
    (用于过滤器)并添加
    open
  5. 点击
    F8
    (用于自动滚动)

现在我在“svn”内部有一个很好的日志输出!

这只是一个示例,但您可以通过这种方式监视任何系统调用。


0
投票

也可以使用

strace
来查看发生了什么,例如

strace svn up

就我而言,是

~/.gnupg/S.gpg-agent
阻塞了所有svn进程。

© www.soinside.com 2019 - 2024. All rights reserved.