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

Re: [BUG?]: unpack-file behavior for blobs corresponding to symlinks

From
MMMikael Magnusson <mikachu@gmail.com>
Date
Sep 19, 2008, 14:51 UTC
Message-ID
<237967ef0809190751k38defaabk9efc74711f7c63c4@mail.gmail.com>
In-Reply-To
<51419b2c0809190731j5a77b8ccmba2feecb9c44cc1c@mail.gmail.com>
2008/9/19 Elijah Newren <newren@gmail.com>:
Show 27 quoted lines
> Hi,
>
> unpack-file doesn't create symlinks as I'd expect.  I'm not sure if
> this is a bug in unpack-file, or in my expectations.
>
> To reproduce:
>
> $ git init
> Initialized empty Git repository in /home/newren/testing/.git/
> $ echo bla > bar
> $ ln -s bar foo
> $ git add bar foo
> $ git ls-files -s foo
> 120000 ba0e162e1c47469e3fe4b393a8bf8c569f302116 0       foo
> $ git unpack-file ba0e162e1c47469e3fe4b393a8bf8c569f302116
> .merge_file_J1hTaV
> $ ls -l foo .merge_file_J1hTaV
> lrwxrwxrwx  1 enewren enewren 3 Sep 19 08:22 foo -> bar
> -rw-------  1 enewren enewren 3 Sep 19 08:23 .merge_file_J1hTaV
> $ echo $(cat .merge_file_J1hTaV)
> bar
>
> Why is .merge_file_J1hTaV a regular file instead of a symlink?  Is
> there an alternative command I can use that would create a symlink to
> bar given the information I have from the git ls-files command (and
> which also works for creating normal files and other special file
> types)?
This is not a bug. The type of a file is in the tree, not the blob, see:
% echo -n foo > file
% ln -s foo symlink
% git add file symlink
% git commit
Created initial commit 31ad9b0 on master: file and symlink
 2 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 file
 create mode 120000 symlink
% git ls-tree HEAD
100644 blob 19102815663d23f8b75a47e7a01965dcdc96468c	file
120000 blob 19102815663d23f8b75a47e7a01965dcdc96468c	symlink
-- 
Mikael Magnusson
Previous: Elijah NewrenNext: Elijah Newren
Message 2 of 4 in “[BUG?]: unpack-file behavior for blobs corresponding to symlinks”
  1. Elijah NewrenSep 19, 2008
  2. Mikael MagnussonSep 19, 2008
  3. Elijah NewrenSep 19, 2008
  4. Junio C HamanoSep 19, 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.