0

私の現在のプロジェクトでは、SVNを介して管理されているサードパーティのライブラリを使用しています。これをローカルのgithubに追加して、内部管理(バージョン間の外部更新の追跡、およびライブラリへの内部変更)を行います。SVNでは、svnimportと「ベンダーブランチ」戦略を使用してこれを実行しました。

gitで同様のことを試しました。リポジトリを作成し、ローカルでクローンを作成し、ライブラリをローカルクローンにエクスポートし、コミットしてプッシュします。プッシュ以外はすべてうまくいきました。大きなバイナリファイル(グラフィックス、ターボール、さらにはさまざまなプラットフォーム用にコンパイルされたDLL / SO / DYLIB)があるため、合計リポジトリは約1.7Gです。はい、私はこれらのファイルがリポジトリにあるべきではないことを知っていますが、この開発者はそうではないと感じ、今私はそれを扱うのに行き詰まっています。バイナリファイルは(他のすべてのソース管理システムと同じように)gitの強みではないことは知っていますが、それを行う方法が必要です。現在、git-pushは終了しません(約30分間CPUとネットワーク帯域幅を大量に消費し、その後10時間アイドル状態になりました)。

このようなベンダーリポジトリをGitで管理するにはどうすればよいですか?

4

1 に答える 1

1

SVNリポジトリを取得する最良の方法は、git svnサブコマンドを使用することです。最初に(リポジトリの完全なリビジョンごとにSVNに要求し、ローカルでリポジトリを構築する必要があるため、時間git svn cloneかかる可能性があります)、を使用して最新の状態に保ちます。このようなリポジトリでできることには厳しい制限があります。ドキュメントを注意深く読んでください。カジュアルな使用の場合は問題ありません。注意を払えば、を使用してパッチをアップストリームに送信することもできます。gitgit svn rebasegit svn

于 2013-03-07T13:30:18.947 に答える