16

以下を使用してGitでSVNリポジトリをインポートしました:

git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git

途中で何度か失敗し、「再起動」する必要がありましたが、最終的には成功しました。

git svn fetch

それでも、結局はすべてがうまくいくようです。--preserve-empty-dirs(今書いているとき、私は追加のfetchesでも提供すべきだったかどうか疑問に思い始めますか?編集: いいえ、私はすべきではありません。以下の私のコメントを参照してください。

それから私は作成したかった.gitignoreので私は

git svn create-ignore

そして、これも成功しました。

しかし、最終的な結果は満足のいくものではありません。それは.gitignore多くのフォルダにたくさんのファイルを生成しました。SVNがプロパティを持っているたびに、svn:ignoreGitは対応する.gitignoreファイルを作成したようです。

.gitignoreそれらを単一のルートファイルにマージしてもらいたいのですが。これはgitで可能です。これは、無視を使用するとはるかに柔軟になり、ワイルドカードを使用する(または使用しない)サブディレクトリで無視できるようになるためです。.gitignoreいずれにせよ、これらの「サブ」をルートで1つのサブに自動的に変換することは可能だと思います。

そして、「SVNの人々」は、20を超えるファイルをコミットすることに満足していないので、それを望んでい.gitignoreます...

4

1 に答える 1

29

私は解決策を見つけました。show-ignore代わりにを使用してcreate-ignore、出力をファイルに保存する必要があります。

したがって、リポジトリのクローンを作成した後、次のコマンドを実行します。

git svn show-ignore > .gitignore

.gitディレクトリがあるリポジトリルートから。

于 2012-12-05T05:55:17.417 に答える