Subject: Re: Can't build first git commit

From: Fabio Aiuto <[email-masked]>
Date: Thu, 07 Mar 2019 21:07:15 +0100

Sorry for forgetting the cc!!!
Thank you so much for help, hope not to bore you all ;)
I think that I will go on studying git this way, and follow all the 
improvements that were made along his history. I think that
asymptosis too gave me a good link, related to that bash script
implmentation.
Thank you Jeff, now I'm trying to understand how could I show the
contents of the index in that version.

Fabio.

Il giorno gio, 07/03/2019 alle 14.41 -0500, Jeff King ha scritto:
> [+cc git@vger; let's keep this on the list; I'm not sure there's a
> lot
>  to be learned from fiddling with this old version, but if we're
> going
>  to do it, let's at least record our attempts for posterity]
> 
> On Thu, Mar 07, 2019 at 08:04:55PM +0100, Fabio Aiuto wrote:
> 
> > I made a directory "trial" and inside it I ran init-db (that's the
> > grand-father of git init) inside that directory. Then I created a
> > file 
> > this way:
> > 
> > echo 'helloooo!' >file.txt
> > 
> > then then executed update-cache file.txt (thinking that's the
> > ancestor
> > of git add), but that doesn't work and it returns with a
> > segmentation
> > fault, due to the nullity of the header. But in this first commit
> > how
> > do I add a file in the cache? What's the right way to build up a
> > repository from scratch with commit e83c5163316f?
> 
> Hmm. I tried that, too, and got a segfault. Then I tried it again a
> few
> minutes later, and it worked.
> 
> One thing that seems to provoke it consistently is having a zero-
> length
> index file (because that causes mmap to return NULL, and the code
> does
> not check for that case). Try this:
> 
>   # This works.
>   init-db
>   echo content >file
>   update-cache file
> 
>   # This segfaults
>   >.dircache/index
>   update-cache file
> 
>   # And this works again
>   rm .dircache/index
>   update-cache file
> 
> I'm not sure why it would ever fail without that explicit empty-file
> write. Perhaps there's some code path that writes out an empty index
> file, and we inadvertently triggered it.
> 
> If you're going to play with such an antique commit, you have to
> expect
> that things won't necessarily work, and be ready to poke around in
> the
> debugger.
> 
> -Peff