]> git.ipfire.org Git - thirdparty/git.git/commit
am: reload .gitattributes after patching it
authorbrian m. carlson <sandals@crustytoothpaste.net>
Mon, 2 Sep 2019 22:39:44 +0000 (22:39 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Sep 2019 22:16:18 +0000 (15:16 -0700)
commit2c65d90f7579a0e2a6460eebce44795587e87043
tree6b51679f6aaf76f1dd2a3eda6d2bdc6ef75928bb
parentce17feb1b3ecfb0344af9b9111a4b4d313d51d7a
am: reload .gitattributes after patching it

When applying multiple patches with git am, or when rebasing using the
am backend, it's possible that one of our patches has updated a
gitattributes file. Currently, we cache this information, so if a
file in a subsequent patch has attributes applied, the file will be
written out with the attributes in place as of the time we started the
rebase or am operation, not with the attributes applied by the previous
patch. This problem does not occur when using the -m or -i flags to
rebase.

To ensure we write the correct data into the working tree, expire the
cache after each patch that touches a path ending in ".gitattributes".
Since we load these attributes in multiple separate files, we must
expire them accordingly.

Verify that both the am and rebase code paths work correctly, including
the conflict marker size with am -3.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
apply.c
convert.c
convert.h
ll-merge.c
ll-merge.h
t/t3400-rebase.sh
t/t4150-am.sh