1

標準の svn 規則 (trunk/branches/tags) に従う svn リポジトリをインポートしようとしています。「問題」は、各コピーの下に 2 つのまったく役に立たないディレクトリがあり、git リポジトリで本当に削除したいことです。私のsvn構造は次のようになります:

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

svn では、ほとんどのユーザーは「realstuff」からチェックアウトするだけなので、これらの 2 つのディレクトリはそれほど害はありませんでした。git を使用すると、冗長ディレクトリをリポジトリから除外したいと思います。svn 構造の変更を開始する準備ができていません。(短い) 間、git リポジトリを subversion と同期させておく必要があります。提案?

4

2 に答える 2

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
于 2009-08-13T13:18:09.550 に答える
0

この質問に対する私の答えも役立つかもしれません。

基本的に、アイデアはgit svn clone2 つの操作に分けることです。最初git svn initに除外を含むリポジトリを設定し、次にgit svn fetchsvn からリビジョンを取得します。

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

これにより、git リポジトリを svn リポジトリの狭いクローンにするオプションも与えられます。たとえば、svn リポジトリの最初の 12344 個の変更セットを無視することができます。

git svn fetch -r 12345:HEAD

それ以降は、git svn fetchより最近の変更セットのみをフェストします。

于 2011-02-03T11:14:39.460 に答える