On Wed, Mar 7, 2018 at 12:30 PM, <lars.schneider@xxxxxxxxxxxx> wrote: > [...] > Add an attribute to tell Git what encoding the user has defined for a > given file. If the content is added to the index, then Git converts the > content to a canonical UTF-8 representation. On checkout Git will > reverse the conversion. > > Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx> > --- > Documentation/gitattributes.txt | 80 +++++++++++++++++++++++ > diff --git a/convert.c b/convert.c > @@ -265,6 +266,78 @@ static int will_convert_lf_to_crlf(size_t len, struct text_stat *stats, > +static const char *default_encoding = "UTF-8"; > @@ -978,6 +1051,21 @@ static int ident_to_worktree(const char *path, const char *src, size_t len, > +static const char *git_path_check_encoding(struct attr_check_item *check) > +{ > + const char *value = check->value; > + > + if (ATTR_TRUE(value) || ATTR_FALSE(value) || ATTR_UNSET(value) || > + !strlen(value)) > + return NULL; > + > + /* Don't encode to the default encoding */ > + if (!strcasecmp(value, default_encoding)) > + return NULL; As of v10, the rest of the code accepts encoding names "UTF-xx" and "UTFxx" (case insensitive), however, this check recognizes only "UTF-8" (case insensitive). For consistency, one would expect this also to recognize "UTF8" (case insensitive). > + > + return value; > +}