3

私は git-svn を使用して、https 経由で認証する Subversion リポジトリに接続しています。Linux (Ubuntu 12.04) で git コマンド ライン クライアントを使用しています。Subversion サーバーとの対話が必要なコマンドを実行するときは、予想どおり、svn パスワードを入力する必要があります。ただし、コマンドが svn サーバーとの複数の対話を必要とする場合 (複数のローカル コミットを伴う git svn dcommit など)、パスワードを複数回入力する必要があります。

別のワークステーションでは、一連のコミット全体に対してパスワードを一度要求するという期待される動作を与える同様のセットアップがあります。

ここここで同様の質問を見つけましたが、どちらの場合も、OP は git-svn コマンド間でキャッシュされた svn 資格情報を望んでいました。パスワードをキャッシュするように Subversion を構成していないので、できればそのままにしておきたいです。

私の git-svn バージョンは 1.7.9.5 (svn 1.6.17) です

4

3 に答える 3

1

問題は、git svnコマンドが通常の Subversion インターフェースのラッパーを使用して複数の Subversion 操作を実行することです。Git は、Subversion の資格情報を認識したり、気にしたりしません。

続行するためのいくつかの異なるオプションを見ることができますが、どれも素晴らしいものではありません:

  • Subversion の資格情報ストアを有効にします。あなたはこれについて知っていて、やりたくないと言っているので、それは初心者ではありません.

  • Git が実行する Subversion 操作ごとにパスワードを入力するだけです。現在のソリューション。それが良ければ、あなたは質問をしていないでしょう。

  • パッチgit svn。Git コードはオープン ソースであり、git svnコマンドは Perl で記述されているため、システム上で編集し、再コンパイルせずに新しいバージョンを使用できます。大まかなデザイン:

    • Subversion リポジトリと対話するときはいつでも、最初に対話型認証 (つまり、基礎となるコマンド--non-interactiveへの引数) なしで実行を試みます。svn

    • それが機能する場合は、続けてください。それが失敗した場合は、認証がないために失敗したと想定し、ユーザーにユーザー名とパスワードの入力を求めます。

    • svnのコマンドで、認証が必要ない場合は、そのまま続行します。それ以外の場合は、保存されているユーザー名とパスワードを明示的に指定します (つまり--username、基礎となるコマンド--passwordへの引数)。svn

ただし、ソロになることは簡単ではありません。Git のソース コードを掘り下げるのに特に苦労したり、誰かにお金を払ってやってもらいたいと思ったりしない限り、これは我慢する必要がある動作のようです。

于 2013-04-02T18:21:19.560 に答える
0

subversion資格情報をディレクトリに保存する必要があります。素朴な解決策は、svn リポジトリを一時ディレクトリに簡単にチェックアウトして、 andをsvn保存することです。usernamepassword

svn co http://url-of-your-svn/repos/repos temp-repos-directory

このようsvnにして、資格情報を保存するかどうかを尋ねられ、資格情報はsubversionconfig ディレクトリ ( ~/.subversion/aut/Linux の場合) に保存されます。

svn別の解決策は、資格情報を保存するように直接要求することです。

svn update --username 'username' --password 'password'
于 2013-03-29T14:21:02.767 に答える