为什么 svn 在 shell 脚本中运行时不使用我的凭据?

为什么 svn 在 shell 脚本中运行时不使用我的凭据?

我有十几个目录的集合,它们都是不同 svn 存储库的单独工作副本。它们在我的所有机器上的配置方式相同,因此我可以随时在其中任何一台机器上工作。我是唯一一个这样做的人:没有其他人使用它们,而且它们都使用相同的凭据,因为它们都是内部的。所有工作副本都是svn --username=aaa --password=bbb co http://xxxx/svn/yyyy .在每台机器上创建的。

我大部分时间都在其中的大多数工作,并定期调用一个 shell 脚本,该脚本循环遍历所有这些脚本并在每个脚本中执行 ansvn up和 an操作。svn ci -m "stuff"

这一切都在所有机器上的 Linux Mint 19 下进行(并且在以前的版本下多年来一直运行良好),但在一台机器(HP Envy 笔记本电脑)上,脚本为每台机器返回相同的错误(名称被屏蔽):

svn: E170013: Unable to connect to a repository at URL 'http://xxxx/svn/yyyy'
svn: E215004: No more credentials or we tried too many times.
Authentication failed

但是,如果我svn up在任何目录中手动发出一个命令,它就会起作用(即它知道凭据)……然后运行脚本就可以正常工作,并且一切都会同步。

我没有收到任何钥匙串内容的提示(我也不知道有任何钥匙串正在使用中)。由于该脚本无需在所有其他机器上进行手动干预即可正常工作,因此我将不胜感激任何关于我应该在哪里寻找该特定机器无法工作的指示。

答案1

我不知道 Mint(好),但我会检查至少两件事

  • 脚本是否在与您运行的用户相同的用户下执行svn up
  • 脚本可以在没有用户干预的情况下(技术上)连接到存储库以及尝试执行此操作的次数(预期结果:1 次)

svn up作为最后的手段,您还可以添加硬编码凭据

相关内容