既存のプロジェクト 'a'を指定すると、プロジェクト全体を 'b'にコピーし、 'b'を変更します。元のディレクトリとコピーしたディレクトリとの間にdiffを生成します。
例えば、ディレクトリにチェックアウトまたはダウンロードプロジェクトは、 ''、 'B' にコピーします。
$ diff -r -s a b
Files a/dir/Bar.java and b/dir/Bar.java are identical
Files a/dir/Foo.java and b/dir/Foo.java are identical
$ sed -i 's/Foo.*$/& \/* Change...*\//' b/dir/Foo.java
$ diff -ruN a b | tee a.patch
diff -ruN a/dir/Foo.java b/dir/Foo.java
--- a/dir/Foo.java 2012-08-02 18:41:39.444720785 -0700
+++ b/dir/Foo.java 2012-08-02 18:46:45.319932802 -0700
@@ -1,2 +1,2 @@
package dir;
-public class Foo {}
+public class Foo {} /* Change...*/
$ gzip a.patch
:
$ tree a
a
`-- dir
|-- Bar.java
`-- Foo.java
$ cp -r a b
$ tree b
b
`-- dir
|-- Bar.java
`-- Foo.java
は 'B'(とのみ 'B')を変更しますもう一つの方法は、オリジナルのソースを一時的なローカルgitリポジトリに保存し、gitの組み込みのdiff
を使ってパッチを生成することです。または、元のソースがgitを使用している場合は、リポジトリを複製してソースツリー自体で直接作業し、(まだ)gitを使用してパッチを生成してください。
申し訳ありません私は自分の質問に早く答えなかったが、 'svn diff'は私のために(git diffのように) – RubyTuesdayDONO