Skip to content

Commit

Permalink
Revert "Merge branch 'bc/reread-attributes-during-rebase' into next"
Browse files Browse the repository at this point in the history
This reverts commit 14aaf53, reversing
changes made to de88e8e, to replace
it with an updated version.
  • Loading branch information
gitster committed Aug 26, 2019
1 parent 0a32903 commit 0b9fbb3
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 90 deletions.
7 changes: 0 additions & 7 deletions apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
Expand Down
9 changes: 1 addition & 8 deletions convert.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand Down
6 changes: 0 additions & 6 deletions convert.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
39 changes: 9 additions & 30 deletions path.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 0 additions & 3 deletions path.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
36 changes: 0 additions & 36 deletions t/t3400-rebase.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 &&
(
Expand Down

0 comments on commit 0b9fbb3

Please sign in to comment.