2009-08-13 28 views
1

標準のsvn規則(トランク/ブランチ/タグ)に従うsvnリポジトリをインポートしようとしています。 "問題"は、各コピーの下に、本当に私のgitリポジトリで削除したい2つの全く役に立たないディレクトリがあることです。私のsvn構造は次のようになります。ほとんどのユーザーはちょうどダウン「realstuff」からチェックアウトしてしまうので、SVNでgit-svnでインポートする際に冗長なrepoディレクトリを削除しますか?

trunk/redundantdir1/redunddantdir2/realstuff 
branches/b1/redundantdir1/redunddantdir2/realstuff 
tags/t1/redundantdir1/redunddantdir2/realstuff 
... 

これらの二つのディレクトリ、同じくらいけがはなかったです。 gitを使って、私は本当に冗長ディレクトリをリポジトリから守りたいと思っています。私はsvnの構造を変更する準備ができていないので、git repoをSubversionと同期させておく必要があります。提案?

答えて

1

git-svnを使ってSVNの分岐やマージを行うことはお勧めしません。実際には、ブランチやタグのディレクトリは必要ありません。あなたは、むしろ私が本当でやって示唆している枝を作成したり、マージより(ブランチの変更を加える必要がない場合は:

git-svn clone https://example.com/svnroot/trunk/redundantdir1/redunddantdir2/realstuff myprojectname 

編集:次に、あなたはちょうどあなたがこのように必要なレポの一部を複製することができますSVN)、あなたは、単にそのような別のgitのレポとしてその枝のクローンを作成することができます

git-svn clone https://example.com/svnroot/branches/b1/redundantdir1/redunddantdir2/realstuff myprojectname-b1 
+0

私がいつもマージしている限り、法案に合った良い提案は、svnのトランクに変更を戻し、そこからgitにフェッチします。しかし、私はこのgit repoに入る必要があるsvnに少なくとも1つの支店があります。 – krosenvold

+0

私は、別のgitリポジトリを使ってそのブランチを変更することをお勧めします。 –

+0

私はそれを示唆する答えを編集しました。 –

0

マイanswerthisへの質問も有用であるかもしれません。

基本的な考え方は、二つの動作にgit svn cloneを区切るためにSVNからリビジョンを取得するのにgit svn fetch次いで、除外してリポジトリを設定するための最初のgit svn initある:

git svn init <Svn repo url> -s --ignore-paths 'redundantdir1' 
git svn fetch 

これも与えますもしあなたがすることができるのsvnレポの最初の12344のチェンジを無視するように、たとえば、SVNのレポの狭いクローンであるためにあなたのgitのレポのためのオプション:

git svn fetch -r 12345:HEAD 

その時から、git svn fetchは最近のチェンジセットをフェストするだけです。

関連する問題