Code

Retire diff-helper.
authorJunio C Hamano <junkio@cox.net>
Wed, 21 Sep 2005 06:24:39 +0000 (23:24 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 22 Sep 2005 08:54:13 +0000 (01:54 -0700)
The textual diff generation with built-in '-p' in diff-* brothers has
proven to be useful enough that git-diff-helper outlived its usefulness.

Signed-off-by: Junio C Hamano <junkio@cox.net>
.gitignore
Documentation/diff-format.txt
Documentation/git-diff-helper.txt [deleted file]
Documentation/git.txt
Makefile
diff-helper.c [deleted file]
diff.c
diff.h
t/t4000-diff-format.sh
t/t4005-diff-rename-2.sh
t/t4009-diff-rename-4.sh

index 0a876865c0b4f7a9908375134ace0dd43f4cd568..e8ae8c352b4d1ca071188d0954caef3077d1ff48 100644 (file)
@@ -20,7 +20,6 @@ git-cvsimport
 git-daemon
 git-diff
 git-diff-files
-git-diff-helper
 git-diff-index
 git-diff-stages
 git-diff-tree
index 424e75a1c2d4747226ac1b55caac90b544f8f273..6e9fa8cdb70faead4649f71aea4fff8f50d17271 100644 (file)
@@ -62,8 +62,7 @@ When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
 with a '-p' option, they do not produce the output described above;
 instead they produce a patch file.
 
-The patch generation can be customized at two levels.  This
-customization also applies to "git-diff-helper".
+The patch generation can be customized at two levels.
 
 1. When the environment variable 'GIT_EXTERNAL_DIFF' is not set,
    these commands internally invoke "diff" like this:
diff --git a/Documentation/git-diff-helper.txt b/Documentation/git-diff-helper.txt
deleted file mode 100644 (file)
index 047e392..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-git-diff-helper(1)
-==================
-v0.1, May 2005
-
-NAME
-----
-git-diff-helper - Generates patch format output for git-diff-*
-
-
-SYNOPSIS
---------
-'git-diff-helper' [-z] [-S<string>] [-O<orderfile>]
-
-DESCRIPTION
------------
-Reads output from "git-diff-index", "git-diff-tree" and "git-diff-files" and
-generates patch format output.
-
-OPTIONS
--------
--z::
-       \0 line termination on input
-
--S<string>::
-       Look for differences that contains the change in <string>.
-
---pickaxe-all::
-       When -S finds a change, show all the changes in that
-       changeset, not just the files that contains the change
-       in <string>.
-
--O<orderfile>::
-       Output the patch in the order specified in the
-       <orderfile>, which has one shell glob pattern per line.
-
-See Also
---------
-The section on generating patches in gitlink:git-diff-index[1]
-
-
-Author
-------
-Written by Junio C Hamano <junkio@cox.net>
-
-
-Documentation
---------------
-Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
-
-GIT
----
-Part of the gitlink:git[7] suite
-
index 2684fa9393cdc7859e91c01ea6a42bfa92a58143..e14102127958d98b1bf37a8d7560320249495ad7 100644 (file)
@@ -363,9 +363,6 @@ gitlink:git-count-objects[1]::
 gitlink:git-daemon[1]::
        A really simple server for GIT repositories.
 
-gitlink:git-diff-helper[1]::
-       Generates patch format output for git-diff-*
-
 gitlink:git-get-tar-commit-id[1]::
        Extract commit ID from an archive created using git-tar-tree.
 
index 1b805b0047ab4849e687925238717c951691b297..f9ecbef6cbfa6a10d506e8551c7d23b525c205d4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -102,7 +102,7 @@ PROGRAMS = \
        git-apply git-cat-file \
        git-checkout-index git-clone-pack git-commit-tree \
        git-convert-objects git-diff-files \
-       git-diff-helper git-diff-index git-diff-stages \
+       git-diff-index git-diff-stages \
        git-diff-tree git-fetch-pack git-fsck-objects \
        git-hash-object git-init-db \
        git-local-fetch git-ls-files git-ls-tree git-merge-base \
diff --git a/diff-helper.c b/diff-helper.c
deleted file mode 100644 (file)
index 734956e..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2005 Junio C Hamano
- */
-#include "cache.h"
-#include "strbuf.h"
-#include "diff.h"
-
-static const char *pickaxe = NULL;
-static int pickaxe_opts = 0;
-static const char *orderfile = NULL;
-static const char *diff_filter = NULL;
-static int line_termination = '\n';
-static int inter_name_termination = '\t';
-
-static void flush_them(int ac, const char **av)
-{
-       diffcore_std_no_resolve(av + 1,
-                               pickaxe, pickaxe_opts,
-                               orderfile, diff_filter);
-       diff_flush(DIFF_FORMAT_PATCH, '\n');
-}
-
-static const char diff_helper_usage[] =
-"git-diff-helper [-z] [-O<orderfile>] [-S<string>] [--pickaxe-all] [<path>...]";
-
-int main(int ac, const char **av) {
-       struct strbuf sb;
-       const char *garbage_flush_format;
-
-       strbuf_init(&sb);
-
-       while (1 < ac && av[1][0] == '-') {
-               if (av[1][1] == 'z')
-                       line_termination = inter_name_termination = 0;
-               else if (av[1][1] == 'S') {
-                       pickaxe = av[1] + 2;
-               }
-               else if (!strcmp(av[1], "--pickaxe-all"))
-                       pickaxe_opts = DIFF_PICKAXE_ALL;
-               else if (!strncmp(av[1], "--diff-filter=", 14))
-                       diff_filter = av[1] + 14;
-               else if (!strncmp(av[1], "-O", 2))
-                       orderfile = av[1] + 2;
-               else
-                       usage(diff_helper_usage);
-               ac--; av++;
-       }
-       garbage_flush_format = (line_termination == 0) ? "%s" : "%s\n";
-
-       /* the remaining parameters are paths patterns */
-
-       diff_setup(0);
-       while (1) {
-               unsigned old_mode, new_mode;
-               unsigned char old_sha1[20], new_sha1[20];
-               char old_path[PATH_MAX];
-               int status, score, two_paths;
-               char new_path[PATH_MAX];
-
-               int ch;
-               char *cp, *ep;
-
-               read_line(&sb, stdin, line_termination);
-               if (sb.eof)
-                       break;
-               switch (sb.buf[0]) {
-               case ':':
-                       /* parse the first part up to the status */
-                       cp = sb.buf + 1;
-                       old_mode = new_mode = 0;
-                       while ((ch = *cp) && ('0' <= ch && ch <= '7')) {
-                               old_mode = (old_mode << 3) | (ch - '0');
-                               cp++;
-                       }
-                       if (*cp++ != ' ')
-                               break;
-                       while ((ch = *cp) && ('0' <= ch && ch <= '7')) {
-                               new_mode = (new_mode << 3) | (ch - '0');
-                               cp++;
-                       }
-                       if (*cp++ != ' ')
-                               break;
-                       if (get_sha1_hex(cp, old_sha1))
-                               break;
-                       cp += 40;
-                       if (*cp++ != ' ')
-                               break;
-                       if (get_sha1_hex(cp, new_sha1))
-                               break;
-                       cp += 40;
-                       if (*cp++ != ' ')
-                               break;
-                       status = *cp++;
-                       if (!strchr("AMCRDU", status))
-                               break;
-                       two_paths = score = 0;
-                       if (status == DIFF_STATUS_RENAMED ||
-                           status == DIFF_STATUS_COPIED)
-                               two_paths = 1;
-
-                       /* pick up score if exists */
-                       if (sscanf(cp, "%d", &score) != 1)
-                               score = 0;
-                       cp = strchr(cp,
-                                   inter_name_termination);
-                       if (!cp)
-                               break;
-                       if (*cp++ != inter_name_termination)
-                               break;
-
-                       /* first pathname */
-                       if (!line_termination) {
-                               read_line(&sb, stdin, line_termination);
-                               if (sb.eof)
-                                       break;
-                               strcpy(old_path, sb.buf);
-                       }
-                       else if (!two_paths)
-                               strcpy(old_path, cp);
-                       else {
-                               ep = strchr(cp, inter_name_termination);
-                               if (!ep)
-                                       break;
-                               strncpy(old_path, cp, ep-cp);
-                               old_path[ep-cp] = 0;
-                               cp = ep + 1;
-                       }
-
-                       /* second pathname */
-                       if (!two_paths)
-                               strcpy(new_path, old_path);
-                       else {
-                               if (!line_termination) {
-                                       read_line(&sb, stdin,
-                                                 line_termination);
-                                       if (sb.eof)
-                                               break;
-                                       strcpy(new_path, sb.buf);
-                               }
-                               else
-                                       strcpy(new_path, cp);
-                       }
-                       diff_helper_input(old_mode, new_mode,
-                                         old_sha1, new_sha1,
-                                         old_path, status, score,
-                                         new_path);
-                       continue;
-               }
-               flush_them(ac, av);
-               printf(garbage_flush_format, sb.buf);
-       }
-       flush_them(ac, av);
-       return 0;
-}
diff --git a/diff.c b/diff.c
index d8d20c2fcb141124bf4c798eb054e5c1be451f68..3dc0ca0a0334b2ed5492d67d759c4bffad5cd404 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -1152,29 +1152,6 @@ void diff_addremove(int addremove, unsigned mode,
        diff_queue(&diff_queued_diff, one, two);
 }
 
-void diff_helper_input(unsigned old_mode,
-                      unsigned new_mode,
-                      const unsigned char *old_sha1,
-                      const unsigned char *new_sha1,
-                      const char *old_path,
-                      int status,
-                      int score,
-                      const char *new_path)
-{
-       struct diff_filespec *one, *two;
-       struct diff_filepair *dp;
-
-       one = alloc_filespec(old_path);
-       two = alloc_filespec(new_path);
-       if (old_mode)
-               fill_filespec(one, old_sha1, old_mode);
-       if (new_mode)
-               fill_filespec(two, new_sha1, new_mode);
-       dp = diff_queue(&diff_queued_diff, one, two);
-       dp->score = score * MAX_SCORE / 100;
-       dp->status = status;
-}
-
 void diff_change(unsigned old_mode, unsigned new_mode,
                 const unsigned char *old_sha1,
                 const unsigned char *new_sha1,
diff --git a/diff.h b/diff.h
index 3deb7fa4e8b6a572d5ab8d2c6a4da80478074244..96c2312d86feff0b3b9901501aefa9b6ab55ce13 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -19,15 +19,6 @@ extern void diff_change(unsigned mode1, unsigned mode2,
                             const unsigned char *sha2,
                             const char *base, const char *path);
 
-extern void diff_helper_input(unsigned mode1,
-                             unsigned mode2,
-                             const unsigned char *sha1,
-                             const unsigned char *sha2,
-                             const char *path1,
-                             int status,
-                             int score,
-                             const char *path2);
-
 extern void diff_unmerge(const char *path);
 
 extern int diff_scoreopt_parse(const char *opt);
index 91015d76fc5b63e0ffa68eb121bb514aa9a74f8f..f3b6330a9b4af0e68d9e402ab7d82e600c939ccc 100755 (executable)
@@ -50,13 +50,4 @@ test_expect_success \
     'validate git-diff-files -p output.' \
     'cmp -s current expected'
 
-test_expect_success \
-    'build same diff using git-diff-helper.' \
-    'git-diff-files -z | git-diff-helper -z >current'
-
-
-test_expect_success \
-    'validate git-diff-helper output.' \
-    'cmp -s current expected'
-
 test_done
index 5636f4f2cdcff671d4b43dc1253f2507aedfa7b0..684fd23a419a2449a1a656783b09e0566c56c916 100755 (executable)
@@ -40,38 +40,6 @@ test_expect_success \
     'validate output from rename/copy detection (#1)' \
     'compare_diff_raw current expected'
 
-# make sure diff-helper can grok it.
-mv expected diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-diff --git a/COPYING b/COPYING.2
-rename from COPYING
-rename to COPYING.2
---- a/COPYING
-+++ b/COPYING.2
-@@ -2 +2 @@
-- Note that the only valid version of the GPL as far as this project
-+ Note that the only valid version of the G.P.L as far as this project
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ HOWEVER, in order to allow a migration to G.P.Lv3 if that seems like
-@@ -12 +12 @@
--      This file is licensed under the GPL v2, or a later version
-+      This file is licensed under the G.P.L v2, or a later version
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#1)' \
-    'compare_diff_patch current expected'
-
 ################################################################
 
 test_expect_success \
@@ -94,36 +62,6 @@ test_expect_success \
     'validate output from rename/copy detection (#2)' \
     'compare_diff_raw current expected'
 
-# make sure diff-helper can grok it.
-mv expected diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING
---- a/COPYING
-+++ b/COPYING
-@@ -2 +2 @@
-- Note that the only valid version of the GPL as far as this project
-+ Note that the only valid version of the G.P.L as far as this project
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ HOWEVER, in order to allow a migration to G.P.Lv3 if that seems like
-@@ -12 +12 @@
--      This file is licensed under the GPL v2, or a later version
-+      This file is licensed under the G.P.L v2, or a later version
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#2)' \
-    'compare_diff_patch current expected'
-
 ################################################################
 
 # tree has COPYING and rezrov.  work tree has the same COPYING and
@@ -145,22 +83,4 @@ test_expect_success \
     'validate output from rename/copy detection (#3)' \
     'compare_diff_raw current expected'
 
-# make sure diff-helper can grok it.
-mv expected diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#3)' \
-    'compare_diff_patch current expected'
-
 test_done
index ea811529cc6ff21a33ebafdd1e331aee3f6ac388..2f2f8b121663a3647e88c308b541c6106f5d9039 100755 (executable)
@@ -44,38 +44,6 @@ test_expect_success \
     'validate output from rename/copy detection (#1)' \
     'compare_diff_raw_z current expected'
 
-# make sure diff-helper can grok it.
-mv current diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper -z <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-diff --git a/COPYING b/COPYING.2
-rename from COPYING
-rename to COPYING.2
---- a/COPYING
-+++ b/COPYING.2
-@@ -2 +2 @@
-- Note that the only valid version of the GPL as far as this project
-+ Note that the only valid version of the G.P.L as far as this project
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ HOWEVER, in order to allow a migration to G.P.Lv3 if that seems like
-@@ -12 +12 @@
--      This file is licensed under the GPL v2, or a later version
-+      This file is licensed under the G.P.L v2, or a later version
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#1)' \
-    'compare_diff_patch current expected'
-
 ################################################################
 
 test_expect_success \
@@ -101,36 +69,6 @@ test_expect_success \
     'validate output from rename/copy detection (#2)' \
     'compare_diff_raw_z current expected'
 
-# make sure diff-helper can grok it.
-mv current diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper -z <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING
---- a/COPYING
-+++ b/COPYING
-@@ -2 +2 @@
-- Note that the only valid version of the GPL as far as this project
-+ Note that the only valid version of the G.P.L as far as this project
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ HOWEVER, in order to allow a migration to G.P.Lv3 if that seems like
-@@ -12 +12 @@
--      This file is licensed under the GPL v2, or a later version
-+      This file is licensed under the G.P.L v2, or a later version
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#2)' \
-    'compare_diff_patch current expected'
-
 ################################################################
 
 # tree has COPYING and rezrov.  work tree has the same COPYING and
@@ -154,22 +92,4 @@ test_expect_success \
     'validate output from rename/copy detection (#3)' \
     'compare_diff_raw_z current expected'
 
-# make sure diff-helper can grok it.
-mv current diff-raw
-GIT_DIFF_OPTS=--unified=0 git-diff-helper -z <diff-raw >current
-cat >expected <<\EOF
-diff --git a/COPYING b/COPYING.1
-copy from COPYING
-copy to COPYING.1
---- a/COPYING
-+++ b/COPYING.1
-@@ -6 +6 @@
-- HOWEVER, in order to allow a migration to GPLv3 if that seems like
-+ However, in order to allow a migration to GPLv3 if that seems like
-EOF
-
-test_expect_success \
-    'validate output from diff-helper (#3)' \
-    'compare_diff_patch current expected'
-
 test_done