git - 单个 git-svn 命令不为多个 svn 操作缓存密码

标签 git git-svn

我正在使用 git-svn 连接到通过 https 进行身份验证的颠覆存储库。我在 Linux (Ubuntu 12.04) 上使用 git 命令行客户端。当我执行任何需要与颠覆服务器交互的命令时,我必须按预期输入我的 svn 密码。但是,如果该命令需要与 svn 服务器进行多次交互(例如 git svn dcommit 进行多次本地提交),我必须多次输入密码。

在另一个工作站上,我有一个类似的设置,这让我在整个提交系列中要求一次密码的预期行为。

我发现了类似的问题herehere但在这两种情况下,OP 都希望在 git-svn 命令之间缓存 svn 凭据。我没有配置 subversion 来缓存我的密码,如果可以的话我想保留它。

我的 git-svn 版本是 1.7.9.5 (svn 1.6.17)

最佳答案

问题是 git svn 命令使用围绕常规 Subversion 接口(interface)的包装器执行多个 Subversion 操作; Git 不知道也不关心您的 Subversion 凭据。

我可以看到几个不同的继续选项,但都不是很好:

  • 启用 Subversion 的凭据存储。你知道这件事并说你不想这样做,所以这是不可能的。

  • 只需为 Git 执行的每个 Subversion 操作键入密码。您当前的解决方案;如果那很好,你就不会问这个问题了。

  • 补丁 git svn。 Git 代码是开源的,git svn 命令是用 Perl 编写的,因此您可以在您的系统上编辑并使用新版本而无需重新编译。粗略的设计:

    • 每当与 Subversion 存储库交互时,首先尝试在没有交互身份验证的情况下执行它(即 --non-interactive 底层 svn 命令的参数) .

    • 如果可行,很好,继续。如果失败,则假设由于缺少身份验证而失败,并提示用户输入用户名和密码。

    • 后面的svn命令,如果不需要认证,就这样进行。否则,明确指定存储的用户名和密码(即 --username--password 底层 svn 命令的参数)。

不过,单打独斗绝非易事。除非您特别喜欢在 Git 源代码中进行一些艰苦的工作,或者希望这足以支付某人为您做那件事,否则看起来这是您需要忍受的行为。

关于git - 单个 git-svn 命令不为多个 svn 操作缓存密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690560/

相关文章:

git-svn 无法提交回 svn repo 尽管有干净的 rebase

git - "Unable to determine upstream SVN information from working tree history"

windows - 如何将 gVim 设置为 Git for Windows 上的编辑器?

git - 如何通过 shell 命令行向组授予对 Bitbucket 存储库的写访问权限

git 显示文件更改为 0 次插入 (+)、0 次删除 (-)

windows - 是否有类似 TortoiseSVN 的 git-svn Windows 客户端?

linux - 如何在 Cpanel/WHM 中配置 SVN?

git - 在 git-svn 中为分支添加另一个目录

git - Jenkins 和 git ?

git - TortoiseGit 麻烦 : git did not exit cleanly (exit code 128)