Re: Git is not scalable with too many refs/*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> From: "Jakub Narebski" <jnareb@xxxxxxxxx>
> To: "NAKAMURA Takumi" <geek4civic@xxxxxxxxx>
> Cc: "git" <git@xxxxxxxxxxxxxxx>
> Sent: Thursday, June 9, 2011 7:18:09 AM
> Subject: Re: Git is not scalable with too many refs/*
> NAKAMURA Takumi <geek4civic@xxxxxxxxx> writes:
> 
> > Hello, Git. It is my 1st post here.
> >
> > I have tried tagging each commit as "refs/tags/rXXXXXX" on git-svn
> > repo locally. (over 100k refs/tags.)
> [...]
> 
> That's insane. You would do much better to mark each commit with
> note. Notes are designed to be scalable. See e.g. this thread
> 
> [RFD] Proposal for git-svn: storing SVN metadata (git-svn-id) in notes
> http://article.gmane.org/gmane.comp.version-control.git/174657

As a reformed SVN user (i.e. not using it anymore ;]) I agree that 100k tags seems crazy, but I was contemplating doing the exact same thing as Takumi.  Skimming that thread, I didn't see the key point (IMO): notes can map from commits to a "name" (or other information), tags map from a "name" to commits.

I've seen two different workflows develop:
  1) Hacking on some code in Git the programmer finds something wrong.  Using Git tools he can pickaxe/bisect/etc. and find that the problem traces back to a commit imported from Subversion.
  2) The programmer finds something wrong, asks coworker, coworker says "see bug XYZ", bug XYZ says "Fixed in r20356".

I agree notes is the right answer for (1), but for (2) you really want a cross reference table from Subversion rev number to Git commit.

In our office we created the cross reference table once by walking the Git tree and storing it as a file (we had some degenerate cases where one SVN rev mapped to multiple Git commits, but I don't remember the details), but it's not really usable from Git.  Lightweight tags would be an awesome solution (if they worked).  Perhaps a custom subcommand is a reasonable middle ground.

Thanks,
Stephen
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]