threads / discuss / 4365

What's in git.git (part #2)

Subject: What's in git.git (part #2)

## tl;dr

10 messages between Jun 1, 2006 and Jun 6, 2006.

replies: 9people: 6as markdown or json

Junio C Hamano· Jun 1, 2006, 09:19 UTC · lore

It's been a while since the last feature release, and I think with the recent "many things built-in" (including the busybox style integration) we are nearing a good time to do the next feature release 1.4.0.

Before doing a 1.4.0-rc1, I would like to see the following topics in the "next" branch graduate to "master":

 - re-add missing flags to format-patch.  I have resurrected
   "--signoff"; if people care about something else we dropped
   when we went built-in, please raise hand and submit patches.
 - tree-parser updates from Linus seems to be fine in the sense
   I haven't seen breakage from it; I'll push it out to "master"
   before the end of the week.  I'd like to do another round of
   update to introduce a unified tree/index/directory walker, so
   settling this down is sort of urgent.
 - http-fetch fixes from Nick, which looked obviously correct.
   I would appreciate test reports from people who saw breakages
   on this one.
 - reflog from Shawn.  Do people find this useful?  I've enabled
   reflog on "next" branch in my development repository to see
   how useful it would be for myself a few days ago, and also in
   a linux-2.6 repository I use for testing (I do not hack on
   kernel myself).  
Other topics in "next" includes:
 - read/write-tree --prefix.  This is remnant of now-vetoed
   subproject support using "bind commit".  I kept both of them
   because they could be useful independent of "bind commit",
   but I do not know how much.  I think read-tree --prefix might
   probably be more useful than write-tree --prefix, since the
   latter can be writing out the whole tree and run rev-parse
   $tree:/path/name to extract that part, but the former does
   not have an easy equivalent (you could pipe ls-tree output to
   sed and pipe that to update-cache --index-info, but that is
   crumsy). 
   I'd like to do "gitlink" based subproject support but most
   likely that needs to come after tree/index/directory walker.
 - fetch-pack client-side hack.  When your repository has more
   roots than the repository you are fetching from, the common
   commit discovery exchange between fetch-pack and upload-pack
   ends up traversing down the ancestry chain of the history the
   other end do not have.  The hack in the "next" branch is to
   give up the common commit discovery early on the client side,
   which Ralf Baechle who originally reported the problem says
   to fix the problem (<20060526154239.GA20839@linux-mips.org>);
   but the proper fix involves a bit smarter upload-pack.
   I've posted a hacky upload-pack patch:
   
	<7vfyiwi4xl.fsf@assigned-by-dhcp.cox.net>
   but I think it should really needs to be cleaned up properly.

Things that we might want to have in 1.4.0 but not even in "next" yet include:

 - p4 importer (Sean Estabrooks) -- are people interested?
 - letting fetch-pack to ask for an arbitrary commit object the
   user obtained out of band (Eric W Biederman) -- waiting for
   updated patch.  We would need a corresponding one-liner patch
   to upload-pack when we do this.
 - using ~/.gitrc to give a fall-back default when
   $GIT_DIR/config does not have values.
 - command aliases and possibly default arguments via the
   configuration file.
Junio C Hamano· Jun 1, 2006, 09:23 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

Junio C Hamano <junkio@cox.net> writes:
> It's been a while since the last feature release,...

So apparently somehow part #1 (the regular "master has these", "next in addition has these" message I occasionally do) is not liked by the mailing list. I wonder what's in it that makes it dropped on the floor...

Jakub Narebski· Jun 1, 2006, 09:31 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

Junio C Hamano wrote:
Show 8 quoted lines
> Junio C Hamano <junkio@cox.net> writes:
> 
>> It's been a while since the last feature release,...
> 
> So apparently somehow part #1 (the regular "master has these",
> "next in addition has these" message I occasionally do) is not
> liked by the mailing list.  I wonder what's in it that makes it
> dropped on the floor...

I had same problem (message not appearing on list), and as far as I was able to analyse it was because message accidentally (via unclean copy'n'paste) had some unusual characters.

-- 
Jakub Narebski
Warsaw, Poland
Sean· Jun 1, 2006, 11:26 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

On Thu, 01 Jun 2006 02:19:45 -0700 Junio C Hamano <junkio@cox.net> wrote:

>  - p4 importer (Sean Estabrooks) -- are people interested?
Junio,

There just won't be anywhere near the call for this as there is for the cvs and svn importers. Even so, a few people have expressed interest and it has been used by the Sourcemage folks with some success. Would you consider carrying this in contrib just so it has a home?

Sean
Ryan Anderson· Jun 1, 2006, 22:51 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

On Thu, Jun 01, 2006 at 02:19:45AM -0700, Junio C Hamano wrote:
> Things that we might want to have in 1.4.0 but not even in "next"
> yet include:
> 
>  - p4 importer (Sean Estabrooks) -- are people interested?

I think adding more importers is a good thing. There's no sense in having people reinvent the wheel.

Which reminds me, I need to polish and send off my BitKeeper importer. (It's slow and dumb, but works.)

Shawn Pearce· Jun 2, 2006, 02:35 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

Junio C Hamano <junkio@cox.net> wrote:
Show 5 quoted lines
>  - reflog from Shawn.  Do people find this useful?  I've enabled
>    reflog on "next" branch in my development repository to see
>    how useful it would be for myself a few days ago, and also in
>    a linux-2.6 repository I use for testing (I do not hack on
>    kernel myself).  

I find it useful to track what I've sent to you just in case I screw up some ref somewhere. I like knowing that if I perform a bad update-ref call (which I'm prone to do sometimes) that I can recover quickly as the log exists.

Not having that prior ref value was about the only area of `possible data loss' that I've every really noticed with GIT. Well, that and only having one repository holding all of your important files and you rm -rf the dang directory by accident one day... but that's just foolishness on the user's part. :-)

Show 5 quoted lines
>  - using ~/.gitrc to give a fall-back default when
>    $GIT_DIR/config does not have values.
> 
>  - command aliases and possibly default arguments via the
>    configuration file.

I'm certainly interested in these two - and I don't think I'm alone when I say that. :-)

-- 
Shawn.
Junio C Hamano· Jun 2, 2006, 06:40 UTC · re: Shawn Pearce · lore

Re: What's in git.git (part #2)

Shawn Pearce <spearce@spearce.org> writes:
> I find it useful to track what I've sent to you just in case I
> screw up some ref somewhere.  I like knowing that if I perform a
> bad update-ref call (which I'm prone to do sometimes) that I can
> recover quickly as the log exists.
I find it interesting to be able to say:
	$ git log next@{yesterday}..next
I often find myself getting curious to see:
	$ git reflog next
        Wed May 31 14:23:58 2006 -0700
                62b693a... Merge branch 'master' into next
        Wed May 31 14:26:39 2006 -0700
                422dfaf... Merge branch 'lt/tree-2' into next
        Wed May 31 15:14:58 2006 -0700
                100c25f... Merge branch 'ff/svnimport' into next
        Wed May 31 15:23:54 2006 -0700
                a25963b... Merge branch 'jc/fmt-patch' into next
        ...

The latter is probably not so useful in practice -- I suspect that I would want to see such a list only while I am interested in how well reflog works.

Shawn Pearce· Jun 6, 2006, 05:39 UTC · re: Junio C Hamano · lore

Re: What's in git.git (part #2)

Junio C Hamano <junkio@cox.net> wrote:
Show 17 quoted lines
> Shawn Pearce <spearce@spearce.org> writes:
> 
> > I find it useful to track what I've sent to you just in case I
> > screw up some ref somewhere.  I like knowing that if I perform a
> > bad update-ref call (which I'm prone to do sometimes) that I can
> > recover quickly as the log exists.
> 
> I find it interesting to be able to say:
> 
> 	$ git log next@{yesterday}..next
> 
> I often find myself getting curious to see:
> 
> 	$ git reflog next
>         Wed May 31 14:23:58 2006 -0700
>                 62b693a... Merge branch 'master' into next
>         ...

Hmm, looks like nobody has actually implemented that - at least not in 'next'. :-)

Is that a serious feature request? If so I'll do it. BTW: we're also still lacking reflog during receive-pack. Much of the update() function in receive-pack.c can be replaced with the new locking functions, except that if reflog is enabled on the target ref then GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL need to be set for the update to succeed.

I've been busy at work but I really have been wanting to put some time into this GIT Eclipse plugin that I've been neglecting. Some folks at work are starting to become more interested in it. I have gotten the really core functionality done; all that is left is the hard stuff (directory synchronization, push, fetch, non-delta pack generation for push[1], tree diff).

*1* Generating a simple pack with only deflate compression on the objects should be trivial. Since this is 100% pure Java code nobody should be expecting great performance out of it from day 1 anyway. Sure its not an optimal transport but if you were that worried about the transfer byte costs to push then you probably would just prefer to use the native tools code tools anyway.

-- 
Shawn.
Junio C Hamano· Jun 6, 2006, 06:16 UTC · re: Shawn Pearce · lore

Re: What's in git.git (part #2)

Shawn Pearce <spearce@spearce.org> writes:
Show 15 quoted lines
>> I find it interesting to be able to say:
>> 
>> 	$ git log next@{yesterday}..next
>> 
>> I often find myself getting curious to see:
>> 
>> 	$ git reflog next
>>         Wed May 31 14:23:58 2006 -0700
>>                 62b693a... Merge branch 'master' into next
>>         ...
>
> Hmm, looks like nobody has actually implemented that - at least not
> in 'next'.  :-)
>
> Is that a serious feature request?

I've written it but it was so trivial I threw it away after writing the e-mail you are responding to with it.

As I said, I _think_ I was interested in seeing it primarily because reflog was a new curiosity to me. It is more like wanting to know how the new tool works more than using the new tool effectively to improve my productivity. In a "serious" environment, a tool is just something you would use to get the real job done, not to toy around to see how _it_ works, so I suspect the above would not be so useful in practice, as I wrote in the message.

Johannes Schindelin· Jun 6, 2006, 08:19 UTC · re: Shawn Pearce · lore

Re: What's in git.git (part #2)

Hi,
On Tue, 6 Jun 2006, Shawn Pearce wrote:
> *1* Generating a simple pack with only deflate compression on the
> objects should be trivial.  Since this is 100% pure Java code nobody
> should be expecting great performance out of it from day 1 anyway.

If you use jzlib (http://www.jcraft.com/jzlib/) it should not be slow. IMHO the I/O will be the bottleneck, but I would be happy to be contradicted by the facts.

Ciao, Dscho

← back to recent threads