Code

[PATCH] Fix diff output take #4.
authorJunio C Hamano <junkio@cox.net>
Wed, 18 May 2005 16:10:47 +0000 (09:10 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 18 May 2005 16:39:40 +0000 (09:39 -0700)
This implements the output format suggested by Linus in
<Pine.LNX.4.58.0505161556260.18337@ppc970.osdl.org>, except the
imaginary diff option is spelled "diff --git" with double dashes as
suggested by Matthias Urlichs.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff.c
t/t4000-diff-format.sh

diff --git a/diff.c b/diff.c
index a237311d7a7358fca67633d648eaa5d257f87755..36e8bd4217baf8529bbf20c4836ec1ca5c0983f2 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -83,7 +83,6 @@ static void builtin_diff(const char *name,
                         struct diff_tempfile *temp)
 {
        int i, next_at;
-       const char *git_prefix = "# mode: ";
        const char *diff_cmd = "diff -L'%s%s' -L'%s%s'";
        const char *diff_arg  = "'%s' '%s'||:"; /* "||:" is to return 0 */
        const char *input_name_sq[2];
@@ -123,15 +122,16 @@ static void builtin_diff(const char *name,
        next_at += snprintf(cmd+next_at, cmd_size-next_at,
                            diff_arg, input_name_sq[0], input_name_sq[1]);
 
+       printf("diff --git a/%s b/%s\n", name, name);
        if (!path1[0][0])
-               printf("%s. %s %s\n", git_prefix, temp[1].mode, name);
+               printf("new file mode %s\n", temp[1].mode);
        else if (!path1[1][0])
-               printf("%s%s . %s\n", git_prefix, temp[0].mode, name);
+               printf("deleted file mode %s\n", temp[0].mode);
        else {
-               if (strcmp(temp[0].mode, temp[1].mode))
-                       printf("%s%s %s %s\n", git_prefix,
-                              temp[0].mode, temp[1].mode, name);
-
+               if (strcmp(temp[0].mode, temp[1].mode)) {
+                       printf("old mode %s\n", temp[0].mode);
+                       printf("new mode %s\n", temp[1].mode);
+               }
                if (strncmp(temp[0].mode, temp[1].mode, 3))
                        /* we do not run diff between different kind
                         * of objects.
index d8694121d6f56d6c087727e5d5f3615d9420c5b4..91ed2dc65c6d14276d3533942f902cdcf45de177 100644 (file)
@@ -26,7 +26,9 @@ test_expect_success \
     'git-diff-files -p after editing work tree.' \
     'git-diff-files -p >current'
 cat >expected <<\EOF
-# mode: 100644 100755 path0
+diff --git a/path0 b/path0
+old mode 100644
+new mode 100755
 --- a/path0
 +++ b/path0
 @@ -1,3 +1,3 @@
@@ -34,7 +36,8 @@ cat >expected <<\EOF
  Line 2
 -line 3
 +Line 3
-# mode: 100755 . path1
+diff --git a/path1 b/path1
+deleted file mode 100755
 --- a/path1
 +++ /dev/null
 @@ -1,3 +0,0 @@