6

ソース コード ツリーを perforce から git に移行したいと考えています。ソース コードには、必ずしも同じディレクトリにあるとは限らない、perforce デポ全体に散在するいくつかの開発ブランチが含まれています。たとえば、構造は次のようなものです-

//depot/dev/project/master 
//depot/dev/project/branch1 
//depot/dev/project/branch2
//depot/dev/sub-project/branch3 
//depot/dev/sub-project/branch4 
//depot/patch-project/branch5 
//depot/patch-project/special/developern/branch6 

git-p4 のドキュメントhttps://git-scm.com/docs/git-p4 BRANCH DETECTION セクションと同様の記事http://forums.perforce.com/index.php?/topic/1395-git- p4-and-multiple-branches/ .

直接の親の下にあるものの履歴を持つブランチを移行できます

 //depot/dev/project/branch1 and 
 //depot/dev/project/branch2 

私が達成できないのは、6 つのブランチすべてを一度に移行する方法です。

ブランチ仕様を指定した後、//depot@all レベルで移行を実行しようとしましたが、perforce サーバーが巨大であるため失敗し、maxresults 例外またはセッション タイムアウトが発生します。誰かがこのシナリオをどのように処理できるかを教えてもらえますか?

私が目にするもう 1 つのオプションは、ブランチを個別に移行し (1 つのブランチを 1 つの git リポジトリに)、それらすべてのブランチを新しい git リポジトリにマージすることです。これが影響/マイナス面になるかどうかはわかりません。

Thanks and Regards,
Amar Kumbhar.
4

3 に答える 3

0

git-p4 の最新バージョンは、一度に最大 500 の変更を取得するため、maxresults 例外を報告するべきではありません。引数を使用してこの値を変更してみると--changes-block-size、報告された問題を解決するのに役立つ場合があります。

ここで見られるように、この引数の説明は次のとおりです。

--changes-block-size <n>::
    The internal block size to use when converting a revision
    specifier such as '@all' into a list of specific change
    numbers. Instead of using a single call to 'p4 changes' to
    find the full list of changes for the conversion, there are a
    sequence of calls to 'p4 changes -m', each of which requests
    one block of changes of the given size. The default block size
    is 500, which should usually be suitable.
于 2016-06-04T17:36:33.873 に答える
0

以前にも同様の問題に直面しましたが、私の場合は、あなたが説明した回避策を見つける必要がありました。各ブランチを独自の Git リポジトリに複製しました。

それでも、個々のブランチにはあまりにも多くのオブジェクトがあり、P4 管理者は要求されたオブジェクトの上限を引き上げようとしなかったため、複製する履歴の量も制限する必要がありました。

非アクティブなブランチについては、最新バージョンのみを複製し、そのすべての履歴を破棄します。

よりアクティブなブランチについては、4 ~ 6 週間の履歴を保持します。

これは、保持したい履歴の量の CL 番号を手動で把握する必要があることを意味します。

ドキュメントからgit-p4(セクション: DEPOT PATH SYNTAX):

$ git p4 clone //depot/my/project@1,6 # Import only changes 1 through 6.

于 2016-06-04T18:20:03.490 に答える