This series makes rebase --am honor the .gitattributes file for subsequent patches when a patch changes it. Changes from v1: * Add has_path_suffix in a separate commit. brian m. carlson (2): path: add a function to check for path suffix apply: reload .gitattributes after patching it apply.c | 7 +++++++ convert.c | 9 ++++++++- convert.h | 6 ++++++ path.c | 39 ++++++++++++++++++++++++++++++--------- path.h | 3 +++ t/t3400-rebase.sh | 23 +++++++++++++++++++++++ 6 files changed, 77 insertions(+), 10 deletions(-) Range-diff against v1: -: ---------- > 1: e865872fc3 :rebase-gitattributes -: ---------- > 2: 125fda966c path: add a function to check for path suffix 1: d7ea19aeef ! 3: f54af7e595 apply: reload .gitattributes after patching it @@ apply.c: static int apply_patch(struct apply_state *state, *listp = patch; listp = &patch->next; + -+ if (!flush_attributes && patch->new_name) { -+ char *dummy = strip_path_suffix(patch->new_name, GITATTRIBUTES_FILE); -+ /* The patch applied to a .gitattributes file. */ -+ if (dummy) -+ flush_attributes = 1; -+ free(dummy); -+ } ++ if (!flush_attributes && patch->new_name && ++ has_path_suffix(patch->new_name, GITATTRIBUTES_FILE)) ++ flush_attributes = 1; } else { if (state->apply_verbosity > verbosity_normal)