問題タブ [git-p4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git p4 submit: パッチは適用されません
最近、git-p4 を使用して問題が発生しています。
私の現在のワークフローは次のとおりです。
常にではありませんが、実行時git p4 submit
に変更が実際に適用されず、代わりに次のように表示されることがあります。
いくつかの調査を行って、マスターでハードリセットを行い、--no-ff
フラグなしで再度マージしようとしましたが、それは役に立たないようです.
どんなアイデアでも大歓迎です。
git - git p4 サブミットが失敗する
git と perforce の間の暫定的なブリッジとして実行しているレポで git p4 submit を実行してみました。複数の人がレポをリモートとして使用しており、定期的にperforceに送信されています。
奇妙な動作を再現できないように見える重複した perforce コミットを除いて、ほとんど問題なく動作しています。それからある日突然、このエラーが発生します。git コミットを perforce にプッシュできなくなりました。
そのエラーは、次のエラーによく似ています。
パッチが適用されずに git-p4 submit が失敗する
ただし、キーワードの置換を行っていないため、それが何であるかはわかりません。追加--verbose
はあまり説明に役立たないようです(そのコマンド出力は手元にありません)
私が想像できる唯一の変更点は、コミット時に以下の内容の .gitattributes ファイルを追加したことです。ただし、そのgitattributesファイルが配置されている間にこのコミットの前に行われたコミットは機能したため、そうではありませんでした(その後、.gitattributesファイルをより詳細にしました)
このリモートリポジトリのコミットをこの問題のあるコミットの直前にロールバックし、リポジトリからこのリモートリポジトリに再プッシュしてから再送信しようとしました。同じ動作。ロールバックして、同じファイルにさまざまな編集を加え、再プッシュ、再送信しようとしました。同じ動作。そして、これらのファイルでのみ発生するようです。ロールバック以来、他のファイルを編集しようとしましたが、それらは機能します。dos2unix を実行して、問題のあるファイルに unix の行末を強制しようとしましたが、それも修正されませんでした。
ここで何が起こっているかをよりよく説明できるコマンドはどれですか? 私が追跡できるgitログファイルはありますか? 任意の支援をいただければ幸いです。
編集: .gitattributes ファイルの有無にかかわらず、問題を再テストしました。それは違いはありませんでした。現在、私のグローバルcore.autocrlf設定は入力です。しかし、 .gitattributes ファイルが欠落しているため、違いはないようです。--verbose
これは、問題のあるファイルの 1 つだけをオンにして再テストしたときの様子です。
git - git p4 rebase は過去のコミットを再適用しようとします
git p4 rebase に問題があり、問題の診断を開始する方法がわかりません。問題が何であるかはなおさらです。
だから私は git-p4 によって perforce ワークスペースから複製された git リポジトリを持っており、それはブリッジとして機能するリモート リポジトリとして使用されているため、チームは 1 つのリモート リポジトリに対して git を使用し、定期的にリポジトリの変更をプッシュして戻すことができます。ワークスペース。
そして通常、ワークフローは、人が master ブランチにいて、編集を行い、git -a commit
それらを編集git pull
しgit push
てから、リモートリポジトリに送信するか、ブランチを作成し、完了したらそのブランチをマージするかのいずれかです次に、マスター ブランチをリモートにプッシュします。1日以上かかると、時々枝を押し上げることがあります。
ものを perforce に戻すときは、リモート リポジトリで次のコマンドを実行します。
リモートリポジトリはむき出しではないため、前後にチェックアウトとクリーンを実行しています
基本的に、変更がプッシュされた後、git p4 rebase を実行すると、次のエラーが表示されます。
いくつかの質問があります。ここで、git rebase を実行しているときにgit p4 rebase
、リモート リポジトリに既に適用されていて、以前のgit p4 rebase
. 重複したコミットはどこから来たのですか? リポジトリでそれらを再生しようとしているのはなぜですか?
リポジトリの作業コピーでファイルを確認すると、最後のgit p4 rebase
. その結果、git rebase --continue
実際には何もしません。
唯一の解決策は実行git rebase --skip
することですが、それを実行すると、次回の実行時に同じメッセージが表示され、毎回git p4 rebase
再実行する必要があります。git rebase --skip
それは腹立たしいです。
また、このメッセージを確認した後、実行時にコミットが実際に p4 ワークスペースにプッシュされ、git p4 submit
p4 サブミットが重複してファイルがめちゃくちゃになる方法がよくわからないことがあります。私が実行するとそれが起こると信じていgit rebase --continue
ますgit rebase --skip
。git p4 submit
git のログを確認すると、通常は HEAD がコミットで master より進んでいますが、どのように?
その後、エラーが再び消えることがありますが、エラーが消える条件を正確に把握することはできません。
どうすればこの問題を理解し始めることができますか?
git - git-p4 または適切な p4 コマンド ライン チュートリアルのストリーム サポートはありますか?
私の現在のプロジェクトは、perforce ストリーム ワークスペースにあります。私は git に精通していますが、git-p4 はストリームをサポートしていません。この制限を回避する方法を知っていますか?
(gitユーザーの観点から)perforceの優れたCLIチュートリアルを知っていますか?または、perforce が git と同様に使用するためのコマンド ライン ラッパーでさえありますか (おそらく不可能です)。
ありがとう、ラース
macos - git p4 submit - 「ファイルタイプを特定できませんでした」で失敗しますか?
定期的に、私がやっているgit p4 submit
と、厄介なエラーが発生します:
いずれの場合も、(上記の favicon.ico のような) 何かを混乱させる奇妙なバイナリ タイプのファイル、または (ほとんどの場合) PNG のようなグラフィックです。そして、これにより送信が強制終了され、それより前に開かれたすべてのファイルが開かれた状態のままになりますが、まだ送信されていません...
これを解決するのは面倒なことになり、p4v を使用して入り、新しい変更リストを介して送信しようとしていたものの半分を手動で送信し、送信を終了する必要があります (私の指を交差させます)別の奇妙なファイルにヒットして、再びスタックすることはありません)。
(これは、OS X Mountain Lion を搭載した Mac 上の git バージョン 1.8.3.2 にあります)
git p4
適切に動作させる方法を思いついた人はいますか? 何か案は?
git - git-p4 と切り離されたブランチ
だから、私は
結局のところ、foo/bar (マスター ブランチ) と baz/garply (マスター ブランチから離れたブランチ) の間に関係があることを期待していました。ありませんでした。
私はgit checkout master
マスターブランチに正しく着陸することができました。しかし、"baz/garply" に切り替えようとするとgit checkout p4/baz/garply
、切り離された HEAD に着地します。(git diff master
この切り離された HEAD からも、非常に不正確な結果になるようです。)
主に仕組みgit-p4
を介して関係を維持していないのではないでしょうか?branchList
ブランチ間のこの関係を確立する方法はありますか?
(リポジトリが巨大なためではgit sync
なくgit clone
、再度チェックアウトしたくないことに注意してください。また、リポジトリが大きすぎるため、ブランチ検出メカニズムは機能しません。)
git-p4 - 「git-p4 sync」を機能させるにはどうすればよいですか?
を使用して、「scaffold」という git ブランチを正常に作成しましたgit-p4.py clone
。
Perforce の最新の変更を git ブランチに同期したいので、試しgit-p4.py sync --branch=scaffold
ていますが、次の出力だけが発生します。
その後、git status
と言うnothing to commit (working directory clean)
。
これを機能させるにはどうすればよいですか?