2012-02-09 12 views
1

私は2つのSVNリポジトリがあるプロジェクトに取り組んでいます。 1つは外部での使用、もう1つは純粋に社内での使用のためのものです。ローカルにgitを使って複数のSVNリポジトリにコードを保存する

私は外部リポジトリに存在するフォルダ(src)を持っています。私の望みは、そのコードを内部リポジトリの2番目のsrcフォルダに保存し、内部的にコミットできるようにし、コードが安定しているときに外部リポジトリにコミットすることです。

これに加えて、私のマシン上でgitを使ってコードをローカルで管理したいと思っています。

この目的のために、私はgit-svnを見てきました。

誰でもこれを管理する最良の方法を説明できますか?私は各svnリポジトリ(localsvnとexternalsvn)のブランチを持っていて、デフォルトとしてローカルで作業しています。コミットしたいときに外部にマージし、バックグラウンドでgitを実行し続けます。

答えて

0

私がこれを処理した現在の方法では、コードの2つの別バージョンがあります。分岐システムは私にとってはうまくいかなかった。

git-svnで管理されているリモートリポジトリ用のバージョンと、git-svnで管理されているローカルリポジトリ用のバージョンがあります。ローカルからリモート、またはその逆に移動したいときは、コードをスクリプトで移動してマージし、最後にアップロードします。

0

これは可能ですが、git svnというより難解な機能の1つである-R(リモート名オプション)で遊ぶ必要があります。

ローカルコードとしてgit svn initを使用してgit svnリポジトリを作成し、次に.git/configファイルを参照してください。 [svn-remote "svn"]と呼ばれるセクションがあります。このセクション全体をコピーし、[svn-remote "external"]などの名前に変更し、urlフィールドを編集して外部リポジトリを指すようにし、他のフィールドを更新して固有の名前を付けます。

私は設定が完了した後、configファイルの関連部分はこのような何かを見て期待:

[svn-remote "svn"] 
    url = http://local.svn/repository/root 
    fetch = trunk:refs/remotes/trunk 
    branches = branches/*:refs/remotes/* 
    tags = tags/*:refs/remotes/tags/* 
[svn-remote "external"] 
    url = http://external.svn/repository/root 
    fetch = trunk:refs/remotes/ext-trunk 
    branches = branches/*:refs/remotes/ext-* 
    tags = tags/*:refs/remotes/tags/ext-* 

あなたが今git svn操作を行う場合は、ローカルリポジトリからフェッチます。 -Rexternalを追加すると、代わりに外部リポジトリで作業します。したがって、最初のフェッチを行うには、以下の両方を実行する必要があります:

git svn fetch 
git svn fetch -Rexternal 
関連する問題