dポイントプレゼントキャンペーン実施中!

gitから変更があると来るメールの↓のようなパッチを当てる方法を教えて下さい
検索しても、ある程度以上のスキルに合わせて書かれているので理解出来ません。
よろしくお願いします

Patch Links:
•ttps://github.com/xxxxxxxx/xxxxx/pull/15.patch
•ttps://github.com/xxxxxxxx/xxxxx//pull/15.diff

A 回答 (3件)

一応念のためレスを…



>OSはWindows7 git bashやwindowsのコマンドプロンプトでは出来ませんか?

windowsにはpatchコマンドは標準ではついていません。patchコマンドをunix版からwindows版に移植したものがあるので、どうしても使いたいのであればそちらを使って下さい。

>>pullとかcloneしなおすとかで、最新状態にすればいいのでは?
>今はそういう状態です。ただ差分ですめば便利かなと
>以前は短い差分はコピペで済ませてました^^;

patchの当て方や戻し方を理解していないのであれば(あと当てたときの動作が以前とどう変わるかをソースからある程度予測できない場合)、pullなりcloneするなりしたほうがいいです。
パッチを当てて別なところがおかしくなるなどの問題が発生することもあるので、ある程度は理解が必要です。

>VisualStudio2010でソースコードビルドしてます

環境依存の部分とかありませんでしたか?そこが少し気になります。といっても環境依存するようなところはビルドするときにエラーがでるのかな…

この回答への補足

取り合えずpatchの基本からやってみました。
patchとdiffは移植しました。

diff -u hoge1.txt hoge2.txt
patch -p0 < hogepatch.txt
patch -R < hogepatch.txt
で階層無しで、差分出力、パッチ当て、パッチ解除出来ました。

diff -u foo/hoge1.txt bar/hoge2.txt
patch -p0 < hogepatch2.txt
patch -R < hogepatch2.txt
は差分出力、パッチ当ては出来るけどパッチ解除は
「Unreversed patch detected! Ignore -R?[n]」と出ます。何故でしょう?

あとdiffの差分出力をテキストファイルに出力する方法を教えて下さい
現在は範囲コピーしてます。

補足日時:2013/05/12 22:29
    • good
    • 0
この回答へのお礼

取り合えず疑問は解決しました。
ありがとうございました。

お礼日時:2013/05/12 23:21

まずは、あなたがそのパッチを使おうとしているOSは何か、patchコマンドやそれに相当するツールは使える状態になっているのか、をはっきりさせてください。



> diff --git a/xxxx/xxxx/xxxx/xxxx.cs b/xxxx/xxxx/xxxx/xxxx.cs
> こんな感じの場合どうなんでしょう?

そのようなファイルが「パッチファイル」です。
diffコマンドの出力をそのまま保存したテキストファイルです。

前後の差分なので、行数が少なければ、手動での変更もできます。

> またパッチファイルはメモ帳で保存?拡張子は?
> パッチファイルを置く場所は?

なんでも構いません。
(#1の/path/to/patch_file に相当する箇所に) ファイルを指定するのが普通なので。
.patchや.diffが使われることもありますが、それでないといけない、というわけではありません。



で、パッチの当て方がわからないなら、pullとかcloneしなおすとかで、最新状態にすればいいのでは?

> 検索しても、ある程度以上のスキルに合わせて書かれているので理解出来ません。

まあ、それはそうでしょう。
パッチを必要とするのは、ソースコードからビルドして使うような、上級者がほとんどでしょうから。

この回答への補足

>パッチを使おうとしているOSは何か、patchコマンドやそれに相当するツールは使える状態になっているのか

OSはWindows7 git bashやwindowsのコマンドプロンプトでは出来ませんか?

>pullとかcloneしなおすとかで、最新状態にすればいいのでは?

今はそういう状態です。ただ差分ですめば便利かなと
以前は短い差分はコピペで済ませてました^^;

VisualStudio2010でソースコードビルドしてます

補足日時:2013/05/09 22:49
    • good
    • 0
この回答へのお礼

取り合えず疑問は解決しました。
ありがとうございました。

お礼日時:2013/05/12 23:22

unix系OSであれば、patchコマンドで該当のパッチを適応できます。


コマンドはこんな感じです。

patch < /path/to/patch_file

ただし、はじめてパッチを当てる場合は-Cオプションをつけてエラーメッセージが出ないかどうかを確認しましょう。
-Cオプションは実際にパッチを当てずに処理内容を表示するオプションです。

patch -C < /path/to/patch_file

該当のパッチをcloneするなりダウンロードするなりしてローカルに保存してから行って下さい。
windowsの場合は分かりません

この回答への補足

diff --git a/xxxx/xxxx/xxxx/xxxx.cs b/xxxx/xxxx/xxxx/xxxx.cs
こんな感じの場合どうなんでしょう?
またパッチファイルはメモ帳で保存?拡張子は?
パッチファイルを置く場所は?
疑問ばかり?

補足日時:2013/05/08 22:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!