1

Git リポジトリを Perforce に移行しようとしています。私が試したことは(例)

  1. クローニングgit clone https://github.com/mbostock/d3.git
  2. ディレクトリを新しいフォルダに変更する
  3. で提出するgit p4 submit

これは、しばらくすると失敗し、エラー メッセージが表示されます

fatal: Not a valid object name HEAD~1036
Command failed: git cat-file commit HEAD~1036

移行が機能する Git が見つかりません。Git 1.9.5 を使用しています。私は何を間違っていますか?

4

2 に答える 2

3

git-p4 は、既存の p4 リポジトリのクローンを作成し、それを git との間でミラーリングするように設計されています。git-p4 が直接実行できない新しい p4 ブランチを作成しようとしています。したがって、これは少し複雑です。

次のことを試してください。

1. p4 のどこかに空のブランチを作成します。

新しい場所 //depot/foo を指すクライアントが必要です。

$ p4 client whatever....

また、p4 を満足させるために、空のファイルを作成する必要があります。

$ touch P4EMPTY
$ p4 -c your_client_name add P4EMPTY
$ p4 submit -d 'Add empty file'

2. クローンします。

$ cd /path/to/git/dir
$ git p4 clone //depot/foo

3. エクスポートするレポを取得します。

$ git remote add mycode git://whatever.git
$ git fetch mycode
$ git checkout -b upstream mycode/master

4. p4 リポジトリに対してリベースします。

$ git p4 rebase p4/master

5. 送信:

# We don't want to edit the commit message, so skip that part
$ git config git-p4.skipSubmitEdit true
$ P4CLIENT=your_client_name git p4 submit

とにかくそのような何か... :-)

于 2015-04-07T16:24:37.710 に答える
1

Perforce の Git Fusion 製品を使用すると、Git リポジトリを Perforce にインポートできます。

これを実現する方法に関する情報は、次の場所にあります。

http://www.perforce.com/perforce/doc.current/manuals/git-fusion/chapter_dyn_ngj_3l.html#section_ecm_qdq_nj

Git Fusion を使用するもう 1 つの利点は、ユーザーがマシンに何もインストールする必要がないことです。

これが役に立てば幸いです、ジェン!

于 2015-04-08T15:21:55.807 に答える