Re: Unable to index file
- From
- Ramon Tayag <ramon.tayag@gmail.com>
- Date
- Dec 12, 2008, 20:27 UTC
- Message-ID
- <f25d5ad20812121227o77cf2bw34e6bc15d9801215@mail.gmail.com>
- In-Reply-To
- <alpine.LFD.2.00.0812120956050.3340@localhost.localdomain>
Oh thank you for your very detailed explanation. I was bothering people on #rubyonrails and #git but got no answers.
I'm on Ubuntu 8.10. The files I'm working on live on an NTFS drive (my "storage" drive; yes, I still have to boot into Windows). If it being on NTFS makes a difference I'll try this on ext3 and let you know what happens :)
Thanks, Ramon Tayag
On Sat, Dec 13, 2008 at 2:07 AM, Linus Torvalds <torvalds@linux-foundation.org> wrote:
Show 51 quoted lines
>
>
> On Fri, 12 Dec 2008, Ramon Tayag wrote:
>>
>> I've come across a problem that I don't believe lies in Rails. You
>> needn't be familiar, I think, with Rails to see what's wrong.
>>
>> I can't seem to add the files that are in
>> http://dev.rubyonrails.org/archive/rails_edge.zip
>>
>> 1) Unpack the zip
>> 2) Initialize a git repo inside the folder that was unpacked
>> 3) git add .
>>
>> See the errors.. :o http://pastie.org/337571
>
> What platform/filesystem is this?
>
> Git is rather particular about symlinks, and it looks like your platform
> does something odd, and that makes git unhappy about your symlink.
>
> In particular:
>
> ls -l vendor/rails/actionpack/test/fixtures/layout_tests/layouts/
> ...
> lrwxrwxrwx 1 root root 48 2008-12-12 18:22 symlinked -> ../../symlink_parent
>
> notice how the symlink content is "../../symlink_parent", but then take a
> look at the _size_ of the symlink: 48 bytes.
>
> Git expects the lstat() information to match the return from readlink(),
> and it doesn't.
>
> For exact details, see "index_path()" in sha1_file.c:
>
> case S_IFLNK:
> len = xsize_t(st->st_size);
> target = xmalloc(len + 1);
> if (readlink(path, target, len + 1) != st->st_size) {
> char *errstr = strerror(errno);
>
> ie we consider it an error if we get less than st_size characters back
> from readlink().
>
> Now, admittedly git is probably being really annoyingly anal about this
> all, and we probably should loosen the restrictions on it a bit, but I'd
> like to know why it happens. I cannot recall this having been reported
> before, so it's some specific filesystem or OS that causes this, I think.
>
> Linus
>