2010-12-17 7 views
2

私の会社ではGitをバージョン管理に使用していますが、私たちはSVNを使用する別の会社(Gitの使用を拒否しています)と一緒にプロジェクトを進めています。 Gitサーバーを中央サーバーとしてセットアップし、何とかSVNへのアクセスを提供する必要があります。 git-svnはSVNが中央サーバである間にGitを使うのに効果があるのですが、GitリポジトリにSVNアクセスを提供するにはどうすればいいですか?GitとSVNを中央サーバとして使用する

注:Githubが現在GitリポジトリへのSVNアクセスを提供していることがわかりました。誰が彼らがそれをやるか知っていますか?

+0

Githubは、内部開発のSVN-to-Gitゲートウェイを使用しています。彼らはこれまでに情報源を公開することについて黙っている。私は彼らの意思を疑う。 – cdhowie

+0

少し背景:私たちはgitサーバーにgitoliteを使用しています。おそらく誰かが解決策を生み出すためにgitoliteを嘆願したり、助けなければならないでしょうか? – kelloti

+1

これは明らかに有効な答えではありませんが、私はそれらを "Tough#$ @ !,このプロジェクトにgitを使っています。 – haydenmuhl

答えて

2

はい、あなたはSubGitを使用することができます。

$ subgit configure path/for/svn/repository 
$ #edit path/for/svn/repository/conf/subgit.conf to set git.default.repository (absolute or relative path to your bare Git repository) 

スタートの連続同期:

は、それがSubGitを使用して、あなたのGitのリポジトリにリンクするための空のSVNリポジトリ

$ svnadmin create path/for/svn/repository 

設定を作成します。

$ subgit install path/for/svn/repository 

SVNとGitの両方のインタフェースは、結果として読み書き可能です。

GitHubは私が知っているように、GitにオンザフライでアクセスするSVNインターフェイスを実装しました。このアプローチには、それ自身の利点と欠点があります。

+0

これは最適なオプションです。私はそれが1.5年前に利用可能であったことを望む:( – kelloti

3

あなたのネットワーク内にsvnリポジトリをセットアップし、そこからgit-svnを使用してチェックアウトし、実際のgitリポジトリをリモートとして追加し、そこから引き出してsvnリモートにプッシュすることが考えられます。私はそれが動作するか信頼できるかどうかわからないが、それは何らかの鏡を作り出すはずです。 SVNミラーを更新するためにプッシュが発生したときに蹴られるフックのいくつかを使って、あなたの側を同期させることができます。逆の場合(クライアントがSVNリポジトリにコミットするとき)、そのために何か別のことを考える必要があります。

+0

はい、私はSVNとgitを同期させる方法としてフックを使用することを考えましたが、信じられないほどエラーが発生するようですので、誰かが経験していることを期待していました。 – kelloti

+0

まあ、あなたは奇妙な問題があるので... :) –

+0

十分に公正。私は奇妙な人たちと一緒に仕事をしていると思います。 – kelloti

0

[OK]を、私は悪いが、実現可能な、答え(イモ)で私自身の質問に答えるつもりです。標準パッチファイルを使用して、両社間で変更を送信することができます。 Noufalイブラヒムに応じて、私はフックスクリプトと組み合わせてTailorを使用して、私は実際に自動化されたソリューションを持っているかもしれないと思う:私のマネージャーが、これは許容できるソリューションですが、私は本当に


はEDITそれを好きではないと考えています実際にはうまくいくかもしれません。 Thisブログには、Tailorを使用してSVNミラーを設定するための素晴らしい説明があります。

+1

[quilt](http://savannah.nongnu.org/projects/quilt)と[Tailor](http://progetti.arstecnica.it/tailor)があります。あなたの人生を少し楽にしてください。 –

関連する問題