]> granicus.if.org Git - git/commitdiff
Revert "Merge branch 'bc/reread-attributes-during-rebase' into next"
authorJunio C Hamano <gitster@pobox.com>
Mon, 26 Aug 2019 17:35:42 +0000 (10:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Aug 2019 17:35:42 +0000 (10:35 -0700)
This reverts commit 14aaf533d64c84894b914766b728439c362bb837, reversing
changes made to de88e8e58ae18d5c9a49814d212c813db4604cf5, to replace
it with an updated version.

apply.c
convert.c
convert.h
path.c
path.h
t/t3400-rebase.sh

diff --git a/apply.c b/apply.c
index d57bc635e43bd2149a7ab6e155905a00c3d27002..cde95369bb3f3a9c763108fd91e1e48e0e455e29 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -4643,7 +4643,6 @@ static int apply_patch(struct apply_state *state,
        struct patch *list = NULL, **listp = &list;
        int skipped_patch = 0;
        int res = 0;
-       int flush_attributes = 0;
 
        state->patch_input_file = filename;
        if (read_patch_file(&buf, fd) < 0)
@@ -4671,10 +4670,6 @@ static int apply_patch(struct apply_state *state,
                        patch_stats(state, patch);
                        *listp = patch;
                        listp = &patch->next;
-
-                       if ((patch->new_name && ends_with_path_components(patch->new_name, GITATTRIBUTES_FILE)) ||
-                           (patch->old_name && ends_with_path_components(patch->old_name, GITATTRIBUTES_FILE)))
-                               flush_attributes = 1;
                }
                else {
                        if (state->apply_verbosity > verbosity_normal)
@@ -4751,8 +4746,6 @@ static int apply_patch(struct apply_state *state,
        if (state->summary && state->apply_verbosity > verbosity_silent)
                summary_patch_list(list);
 
-       if (flush_attributes)
-               reset_parsed_attributes();
 end:
        free_patch_list(list);
        strbuf_release(&buf);
index 030e9b81b9604362cdb6fc41491ffec9674e0ccc..94ff8376492257782a1af5b3d2851ee8724c2edd 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -1293,11 +1293,10 @@ struct conv_attrs {
        const char *working_tree_encoding; /* Supported encoding or default encoding if NULL */
 };
 
-static struct attr_check *check;
-
 static void convert_attrs(const struct index_state *istate,
                          struct conv_attrs *ca, const char *path)
 {
+       static struct attr_check *check;
        struct attr_check_item *ccheck = NULL;
 
        if (!check) {
@@ -1340,12 +1339,6 @@ static void convert_attrs(const struct index_state *istate,
                ca->crlf_action = CRLF_AUTO_INPUT;
 }
 
-void reset_parsed_attributes(void)
-{
-       attr_check_free(check);
-       check = NULL;
-}
-
 int would_convert_to_git_filter_fd(const struct index_state *istate, const char *path)
 {
        struct conv_attrs ca;
index 3710969d43d6a16c6eab2e8302f962aa466ccd9f..831559f10d4442b35a43c642b0fd6c203d996f3c 100644 (file)
--- a/convert.h
+++ b/convert.h
@@ -94,12 +94,6 @@ void convert_to_git_filter_fd(const struct index_state *istate,
 int would_convert_to_git_filter_fd(const struct index_state *istate,
                                   const char *path);
 
-/*
- * Reset the internal list of attributes used by convert_to_git and
- * convert_to_working_tree.
- */
-void reset_parsed_attributes(void);
-
 /*****************************************************************
  *
  * Streaming conversion support
diff --git a/path.c b/path.c
index e3da1f3c4e2c7ed077c1ed3a98103b178045a45a..25e97b8c3f76ce9246d8d985adba9777acd5f43c 100644 (file)
--- a/path.c
+++ b/path.c
@@ -1221,52 +1221,31 @@ static inline int chomp_trailing_dir_sep(const char *path, int len)
 }
 
 /*
- * If path ends with suffix (complete path components), returns the offset of
- * the last character in the path before the suffix (sans trailing directory
- * separators), and -1 otherwise.
+ * If path ends with suffix (complete path components), returns the
+ * part before suffix (sans trailing directory separators).
+ * Otherwise returns NULL.
  */
-static ssize_t stripped_path_suffix_offset(const char *path, const char *suffix)
+char *strip_path_suffix(const char *path, const char *suffix)
 {
        int path_len = strlen(path), suffix_len = strlen(suffix);
 
        while (suffix_len) {
                if (!path_len)
-                       return -1;
+                       return NULL;
 
                if (is_dir_sep(path[path_len - 1])) {
                        if (!is_dir_sep(suffix[suffix_len - 1]))
-                               return -1;
+                               return NULL;
                        path_len = chomp_trailing_dir_sep(path, path_len);
                        suffix_len = chomp_trailing_dir_sep(suffix, suffix_len);
                }
                else if (path[--path_len] != suffix[--suffix_len])
-                       return -1;
+                       return NULL;
        }
 
        if (path_len && !is_dir_sep(path[path_len - 1]))
-               return -1;
-       return chomp_trailing_dir_sep(path, path_len);
-}
-
-/*
- * Returns true if the path ends with components, considering only complete path
- * components, and false otherwise.
- */
-int ends_with_path_components(const char *path, const char *components)
-{
-       return stripped_path_suffix_offset(path, components) != -1;
-}
-
-/*
- * If path ends with suffix (complete path components), returns the
- * part before suffix (sans trailing directory separators).
- * Otherwise returns NULL.
- */
-char *strip_path_suffix(const char *path, const char *suffix)
-{
-       ssize_t offset = stripped_path_suffix_offset(path, suffix);
-
-       return offset == -1 ? NULL : xstrndup(path, offset);
+               return NULL;
+       return xstrndup(path, chomp_trailing_dir_sep(path, path_len));
 }
 
 int daemon_avoid_alias(const char *p)
diff --git a/path.h b/path.h
index 14d6dcad161e3720629ed60d1ec7e4a4b3e34fdd..2ba6ca58c83487b5e02a71ce7c2f0d556c59aebe 100644 (file)
--- a/path.h
+++ b/path.h
@@ -193,7 +193,4 @@ const char *git_path_merge_head(struct repository *r);
 const char *git_path_fetch_head(struct repository *r);
 const char *git_path_shallow(struct repository *r);
 
-
-int ends_with_path_components(const char *path, const char *components);
-
 #endif /* PATH_H */
index 23469cc78937eeec8aabc26c158680c2ca60dd7d..80b23fd3269c7828660469207728f67087c82467 100755 (executable)
@@ -301,42 +301,6 @@ test_expect_success 'rebase --am and --show-current-patch' '
        )
 '
 
-test_expect_success 'rebase --am and .gitattributes' '
-       test_create_repo attributes &&
-       (
-               cd attributes &&
-               test_commit init &&
-               git config filter.test.clean "sed -e '\''s/smudged/clean/g'\''" &&
-               git config filter.test.smudge "sed -e '\''s/clean/smudged/g'\''" &&
-
-               test_commit second &&
-               git checkout -b test HEAD^ &&
-
-               echo "*.txt filter=test" >.gitattributes &&
-               git add .gitattributes &&
-               test_commit third &&
-
-               echo "This text is smudged." >a.txt &&
-               git add a.txt &&
-               test_commit fourth &&
-
-               git checkout -b removal HEAD^ &&
-               git rm .gitattributes &&
-               git add -u &&
-               test_commit fifth &&
-               git cherry-pick test &&
-
-               git checkout test &&
-               git rebase master &&
-               grep "smudged" a.txt &&
-
-               git checkout removal &&
-               git reset --hard &&
-               git rebase master &&
-               grep "clean" a.txt
-       )
-'
-
 test_expect_success 'rebase--merge.sh and --show-current-patch' '
        test_create_repo conflict-merge &&
        (