git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 3/3] archive: do not read .gitattributes in working directory

From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
Date
Apr 14, 2009, 21:15 UTC
Message-ID
<49E4FCF8.3050207@lsrfire.ath.cx>
In-Reply-To
<7vk55nakge.fsf@gitster.siamese.dyndns.org>
Junio C Hamano schrieb:
Show 30 quoted lines
> René Scharfe <rene.scharfe@lsrfire.ath.cx> 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();
Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 15 in “support "in-tree attributes" for git-archive”
  1. 0/3 support "in-tree attributes" for git-archiveNguyễn Thái Ngọc Duy, Apr 9, 2009
  2. 1/3 archive: add shortcuts for --format and --prefixNguyễn Thái Ngọc Duy, Apr 9, 2009
  3. 2/3 attr: add GIT_ATTR_INDEX "direction"Nguyễn Thái Ngọc Duy, Apr 9, 2009
  4. 3/3 archive: do not read .gitattributes in working directoryNguyễn Thái Ngọc Duy, Apr 9, 2009
  5. Junio C HamanoApr 9, 2009
  6. Nguyen Thai Ngoc DuyApr 9, 2009
  7. Junio C HamanoApr 11, 2009
  8. René ScharfeApr 13, 2009
  9. René ScharfeApr 13, 2009
  10. René ScharfeApr 13, 2009
  11. Junio C HamanoApr 14, 2009
  12. René ScharfeApr 14, 2009
  13. Junio C HamanoApr 16, 2009
  14. Junio C HamanoApr 9, 2009
  15. Nguyen Thai Ngoc DuyApr 9, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.