Always copy the necessary files before applying a git patch
This patch removes the "copymod" attribute from the gitpatch
class.
AFAICS, that attribute was only used to delay the copying of
renamed/copied files if there are no other changes to the target,
but in this case, if there are changes to the source, we'll end
up copying the wrong version.
This should fix issue762.
adding foo
>>> two diffs showing three added lines <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
>>> no diffs <<<
hg diff -B
hg diff -Bb
>>> four diffs showing added space first on the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
>>> two diffs showing space appended to the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing space inserted into "goodbye" <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
>>> two diffs showing changed whitespace amount in the last line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing added blank line w/horizontal space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -Bb
>>> three diffs showing added blank line w/other space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -Bb
>>> four diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -w
>>> five diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -w
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -wB