Git development
 help / color / mirror / Atom feed
* [BUG?]: unpack-file behavior for blobs corresponding to symlinks
@ 2008-09-19 14:31 Elijah Newren
  2008-09-19 14:51 ` Mikael Magnusson
  0 siblings, 1 reply; 4+ messages in thread
From: Elijah Newren @ 2008-09-19 14:31 UTC (permalink / raw)
  To: Git Mailing List

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)?

Thanks,
Elijah

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?]: unpack-file behavior for blobs corresponding to symlinks
  2008-09-19 14:31 [BUG?]: unpack-file behavior for blobs corresponding to symlinks Elijah Newren
@ 2008-09-19 14:51 ` Mikael Magnusson
  2008-09-19 14:55   ` Elijah Newren
  0 siblings, 1 reply; 4+ messages in thread
From: Mikael Magnusson @ 2008-09-19 14:51 UTC (permalink / raw)
  To: Elijah Newren; +Cc: Git Mailing List

2008/9/19 Elijah Newren <newren@gmail.com>:
> 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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?]: unpack-file behavior for blobs corresponding to symlinks
  2008-09-19 14:51 ` Mikael Magnusson
@ 2008-09-19 14:55   ` Elijah Newren
  2008-09-19 15:50     ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: Elijah Newren @ 2008-09-19 14:55 UTC (permalink / raw)
  To: Mikael Magnusson; +Cc: Git Mailing List

On Fri, Sep 19, 2008 at 8:51 AM, Mikael Magnusson <mikachu@gmail.com> wrote:
> 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

Good to know.  Given the mode (100644 or 120000) and the sha1sum, is
there a git command that will create-my-file for me, or do I need to
just use git unpack-file and add my own extra logic on top?

Thanks,
Elijah

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG?]: unpack-file behavior for blobs corresponding to symlinks
  2008-09-19 14:55   ` Elijah Newren
@ 2008-09-19 15:50     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2008-09-19 15:50 UTC (permalink / raw)
  To: Elijah Newren; +Cc: Mikael Magnusson, Git Mailing List

"Elijah Newren" <newren@gmail.com> writes:

> On Fri, Sep 19, 2008 at 8:51 AM, Mikael Magnusson <mikachu@gmail.com> wrote:
>> 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
>
> Good to know.  Given the mode (100644 or 120000) and the sha1sum, is
> there a git command that will create-my-file for me,...

        git checkout -- that-path      ;# from the index
        git checkout commit that-path  ;# from the commit/tree

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-09-19 15:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-19 14:31 [BUG?]: unpack-file behavior for blobs corresponding to symlinks Elijah Newren
2008-09-19 14:51 ` Mikael Magnusson
2008-09-19 14:55   ` Elijah Newren
2008-09-19 15:50     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox