[Twisted-Python] git repo maintenance

Duncan McGreggor oubiwann at twistedmatrix.com
Mon Oct 22 15:48:56 EDT 2012

On Mon, Oct 22, 2012 at 12:04 PM, Duncan McGreggor
<duncan.mcgreggor at gmail.com> wrote:
> On Mon, Oct 22, 2012 at 12:01 PM, Duncan McGreggor
> <duncan.mcgreggor at gmail.com> wrote:
>> On Mon, Oct 22, 2012 at 11:30 AM, David Reid <dreid at dreid.org> wrote:
>>> On Mon, Oct 22, 2012 at 10:55 AM, Duncan McGreggor
>>> <oubiwann at twistedmatrix.com> wrote:
>>>> On Sat, Oct 20, 2012 at 4:24 PM, Duncan McGreggor
>>>> <oubiwann at twistedmatrix.com> wrote:
>>>> > Hey all,
>>>> >
>>>> > At the sprint today, Glyph mentioned that the github repo hasn't been
>>>> > updated recently and needs someone to maintain it regularly. He also
>>>> > mentioned that pull requests would be accepted from github, at which
>>>> > point
>>>> > I immediately volunteered to keep the repo up to date :-) (I can't bear
>>>> > using svn anymore...)
>>>> >
>>>> > I'll be putting things in place (infrastructure, scripts, etc.) to
>>>> > assist me
>>>> > with this, so let me know if you have any concerns, questions, ideas,
>>>> > etc.
>>>> So, I've got a git repo set up for trunk of svn, and for the life of
>>>> me, I can't merge it with the git repo on github.
>>>> As such, my desire is to do a force push. *However* this would break
>>>> github forks that everyone has made so far, based on twisted/twisted
>>>> (the complete list is here:
>>>> https://github.com/twisted/twisted/network/members).
>>> Based on https://github.com/twisted/twisted/network
>>> (That graph indicates that no one has actually done any substantial work
>>> based on the old repository.)
>>> I'm inclined to say do it.
>>> I'm a little concerned about how you ended up with a thing that which wasn't
>>> mergeable?  Could we start by you documenting how you created this repo?
>> Sure thing. All I did to build a git repo was the usual:
>> git svn clone svn://svn.twistedmatrix.com/svn/Twitsed/trunk twisted
>> All of my attempts to merge were using the local copy created by the
>> branch above (or by creating a clone of it with just one or two
>> revisions beyond what the github repo has, to minimize the commit #
>> and maximize the chance of a successful merge).
>> For instance:
>>  * git clone git at github.com:twisted/twisted.git twisted-github; cd
>> twisted-github; git pull ../twisted master
>> (and other variations upon that theme).
>> I've tried using several different merge strategies; either they
>> couldn't complete the merge, or they resulted in gobs of conflicts.
>> d
> So I just tried something else:
> git pull -s recursive -Xtheirs ../twisted master
> since this was run in the github master, the "theirs" is the svn clone
> master, and forcing the adoption of "theirs" resulted in many fewer
> conflicts. Hundreds of fewer conflicts, maybe?
> Looking into this to see if anything was broken by this approach...
> d

It seems that the topfiles were mostly affected by this. Some deleted
files git didn't know what do to with. But then I noticed that other
files that had been modified weren't included in the change set.


As a sanity check, I did a local rsync, and sure enough, there are a
bunch of files that didn't get merged using the strategy above that
were changed in the svn repo.

I'll put this part of the effort on hold, and take a look at the repo
mirror that Glyph pointed me to in his most recent email...


More information about the Twisted-Python mailing list