git svn clone --password pass命令报错“Unknown option: password”

31
我想使用git克隆svn仓库,并在命令行中提供用户名和密码。
我可以这样写:
svn checkout --username user --password pass svn://server/repo

但我无法在git svn clone命令中使用--password选项:

git svn clone --username user --password pass svn://server/repo
Unknown option: password

如何在命令行中给 git svn clone 命令输入密码?

或者是否有一种 --svn-options 开关可以用于 git-svn?

附言:需要在命令行上指定密码,因为此服务器上有多个具有不同用户/密码的存储库,并且svn愚蠢地假设所有存储库都使用相同的用户名/密码,因此我有一半的时间会得到 svn: Authorization failed 错误,即使我使用了--username,它也不会要求输入密码(似乎有时会要求密码,但不足以在脚本中使用)。


https://dev59.com/MnDXa4cB1Zd3GeqP-UMs#15771437 可以帮助。 - VonC
@VonC 是的,我已经阅读过那个了,但是答案中说的解决方案都不可接受。 - Suzanne Soy
2个回答

22
< p > git svn 直接使用 SVN 命令,因此可以使用在 SVN 中保存的密码。

运行以下命令:

svn checkout --username user --password pass svn://server/repo

让SVN记住你的密码。

如果这不起作用,请删除保存的SVN验证:

$HOME/.subversion/auth/svn.simple/*

然后git svn clone将提示您输入密码。


1
只是一点提示。svn checkout 可能需要相当长的时间。但是无需等待它完成。一旦 checkout 开始,密码就会被保存,您可以取消 checkout 过程(在 Windows 上按 Ctrl+C)。 - Josef Sábl
2
尝试使用 --depth empty,例如 svn checkout --username someuser --password somepass --depth empty <svn-url> - Mike D
2
如果你只是运行它来重置密码,你可以使用 svn log 而不是 svn checkout。这可能会非常快速地完成,以至于尝试 ctrl+c 可能不值得你的时间。 - LinuxDisciple

16

只需使用--username指定用户名,您应该会被要求输入密码。

有关更多信息,请参见git svn --helpman git svn


5
正如我的问题所述,我需要在命令行中输入密码,而不是被提示输入密码(除非我可以安全地将“echo”或类似内容的输出重定向到那里)。 - Suzanne Soy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接