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

Re: git-archive and unwanted .gitattributes

From
Jakub Narebski <jnareb@gmail.com>
Date
Jun 7, 2008, 15:47 UTC
Message-ID
<m33anpxn63.fsf@localhost.localdomain>
In-Reply-To
<fcaeb9bf0806070821r5ba650c2x1fef7947fc4a2de5@mail.gmail.com>
"Nguyen Thai Ngoc Duy" <pclouds@gmail.com> writes:
> Currently attr.c will read .gitattributes on disk no matter there is a
> real worktree or not. 

Currently .gitattributes are read _only_ from the work tree. There isn't even infrastructure to read .gitattributes for commit (from a tree); git-check-attr, and I guess also internal git API, deals only with in-tree .gitattribute file.

Show 14 quoted lines
> This can lead to strange behavior. For example when I do
> 
> mkdir a && cd a
> git init
> echo '$Format:%s$' > a
> git add a && git commit -m initial
> cd ..
> echo 'a export-subst' > .gitattributes # let's assume this is an accident.
> git --git-dir=a/.git archive --format=tar HEAD|tar xO a
> 
> I expect it to show '$Format:%s$', not "initial". git-archive should
> not bother reading that .gitattributes. I thought an
> is_inside_work_tree() check would be enough. Unfortunately, setting
> --git-dir will automatically set worktree too. Any ideas?
And it doesn't work at all for bare repositories.

I guess that might have been caused by the fact, that .gitattributes are similar to .gitignore file; but in this they are different. Of course there is chicken-and-egg problem with attributes affecting checkout...

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Nguyen Thai Ngoc DuyNext: Nguyen Thai Ngoc Duy
Message 2 of 8 in “git-archive and unwanted .gitattributes”
  1. Nguyen Thai Ngoc DuyJun 7, 2008
  2. Jakub NarebskiJun 7, 2008
  3. Nguyen Thai Ngoc DuyJun 7, 2008
  4. René ScharfeJun 8, 2008
  5. fix attribute handling in bare repositoriesRené Scharfe, Jun 8, 2008
  6. Junio C HamanoJun 8, 2008
  7. René ScharfeJun 8, 2008
  8. Nguyen Thai Ngoc DuyJun 9, 2008

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.