On 11/07/2019 17:08, Thomas Gummerer wrote:
> Thanks Junio for the comment on the previous round [1]. This round
> reanmes the struct we're using in apply.c to 'struct gitdiff_data',
> and updates the commit message of 7/14 to reflect the new name of the
> renamed function.
>
> [1]: https://public-inbox.org/git/20190708163315.29912-1-t.gumme...@gmail.com/
>
> Thomas Gummerer (14):
> apply: replace marc.info link with public-inbox
> apply: only pass required data to skip_tree_prefix
> apply: only pass required data to git_header_name
> apply: only pass required data to check_header_line
> apply: only pass required data to find_name_*
> apply: only pass required data to gitdiff_* functions
> apply: make parse_git_diff_header public
> range-diff: fix function parameter indentation
> range-diff: split lines manually
> range-diff: don't remove funcname from inner diff
> range-diff: suppress line count in outer diff
> range-diff: add section header instead of diff header
> range-diff: add filename to inner diff
> range-diff: add headers to the outer hunk header
>
> apply.c | 186 ++++++++++++++++++-----------------------
> apply.h | 48 +++++++++++
> diff.c | 5 +-
> diff.h | 1 +
> range-diff.c | 124 +++++++++++++++++++--------
> t/t3206-range-diff.sh | 124 ++++++++++++++++++++++-----
> t/t3206/history.export | 84 ++++++++++++++++++-
> 7 files changed, 409 insertions(+), 163 deletions(-)
Yes, the patch I just sent related to the previous version of
this series. However, I believe it still applies to this version
(looking at the range-diff below).
ATB,
Ramsay Jones
> Range-diff against v3:
> 1: ef2245edda = 1: ef2245edda apply: replace marc.info link with
> public-inbox
> 2: 94578fa45c = 2: 94578fa45c apply: only pass required data to
> skip_tree_prefix
> 3: 988269a68e = 3: 988269a68e apply: only pass required data to
> git_header_name
> 4: a2c1ef3f5f = 4: a2c1ef3f5f apply: only pass required data to
> check_header_line
> 5: 0f4cfe21cb = 5: 0f4cfe21cb apply: only pass required data to
> find_name_*
> 6: 07a271518d ! 6: 42665e5295 apply: only pass required data to gitdiff_*
> functions
> @@ -28,7 +28,7 @@
> #include "rerere.h"
> #include "apply.h"
>
> -+struct parse_git_header_state {
> ++struct gitdiff_data {
> + struct strbuf *root;
> + int linenr;
> + int p_value;
> @@ -42,7 +42,7 @@
> }
>
> -static int gitdiff_hdrend(struct apply_state *state,
> -+static int gitdiff_hdrend(struct parse_git_header_state *state,
> ++static int gitdiff_hdrend(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -51,7 +51,7 @@
> #define DIFF_NEW_NAME 1
>
> -static int gitdiff_verify_name(struct apply_state *state,
> -+static int gitdiff_verify_name(struct parse_git_header_state *state,
> ++static int gitdiff_verify_name(struct gitdiff_data *state,
> const char *line,
> int isnull,
> char **name,
> @@ -77,7 +77,7 @@
> }
>
> -static int gitdiff_oldname(struct apply_state *state,
> -+static int gitdiff_oldname(struct parse_git_header_state *state,
> ++static int gitdiff_oldname(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -86,7 +86,7 @@
> }
>
> -static int gitdiff_newname(struct apply_state *state,
> -+static int gitdiff_newname(struct parse_git_header_state *state,
> ++static int gitdiff_newname(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -95,7 +95,7 @@
> }
>
> -static int gitdiff_oldmode(struct apply_state *state,
> -+static int gitdiff_oldmode(struct parse_git_header_state *state,
> ++static int gitdiff_oldmode(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -103,7 +103,7 @@
> }
>
> -static int gitdiff_newmode(struct apply_state *state,
> -+static int gitdiff_newmode(struct parse_git_header_state *state,
> ++static int gitdiff_newmode(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -111,7 +111,7 @@
> }
>
> -static int gitdiff_delete(struct apply_state *state,
> -+static int gitdiff_delete(struct parse_git_header_state *state,
> ++static int gitdiff_delete(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -120,7 +120,7 @@
> }
>
> -static int gitdiff_newfile(struct apply_state *state,
> -+static int gitdiff_newfile(struct parse_git_header_state *state,
> ++static int gitdiff_newfile(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -129,7 +129,7 @@
> }
>
> -static int gitdiff_copysrc(struct apply_state *state,
> -+static int gitdiff_copysrc(struct parse_git_header_state *state,
> ++static int gitdiff_copysrc(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -141,7 +141,7 @@
> }
>
> -static int gitdiff_copydst(struct apply_state *state,
> -+static int gitdiff_copydst(struct parse_git_header_state *state,
> ++static int gitdiff_copydst(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -153,7 +153,7 @@
> }
>
> -static int gitdiff_renamesrc(struct apply_state *state,
> -+static int gitdiff_renamesrc(struct parse_git_header_state *state,
> ++static int gitdiff_renamesrc(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -165,7 +165,7 @@
> }
>
> -static int gitdiff_renamedst(struct apply_state *state,
> -+static int gitdiff_renamedst(struct parse_git_header_state *state,
> ++static int gitdiff_renamedst(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -177,7 +177,7 @@
> }
>
> -static int gitdiff_similarity(struct apply_state *state,
> -+static int gitdiff_similarity(struct parse_git_header_state *state,
> ++static int gitdiff_similarity(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -186,7 +186,7 @@
> }
>
> -static int gitdiff_dissimilarity(struct apply_state *state,
> -+static int gitdiff_dissimilarity(struct parse_git_header_state *state,
> ++static int gitdiff_dissimilarity(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -195,7 +195,7 @@
> }
>
> -static int gitdiff_index(struct apply_state *state,
> -+static int gitdiff_index(struct parse_git_header_state *state,
> ++static int gitdiff_index(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -204,7 +204,7 @@
> * into the next diff. Tell the parser to break out.
> */
> -static int gitdiff_unrecognized(struct apply_state *state,
> -+static int gitdiff_unrecognized(struct parse_git_header_state *state,
> ++static int gitdiff_unrecognized(struct gitdiff_data *state,
> const char *line,
> struct patch *patch)
> {
> @@ -212,7 +212,7 @@
> struct patch *patch)
> {
> unsigned long offset;
> -+ struct parse_git_header_state parse_hdr_state;
> ++ struct gitdiff_data parse_hdr_state;
>
> /* A git diff has explicit new/delete information, so we don't
> guess */
> patch->is_new = 0;
> @@ -228,7 +228,7 @@
> static const struct opentry {
> const char *str;
> - int (*fn)(struct apply_state *, const char *,
> struct patch *);
> -+ int (*fn)(struct parse_git_header_state *,
> const char *, struct patch *);
> ++ int (*fn)(struct gitdiff_data *, const char *,
> struct patch *);
> } optable[] = {
> { "@@ -", gitdiff_hdrend },
> { "--- ", gitdiff_oldname },
> 7: 9cb6732a5f ! 7: 3068fda8a9 apply: make parse_git_header public
> @@ -1,9 +1,12 @@
> Author: Thomas Gummerer <t.gumme...@gmail.com>
>
> - apply: make parse_git_header public
> + apply: make parse_git_diff_header public
>
> - Make parse_git_header a "public" function in apply.h, so we can
> re-use
> - it in range-diff in a subsequent commit.
> + Make 'parse_git_header()' (renamed to 'parse_git_diff_header()') a
> + "public" function in apply.h, so we can re-use it in range-diff in a
> + subsequent commit. We're renaming the function to make it clearer in
> + other parts of the codebase that we're talking about a diff header
> and
> + not just any header.
>
> Signed-off-by: Thomas Gummerer <t.gumme...@gmail.com>
>
> @@ -70,7 +73,7 @@
> + struct patch *patch)
> {
> unsigned long offset;
> - struct parse_git_header_state parse_hdr_state;
> + struct gitdiff_data parse_hdr_state;
> @@
> * or removing or adding empty files), so we get
> * the default name from the header.
> @@ -100,7 +103,7 @@
> + for (offset = len ; size > 0 ; offset += len, size -= len, line
> += len, (*linenr)++) {
> static const struct opentry {
> const char *str;
> - int (*fn)(struct parse_git_header_state *,
> const char *, struct patch *);
> + int (*fn)(struct gitdiff_data *, const char *,
> struct patch *);
> @@
> res = p->fn(&parse_hdr_state, line + oplen,
> patch);
> if (res < 0)
> 8: 76a11ce995 = 8: 781d054cab range-diff: fix function parameter
> indentation
> 9: 6f70e7faa6 = 9: 68a2953310 range-diff: split lines manually
> 10: 6618cdff2c = 10: 8ae95d053b range-diff: don't remove funcname from
> inner diff
> 11: 2667df4fa5 = 11: e572510c52 range-diff: suppress line count in outer
> diff
> 12: 47cd8c6733 = 12: 45605db760 range-diff: add section header instead of
> diff header
> 13: f67fd5dd9a = 13: 89a27fbeaa range-diff: add filename to inner diff
> 14: 812893a5dc = 14: 8bee2c525f range-diff: add headers to the outer hunk
> header
>