問題タブ [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 リモート ブランチをどうするか?
P4 から Git に移行するときの refs/remotes/p4/master の意味を漠然と理解しています (ドキュメントはそれについてあまり明確ではなく、ここで説明を見つけることができませんでした)。
git-p4 クローンのドキュメントによると:
指定された p4 デポ パスから、ヘッド リビジョンの完全なコンテンツを Git ブランチ refs/remotes/p4/master の単一のコミットにインポートします。
私が正しく理解している場合、Git は何らかの方法で refs/remotes を使用して、元の P4 リポジトリで作成されたローカル Git リポジトリを追跡します (間違っている場合は修正してください)。
私の質問は次のとおりです。移行後に Git と P4 間の接続を維持したくない場合、ref/remotes/p4/master ブランチを削除する必要がありますか? それとも動かしたほうがいいですか?それは何か効果がありますか?念のため置いておいたほうがいいかも…?
注: 後で同じプロジェクトのブランチを Perforce から Git に移行する必要がありますが、ブランチが移行されると、Perforce で追跡する必要がなくなります。
git - Git の翻訳 -> Perforce が失敗する
Git リポジトリを Perforce に移行しようとしています。私が試したことは(例)
- クローニング
git clone https://github.com/mbostock/d3.git
- ディレクトリを新しいフォルダに変更する
- で提出する
git p4 submit
これは、しばらくすると失敗し、エラー メッセージが表示されます
移行が機能する Git が見つかりません。Git 1.9.5 を使用しています。私は何を間違っていますか?
git - git p4クローンの失敗:ValueError不正なマーシャルデータ
Git-P4 を使用して、プロジェクトの日々の変更を少し簡単にすることに挑戦しています。Git wiki で Git-p4 の使用法に従っているときに、git p4 クローンフェーズに到達すると、次のエラーが表示されます (パスは意図的に削除されています)。
これは、p4 print コマンドを変更する必要があることを意味するかどうかわかりませんか? コミュニティの他の誰かがこのエラーに遭遇しましたか? および/または提案がありますか?
EDIT 出力例
python - Cygwin での Git P4: 「パッチは適用されません」で送信が失敗する
Cygwin で git-p4 を使用しようとしています。ワークフローの「クローン」と「リベース」の部分は正しく機能しているように見えますが、「送信」できません。行末の規則と関係があるのではないかと思います。この git-p4 の問題とそのリンクされたアイテムを見てきましたが、行末と空白の構成の操作は今のところ成功していません。私の構成で注目すべき項目:
(1) パスが正しく機能するように、bash シェル関数のトリックを使用しています。
(2)gitの値のすべての設定を試しましたautocrlf
-結果は(true、false、input)に関係なく失敗です。現在、デポと比較するときに最も理にかなっている「false」を試みています。
(3) p4 clientspec の lineend 値も試しました。現在、「unix」、Cygwin および OSX で実行されている P4 サンドボックス サーバーの b/c を試みています。
テストは簡単です。リポジトリには 1 つのファイル foo1 が含まれています。デポのバージョンは次のようになります (を使用した出力od -c
):
ローカルで git コミットされたバージョンは次のようになります。
applyCommit()
git-p4のメソッドに診断出力を追加しました。--verbose を使用してサブミットを実行すると、次のようになります。
「Sanity:」診断行に注意してください。これは、メソッドtryPatchCmd
内で失敗する の値です。applyCommit()
bash コマンド ラインでステートメントの最初の部分を実行すると、次のように表示されます。
これをコマンドの 2 番目の部分にパイプしても、エラーは発生しません。os.system()
Pythonスクリプトを使用して実行するとコマンドが失敗するのに、それ以外の場合は成功する理由について当惑しています。考え?
python - git-p4 メッセージと作成者のエンコーディング
今日、かなり古い perforce リポジトリを git に移行する立場にいます。これは非常に興味深いことですが、私の目を引いたことが 1 つあります。コミット メッセージ内のすべての特殊文字、および作成者名でさえ、正しいエンコーディングではありません。
そこで、問題の原因を調査しようとしました。
- まず、perforce サーバーは Unicode をサポートしていないため、P4CHARSET を設定しても効果はありませんが、
Unicode clients require a unicode enabled server.
p4 users
次に、ANSIで実際にwhereのような単純なコマンドの出力を確認しました(file -bi
リダイレクトされた出力に応じて、メモ帳++またはISO-8859-1を参照してください)- コマンドは
locale
LANG=en_US.UTF-8 と表示されます ...
私の推測では、すべての p4 クライアント出力は ISO-8859-1 ですが、git-p4 は代わりに UTF-8 を想定しています。
コミットメッセージを書き直してみました
しかし、特に著者名を書き換えることを意図していないため、問題は解決しません。
git-p4 がそれらを受信する前に、出力を強制的に UTF-8 に変換する方法を誰かが推測していますか?
アップデート:
デフォルトのp4コマンド出力を、PATHの前に追加した単純なシェルスクリプトで「上書き」しようとしました
しかし、それは明らかに使用されているマーシャリングされた python オブジェクトを破壊します:
アップデート2:
ここで見られるように Python のデフォルトのエンコーディングを変更しますか? Pythonエンコーディングをasciiに設定しようとしました:
出力:
しかし、まだすべてのメッセージと作成者が正しく移行されていません。
更新 3:
git-p4.pydef commit(self, details, files, branch, parent = "")
関数にパッチを当てようとしても役に立ちませんでした:
それらの1つに
ちょうど上げました:
私は Python 開発者ではないので、次に何を試せばよいかわかりません。
git - git p4 sync - perforce の変更はどこに行ったのですか?
私の現在の設定では、Perforce デポで行われたすべての変更は git リポジトリに移行されます。転送は常に Perforce から git への一方通行であり、その逆ではありません。git p4 clone
デポを新しい git リポジトリにコピーするのに問題git p4 sync
はありませんでしたが、現在 を使用しようとしていますが、リポジトリが更新されていません。
を実行するとgit p4 sync
、Perforce デポからの新しい変更のインポートに関するステータス メッセージが表示されました。コマンドをもう一度実行すると、すべてが最新であると表示されます。私のmaster
ブランチには変更がなく、私のレポには他のブランチやリモートがリストされていません (例: git branch -v
and git remote -v
。これらの変更をチェックアウトするにはどうすればよいですか?
( を使用git version 2.3.2 (Apple Git-55)
)。