問題タブ [format-patch]

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.

0 投票する
8 に答える
35005 参照

svn - Git形式-svn互換のパッチ?

git format-patchで作成されたパッチをsvn互換にして、svnリポジトリに送信できるようにする方法はありますか?

githubでsvnリポジトリを処理していて、変更をメインリポジトリに送信したいと思っています。これを行うにはパッチを作成する必要がありますが、パッチがsvnとは異なるgit形式であるため、パッチを適用できません。まだ発見していない秘密はありますか?

更新:現在、これを行うためのスクリプトまたはネイティブgitの方法はありませんが、手動でこれを実行する方法について、今年の初めから投稿を見つけることができました。私は指示に従い、gitパッチをsvnで動作させることに成功しました。

誰かがこれを達成し、gitプロジェクトに貢献するためのスクリプトを書くことに挑戦することができれば、私は誰もが大いに感謝されるでしょう。

http://kerneltrap.org/mailarchive/git/2008/1/15/570308/thread#mid-570308

0 投票する
4 に答える
280 参照

git - format-patch はかなりうまく機能し、より良い方法を探しています

リベースが機能しないように見えるほど異なる 2 つのブランチがあります。または、リベースの方法がわかりません。

一連のファイルが削除された「パブリック」ブランチがあります(フィルターブランチを使用)。ほとんどのコミットはデルタに関して一致しますが、コミット ID はすべて異なります。dev ブランチから public ブランチに変更をプルするために、かなりの数の方法を試しました...自分のやりたいことができるとは信じがたいですが、方法がわからないだけだと思いますやれ。いずれにせよ、これはうまく機能しますが、間違っているようです。

パブリック ブランチで不要なファイルをフィルターで分岐しないことを含むヒントや提案を歓迎します (ただし、それらを削除するにはどうすればよいでしょうか?)。

私のツリーは多かれ少なかれ次のように見えます:

t ≅ a、u ≅ c、v ≅ d、w ≅ e、x ≅ g。i、j、k は、移行したい新しいパッチです。

0 投票する
1 に答える
483 参照

git - GIT:多くのフォークを維持しながらコミットの重複を避ける方法は?

クライアント サイトを作成するために複製する「ベース サイト」を含むベース リポジトリがあるので、作業を行い、コミットを行い、クライアント フォークにプッシュすると、コミットの途中で 1 つ以上の必要があることに気付きます。ベースリポジトリにマージされます。それが私がしたことです:

git フォーマット パッチ -1 SHA

次に、「ベース サイト」リポジトリに移動して、次の操作を行います。

git am -3 patch_file

大丈夫です。問題は、「ベース サイト」からクライアント リポジトリに変更をプルしたいときに、コミットが複製されることです。

それを回避する方法はありますか?多分別のワークフロー?

編集:

実際、私はまだ問題を抱えています。私の説明はそれほど明確ではありません。もう一度試してみましょう:

「docs」、「layout」、「pub」、および「sql」フォルダーを含む基本リポジトリがあります。「docs」および「layout」フォルダーには空の「index.html」だけがあります。「pub」フォルダーに Joomla をインストールしました。

私が新しいクライアントを持っているとき、私は彼のディレクトリを作成してリポジトリを初期化します。次に、ベースベアリポジトリを指すリモート「ベース」を追加し、それをフェッチし、ベース/マスターをチェックアウトしてから、「チェックアウト -b マスター」を実行してマスターを作成しますベースの master ブランチからのブランチ。次に、ローカル サーバーで 'clone --bare' を作成し、それからローカル ワークステーションでクローンを作成します。必要に応じてドキュメントを保存し、デザイナーがレイアウトを作成し、すべてがコミットされてクライアントのベア リポジトリにプッシュされます。ローカル リポジトリが最新であることを確認するために、プッシュする前に常に「オリジン/マスターのリベース」を行います。

レイアウトが完成してプッシュしたら、それをプルして Joomla テンプレートの作成を開始します。そのため、多くのコミットを行った後、Joomla コンポーネントを変更して、正常に機能させる必要があることに気付きました。わかりました、コンポーネントを変更し、コミットして、テンプレートの作成を続行し、コミットします...

ここで、すべてのクライアントに同じ変更を加えたいので、すべてのコンポーネントのコミットを「ベース リポジトリ」に移動します。@jleedev ソリューションを試したところ、クライアントのすべてのコミットが一番上に移動し、クライアントのベア リポジトリに既に存在していた SHA が書き換えられました。

何か案は?

ありがとう!

0 投票する
4 に答える
8313 参照

git - git am / format-patch:行末の制御フォーマット

を使用して3つのコミットからパッチを作成しました

これにより、ノートブックからメールで送信し、デスクトップコンピューター(どちらもWindowsボックス)でメールを読み取る3つのパッチファイルが作成されます。

私が今やるとき

パッチは適用されますが、コミットに対して同じSHA1IDを取得できません。パッチを適用したファイルを少し検索すると、デスクトップコンピュータの変更された行がで終わるLFのに対し、ノートブック(パッチを作成した場所)の変更された行はで終わることがわかりましたCR LF

だから、私の最初の考えはなしで呼び出すことでしたgit am--ignore-space-change、これは私にエラーを与えます(パッチは適用されません)。

行末(msysgit 1.7.4)の処理方法を教えてくださいgit format-patchgit am

パッチを適用する前にUNIX、本当にVIMを取得してファイル形式をからに変更する必要がありますか?DOS


編集: VIMでパッチファイルを変更することすら役に立ちません:私は考えました、set ff=dosそして:%s/^M//gそれは役立つでしょう、しかしそれはしません!

私の意見では、パッチを適用すると、パッチが作成された他のリポジトリから取得したのとまったく同じコンテンツと同じコミットハッシュが得られるはずです。私はそれについて間違って考えていますか?

0 投票する
6 に答える
11352 参照

git - git am / git apply を patch コマンドのように「あいまい」にするにはどうすればよいですか

私は git-format-patch と git-am を使用して、あるリポジトリから別のリポジトリに変更を適用しています。ファイル構造は同じですが、私が適用しているリポジトリにいくつかの変更があり、ほとんどのパッチがいくつかのハンクに失敗します。しかし、ほとんどのパッチ ハンクは、行番号が多少あいまいな状態で適用されます。

git-am apply私が非常に厳密に解釈できる限り、これらのパッチはすべて完全に拒否されます。

だから私のワークフローは

コマンド ライン パッチを実行する必要がなく、am コマンドの一部として実行できればよいのですが。

フラグを指定して実行すると、--rejectファイル内のすべてのハンクを含む .rej ファイルが作成されるように見えますが、これは私が望んでいるものではありません。

--3wayフラグを指定して実行すると失敗します

これは、これが基づいていた変更セットが、マージ先のリポジトリにないためだと思います。

git-am applyraw patch コマンドのようにあいまい一致でパッチを作成し、失敗したハンクを含む .rej ファイルのみを作成する方法はありますか?

0 投票する
1 に答える
413 参照

git - Git でのマージ後にパッチを再フォーマットする方法は?

と の 2 つのブランチがmasterありslave、同じファイルと同じ行を編集するとします。まず、ファイルの内容は

次に、ブランチslaveで次のように編集されます

ここで、ブランチのユーザーがslaveパッチ ( git format-patch master) をフォーマットし、ブランチのユーザーに送信しますmaster。同時に、ブランチmasterで同じファイルが編集され、

パッチを適用できず、マージして新しいパッチを作成するmasterよう求められます。が にマージされ、競合が解決されslaveたら、パッチを再フォーマットします。コミット グラフは次のようになります。masterslave

最新のコミット (マージ) はslave次のようになります。

ただし、ここで を実行するgit format-patch masterと、マージと競合の解決が考慮されていない、以前とまったく同じパッチが得られます。

最新のマスターに適用されるパッチをどのようにフォーマットしますか? 無しでやってみたいrebaseです。

更新:git format rev1..rev2ここで、rev1とはそれぞれとブランチrev2のヘッドであり、競合の解決に関連する変更は含まれていません。有効なパッチをフォーマットしますが、コミット メッセージを省略します。mastercustomgit-diff

0 投票する
4 に答える
6420 参照

git - git format-patchでフォーマットされたパッチを電子メールで送信するにはどうすればよいですか?

オープンソースプロジェクトに送信したい一連のパッチがありますが、電子メールを適切にフォーマットする方法がわかりません。git format-patchコマンドを実行してみて、それらすべてをThunderbirdからの電子メールに添付しましたが、各パッチはそれ自体が個別の電子メールであると想定されているため、すべて拒否されました。同じツリーにプライベートなコードと送信する必要のあるコードがあるため、git emailコマンドを避けたいと思います。つまり、送信する前に各電子メールを手動で確認できる必要があります。

Thunderbirdを使い続けたいのですが、行が折り返され、パッチが使用できなくなるため、問題があるようです。私もfetchmailとmuttを設定しようとしましたが、文字通り10時間読んで試した後、あきらめました。gitパッチを送信するための非fetchmailおよび非thunderbirdソリューションはありますか?

0 投票する
2 に答える
1569 参照

git - git format-patch および EOL の ^M

行末に ^M を含むファイルのパッチを作成するのに苦労しています。ファイルを編集すると ^M は表示されませんが、format-patch によって作成されたパッチは、パッチ ゾーン コンテキストでそれを示しています。そのため、新しい git ツリーに適用しようとすると、git am は行末でこの ^M を検索していますが、表示されません。そしてそれはエラーの結果です。

git format-patch がこの ^M を考慮に入れるのをやめるアイデアや回避策はありますか?

前もって感謝します

PS: この git ツリーへの書き込みアクセス権がないため、パッチを作成する必要があります。

0 投票する
1 に答える
3774 参照

git - Git:コミットIDを参照せずに、「機能」ブランチで行われたすべてのコミットのパッチを生成します

アプリケーションの2つのバージョンを2つのブランチで維持しています:freeおよびmastermasterアプリケーションのプレミアムバージョンです)。これらのブランチはかなり似ていmasterますが、バージョンにはない追加のアプリケーション機能がいくつかあるfreeため、2つのブランチを継続的に維持する必要があります。

定期的に、バグを修正したり、ブランチに機能を追加したりする必要があります。これらの機能は、完了時にブランチにfree適用する必要がありmasterます。そのような作業ができたら、freeたとえば、と呼ばれるに基づいて新しいブランチを開始しますnewfeature。機能が完了したら、newfeatureX個の新しいコミットがあります。

にマージする前にnewfeaturefreeに含まれているすべてのコミットからパッチを生成するために使用できるコマンドを知りたいのですが、newfeatureこれをに適用する必要がありますmaster。現在、私はこれを行っています:

方法を知っている限り、実際に分岐したときの特定のコミットIDnewfeatureと、の最後のコミットを検索する必要newfeatureがあります。これはドラッグです。コミットIDには興味がなく、入力する必要はありません。

私が話しているコミットをgitが判断する、一貫して使用できる単一のコマンドが必要です。これは毎回同じパターンです。ブランチが与えられた場合、の共通の祖先からコミットnewfeatureのパッチを生成したいと思います。newfeaturefreenewfeature

コミットIDを手動で検索する必要をなくすチェンジセット式はありますか?

PS:AFAIK、ブランチgit rebase全体をにマージするため、このタスクを実行するために使用することはできません。ブランチに固有のコミットをにマージしたいだけです。freemasternewfeaturemaster

0 投票する
3 に答える
5781 参照

git - 初期コミットで git format-patch を使用する方法

レビュー プロセス用に初期コミット (空ではない) のパッチ ファイルを取得する必要がありますが、git format-patchコマンドはそれを含まない初期コミットにあるブランチからしか作成しないため、混乱しています。

それは明らかな動きに違いないようですが、私はそれを完全に見逃しています。