git p4 submit --shelve
はローカルのgitリポジトリでコミットされた変更を受け取り、それらをチェンジリストXに置き、それらをシェルフします。git-p4チェンジリストを取得する方法
残念ながら私は、ローカルのgitリポジトリ内のファイルがチェンジリストX内のファイルと同じではないので、shelved変更についていくつかのコードレビューを行ったとしましょう。チェンジリストXのアップデートをローカルgitレポ?
git p4 submit --shelve
はローカルのgitリポジトリでコミットされた変更を受け取り、それらをチェンジリストXに置き、それらをシェルフします。git-p4チェンジリストを取得する方法
残念ながら私は、ローカルのgitリポジトリ内のファイルがチェンジリストX内のファイルと同じではないので、shelved変更についていくつかのコードレビューを行ったとしましょう。チェンジリストXのアップデートをローカルgitレポ?
diffを生成してgitツリーに適用することができます。 (diffを生成する最も簡単で信頼性の高い方法は、チェンジセットをクリーンなPERFORCEクライアントにunshelveしてからp4 diff -du ...
を実行することです)。
In将来、あなたはこれをする必要はありません。最初にgit-p4
を使う点は、主にgitで作業することですが、Perforceとの間で変更を同期させることです。したがって、git環境は「マスター」環境である必要があり、PERFORCEクライアントはPERFORCEサーバのステージング領域としてのみ使用する必要があります。
私は、主にPERFORCEで働くユーザーと話し合い、Swarmを使用してコードレビューを行います。個人的にはgitを使いたいのですが、PERFORCEのユーザーと一緒に仕事をしようとしています。 –
私はこの種のサポートにmodified version of git-p4.pyを作った。各シェルビーチェンジリストの変更番号を持つファイルを作成します。次に、git p4 sync --changesfile <filename>
を実行します。
唯一の問題は、p4/master
ブランチに変更がインポートされるため、git-p4
は変更が既に送信されていると考えてしまうことです。それを使用している場合は、新しくインポートされたコミットにいくつかのローカルgitブランチをハードリセットしてから、p4/master
refをインポート前にハードリセットする必要があります。また、コミットメッセージの末尾に[git-p4: depot-paths = ...]
情報を追加するので、git p4 submit
を直接実行するには適していません。あなたはおそらくバッチでそれらをストリップするgitコミットフィルタのいくつかの種類を書くことができます。
それにもかかわらず、p4 unshelve
、p4 diff -dau > foo.patch
、およびpatch -Npx -i
を手動で処理するよりも良い方法だと思います。
'git p4 submit --update-shelve'はそれをしませんか? – jamesdlin
申し訳ありませんが、よく口にする質問です。私はperforceで棚上げされたファイルが変更されたことを意味し、git-p4リポジトリ内のファイルを更新したいと考えています。 –