Junio C Hamano schrieb: > René Scharfe <rene.scharfe@xxxxxxxxxxxxxx> writes: > >> René Scharfe schrieb: >>>> I >>>> think it makes sense to create a separate script for the new tests and >>>> eventually move the existing archive attribute tests there. >>> Something like this? >> I forgot to add tests against bare repositories. Otherwise I'd noticed >> earlier that read_attr() is only called for non-bare repositories >> currently, i.e. your patches won't allow reading of .gitattribute files >> from the tree in bare repos. > > Curious. > > Shouldn't the call chain look like: > > write_archive() > ->write_archive_entries() > ->unpack_trees() to read the tree into the in-core index > ->git_attr_set_direction() > ->read_tree_recursive() > ->write_archive_entry() > ->git_checkattr() > > Ah, bootstrap_attr_stack() and prepare_attr_stack() still assume that you > won't be doing any per-level attributes in a bare repository because the > concept of attributes is inherently tied to having a work tree from their > point of view. > > How about this "mostly re-indent with four line removal" patch? Plus the following (on top of Duy's GIT_ATTR_INDEX patch)? diff --git a/attr.c b/attr.c index f5917de..cce561b 100644 --- a/attr.c +++ b/attr.c @@ -672,6 +672,8 @@ int git_checkattr(const char *path, int num, struct git_attr_check *check) void git_attr_set_direction(enum git_attr_direction new, struct index_state *istate) { enum git_attr_direction old = direction; + if (is_bare_repository()) + new = GIT_ATTR_INDEX; direction = new; if (new != old) drop_attr_stack(); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html