Git-svnを使用してsvnリポジトリをミラーリングしようとしています。
私がやっている
git svn clone http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind
そして、私は得ています
Initialized empty Git repository in f:/gstest/WorldWind/.git/
RA layer request failed: PROPFIND request failed on '/svn/trunk/WorldWind': PROPFIND of '/svn/trunk/WorldWind': could not connect to server (http://worldwind31.arc.nasa.gov) at /usr/lib/Perl5/site_Perl/Git/SVN.pm line 148
プロキシ内にない別のコンピューターで同じことを行う場合は問題ありません。
私はwin7を使用しており、$HTTP_PROXY
、http.proxy
(gitのグローバルなもの)、および$HOME/AppData/Roaming/Subversion/servers
を正しいプロキシに設定しました。
シェルでsvn checkout [repo adress]
を実行すると機能します。シェルでwget [repo adress]
を実行すると機能します。しかし、git svn clone [repo adress]
ではありません
何か案は?これで見つけた質問のほとんどは、Subversion/servers
ファイルを指していますが、今はそれを編集しましたが、問題はまだあります...:/
私はまったく同じ問題を抱えていました。
そして解決策は、正しいSubversion構成ディレクトリを見つけることです。少なくとも私の場合、ネイティブのsvn.exe
はファイルC:\Users\MYUSER\AppData\Roaming\Subversion\servers
を使用しますが、git-svn
は~/.Subversion/servers
を使用します。つまり、Git BashShellのこのパス~/.Subversion/servers
は、~
が適切な場所に展開されていることを意味します。 ~/.Subversion/servers
をsvn.exe
が使用する他の方法と同じ方法で編集すると、git svn clone
が機能するはずです。
つまり、Windowsには複数の構成ファイルがある可能性があるため、編集する適切な構成ファイルを見つけることが重要です。
Linux上のプロキシの背後でsvnを機能させるには、ファイル~/.Subversion/servers
をプロキシの詳細で更新します。
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-Host = YOURPROXY.com
http-proxy-port = YOURPORT
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem
Windowsにも同様の構成があると思います...
通常、環境変数のみ:
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
gitまたはgit-svnが正しく機能するには十分です。
しかし、私が得たのは、使用する正確なURLです。
例えば:
HTTP_PROXY=wwww.myproxy.company:8080
は機能しませんが、HTTP_PROXY=http://wwww.myproxy.company:8080
は機能します。HTTPS_PROXY
にも同じものを使用します。つまり、同じhttpアドレスを意味します(最初にHTTPS_PROXY
のhttps URLを入力しようとしましたが、それは機能しません)
もちろん、認証が必要な場合は、(少なくともテスト目的で)ログイン/パス名を追加できます。
HTTP_PROXY=http://myLogin:[email protected]:8080
また、NO_PROXY
を設定するのにも役立ちます:localhost,*.company
。
したがって、この回答の背後にある主なポイントは、「使用している正確なURLを再確認する」ことです(そして、msysgitパッケージまたは curl http://www.google.com
からの単純なGnu On Windows
またはwget
でテストします)
設定については、C:\ Users\YOU\.Subversion\serversを参照してください。このファイル内で次のようなものを探しています...
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-Host = 127.0.0.1
http-proxy-port = 3128
...これらの設定はCNTLM用です。上記でコメントを外した行のコメントを解除し、独自の詳細を入力します。パスワードなどのフィールドがあります。Sourceforgeから情報を取得できるように修正しました。ええ、Sourceforgeはまだそこにあります。
また、CNTLMは、NTLM、最前線などを通過するのに最適です。Fiddler2を実行し、ルールを「自動認証」にtrueに設定して、CNTLMが見逃した認証を取得します。 Chromeアップデートは、Fiddlerが修正するものの1つです。
私にとっての解決策は、rl in configを変更することでした。既存のものにアクセスできなかったからです。確認するには、ブラウザを使用してリポジトリのURLにアクセスしました。禁止されたURLを使用する場合、私は'403 Forbidden'を取得しました。