* [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