3

Perforce から Git に移行しようとしています。私たちの開発は次のように構成されています。

バージョン 1.3.0 が作成され、開発され、製品にリリースされます。開発は継続され、バージョン 1.3.1 が分岐して開発されています。

現在、昇順で作成された多数のバージョンがあります。私の仕事は、これらのバージョンを連続したブランチとしてインポートすることです。つまり、ブランチ 1.3.1 は 1.3.0 から出てきます。ブランチ 1.4.0 はブランチ 1.3.1 などから出てきます...

次の一連のコマンドを使用しています。

git init
git config --add git-p4.branchList 1.3.0:1.3.1
#continue configuration for all of the branches
git p4 sync --detect-branches //depot/path/to/code@all

最終的な branchList 構成は次のようになります。

[git-p4]
       branchList = 1.3.0:1.3.0
       branchList = 1.3.0:1.3.1
       branchList = 1.3.1:1.4.0
       branchList = 1.4.0:1.5.0
etc...

上記のコマンドを実行すると、エラーが発生します。

    Importing revision 457240 (18%)
    Importing new branch common/1.4.0

    Resuming with change 457240
fatal: ambiguous argument 'refs/remotes/p4/common/1.3.1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Command failed: ['git', 'rev-list', '--reverse', '--no-merges', 'refs/remotes/p4/common/1.3.1']

ただし、私の branchList 構成が次のようになっている場合:

[git-p4]
           branchList = 1.3.0:1.3.0
           branchList = 1.3.1:1.3.1
           branchList = 1.4.0:1.4.0
           branchList = 1.5.0:1.5.0

インポートは完全に成功していますが、ブランチ履歴が正しく反映されていません。

ここで何が問題なのですか?

4

1 に答える 1

6

branchList 構成によると、ブランチ 1.4.0 はブランチ 1.3.1 から作成されます。しかし、ブランチ 1.4.0 が初めて見つかったチェンジリスト 457240 では、ブランチ 1.3.1 はまだ見つかりませんでした!

1.4.0 と 1.3.1 の両方が 1.3.0 から作成された可能性はありますか?

branchList 構成は、P4 の統合履歴と一致する必要があります。

P4 での統合履歴を確認するには、すべてのブランチに存在し、ほとんど変更されていないファイルを選択し、P4V の「リビジョン グラフ」機能を使用します。別の方法は、CLI コマンドを使用することp4 filelog //depot/path/to/fileです。

于 2014-11-25T15:17:54.617 に答える