[Twisted-Python] git repo maintenance
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:
>>> 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.
> 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...
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