[Twisted-Python] Twisted Project Jobs Volunteer

Tom Davis tom at recursivedream.com
Wed Nov 9 09:30:57 EST 2011

On 11/09/2011 07:49 AM, Tim Allen wrote:
> On Wed, Nov 09, 2011 at 12:50:23AM -0800, Glyph Lefkowitz wrote:
>> On Nov 8, 2011, at 7:39 PM, Tim Allen wrote:
>>> As far as I know (having written most of the documentation in the linked
>>> wiki page, and from a brief skim through the git-svn manpage) it's
>>> impossible to make a "shallow" clone with git-svn (something like an
>>> ordinary "svn checkout", or "git clone --depth N"), so anyone who wants
>>> to contribute to Twisted via git needs to clone the repository from
>>> scratch (potentially overloading the SVN server, although nobody seemed
>>> to notice or complain when I was doing my git-svn clone), or just copy
>>> a tarball of somebody's comprehensive, elaborate, automatic mirroring
>>> setup.
>> This is the part I don't understand.  Why doesn't 'git clone' work
>> right in the face of svn metadata?
> Git has a ".git" directory in each repository, and expects certain files
> to be present within it. If there's more stuff that it doesn't know
> about, it just ignores it. git-svn keeps its metadata in other files
> that git-clone doesn't know or care about, and hence they don't get
> cloned.
> I guess there's an argument for not cloning them - just because person
> X has particular access rights to an SVN server doesn't mean that person
> Y should have them just because they cloned a repository from X.
>> bzr-svn has some metadata it caches about the svn repository which
>> doesn't stick around in the bzr repo or branch, but (from the
>> performance of using it, at least) it doesn't need to stop the world
>> and grab all of that data for most operations.
> In a git-svn-cloned repository, ordinary git operations are as speedy as
> you'd expect. "git svn fetch" is slow because (I think) it has to
> separately request each changed file from each SVN revision, and I think
> there's some other operations that are slow because they involve talking
> to the SVN server (like 'tell me what SVN properties are attached to
> this file').
>> It would be better (for most users) to point to a canonical way to get
>> access to a git-svn clone than to document how to make one, if making
>> one takes 24 hours :).
> Don't worry, it doesn't take 24 hours! It's *much* longer than that! ;)
> (as the wiki page states, in early 2010 and from the other side of the
> world it took about a week; I don't have a feel for how it changes over
> time)

It's worth noting that you aren't *required* to clone all eight trillion 
Twisted revisions in order to get a working clone. Doing `git svn clone 
-rN:HEAD <url>` where `N` is some revision number will only clone from 
that revision. Obviously you will not have the entire history of the 
repository at this point, but I highly doubt that would be a meaningful 
loss for the majority of use cases.

I mean, yeah, it'd be nice to have a full git clone, but if you just 
prefer to use git for development and want to submit patches to Twisted 
it's hardly an insurmountable task compared to the other requirements 
for successfully working a ticket to completion.

>>> I'm not sure why that would be, except that possibly they found
>>> a tarball of somebody else's git-svn clone and forgot to update it, or
>>> they're confused about the best way to get cloned from some unofficial,
>>> no-longer updated mirror. Fixing this probably depends on having the
>>> canonical, correct, convenient instructions and advertising them widely.
>> You edited GitMirror before, you can do it again :).
> I'm editing it to include what we've discussed here, as well as a few
> other things that I researched this afternoon and put into a reply that
> my MUA ate before it was sent.
> I believe the next step should be that somebody with the required
> permissions should connect to a machine on the same physical network as
> the SVN server and run:
>      time git svn clone --stdlayout --prefix="svn/" \
> 	    svn+ssh://svn.twistedmatrix.com/svn/Twisted
> ...then check the load on the SVN server and see if it's going to be an
> issue to let the clone complete. If the clone completes successfully,
> then (a) we know about how long it takes, and (b) we have a "seed"
> repository we can potentially put up for people to download. I'd be
> happy to download it, check it, and write up some documentation about
> how people should update it. If it doesn't complete successfully, we
> should have some helpful error messages, adjust the clone command line
> and try again.
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

More information about the Twisted-Python mailing list