注::この質問は当初GitHub以前の時代に尋ねられました。ビジュアルディフィーリングとユニファイドディフパッチファイルを使用するタイミングは?
私は2002年から開発されていなかったいくつかのコードを引き継いだと私は時間をかけて、それに対して送信されたパッチを通して見えました。これらのパッチはすべてunified diff形式であり、明らかにコード改善を提出するためのデファクトスタンダードです。ここで1つのパッチは、ように見えたものです:
@@ -365,7 +385,10 @@
return() unless defined $op_sym;
$a_or_b = $op->[OPCODE] ne "+" ? 0 : 1 unless defined $a_or_b;
- return ($op_sym, $seqs->[$a_or_b][$op->[$a_or_b]]);
+ my $line = $seqs->[$a_or_b][$op->[$a_or_b]];
+ my @ret = ($op_sym, $line);
+ return @ret;
}
どのように正確に私は、この変更は、文脈で何をするかを把握することが出来るのですか?パッチはサブルーチンがどのような影響を及ぼすか教えてくれません。元のファイルを開いて365行目に移動し、パッチファイルの '+'行のパッチファイルの ' - '行に対応する既存の行を精神的に置き換える必要があります。 WTF?
は私の正気を維持するために、私は、実際にパッチが何をしているのか確認するためにfile.orig
と
file
に差分ツールを使用して、
file
上
patch
を実行している、
file.orig
として元
file
のコピーを作成することになりました。
問題は次のとおりです。ファイル全体を送信するのはいつですか?また、いつパッチファイルを送信するのが理にかなっていますか?
パッチを受け入れるほとんどの開発者は、そのパッチでパッチが参照しているものを即座に把握できますか?ファイルに頻繁に現れる行を削除するとどうなりますか?どのサブルーチンでパッチが影響を受けるかを知っていますか?
帯域幅が貴重だった日にパッチが戻ってきたのかもしれませんが、今日の帯域幅はこの問題を時代遅れにしています。私は、パッチファイルが誤植のような単純な変更に適していることに同意します。
しかし、GitHubやGoogle Codeが登場する前であっても、ファイル全体から重要なコードの寄稿を依頼している開発者はいません。誰もが "パッチが歓迎"と期待して統合diffを期待しています。ビジュアル差分ツールでファイルを並べて比較することはできませんか? character-level intra-line differencesはどうですか?パッチファイルには表示されません。
あなたは私が思う少数派からは遠く離れていますが、これを書き直してさらに技術的な質問をする必要があります。初心者のためのより良いタイトルかもしれない – annakata
私はソースコントロール全体の世界にはかなり新しいので、私は賛否両論(したがって答えではなくコメント)を重視することはできませんが、私は確かに視覚的なものを好みます。 TortoiseSVNのdiffツールとWinMergeを組み合わせることで、これまでのところうまくいきました。私はWindowsの男です。私は輝くものが好きです。 –