2013-07-25 66 views
22

git svnを使用して、SVNリポジトリの1つのディレクトリをGitリポジトリに複製しようとしています。git svn SVNリポジトリの1つのディレクトリのクローン

git svn clone svn+ssh://path/to/repo/trunk/directoryを使用すると、ソースSVNリポジトリのブランチを反映するブランチのないGitリポジトリが表示されます。

git svn --stdlayout svn+ssh://path/to/repo/trunk/directoryを使用すると、空のGitリポジトリが表示されます。私は上記の問題を解決する方法は、これはまだ空のレポを生成し、-r 1000:HEADのようにリビジョン範囲を追加したことを読んでいた

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory' 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 

:コマンドの出力を以下に示します。出力は次のとおりです。

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 

まだソースのSVNリポジトリーから枝&タグのすべてをつかむのgit - SVNを使用してSVNリポジトリのサブディレクトリのクローンを作成する方法上の任意のアイデア?

git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory 

答えて

38

、あなたはこのような何かをしたいですデータ:

git svn init http://my_svn_server.com/repository/project/location 
git svn fetch 

クレジットは、ガブリエル・サルダナに行く:http://blog.gabrielsaldana.org/using-git-with-subversion-repository-subdirectory/

+7

ここでの洞察は、 '--branches'引数にワイルドカード文字を使用できることです。良いもの。 –

+2

ちょっと注意してください。もし特定のディレクトリにブランチやタグがない場合は、 '--branches'と' --tags'パラメータを安全に省略することができます。つまり、 '--stdlayout'の代わりに' --trunk = ... 'を使うだけでうまくいくはずです。 – Nux

22

がローカルプロジェクトディレクトリを用意し、次のように入力します:

mkdir local/project/path 
cd local/project/path 

は、SVNリモートでローカルのgitリポジトリを初期化し、フェッチあなたは、標準的なレイアウトをしたくない

+2

は魅力的に働いた –

+1

これは、ユーザー(作成者)マッピングファイルの追加を許可しないことに注意してください。少なくとも '-A'ではありません。 – Nux

+1

これは通常、1ステップの 'git svn clone 'とはまったく変わりません。 – MarkHu

関連する問題