GitHub migration done!

2,140 views
Skip to first unread message

Adrian Holovaty

unread,
Apr 27, 2012, 11:08:09 PM4/27/12
to django-d...@googlegroups.com
On Fri, Apr 27, 2012 at 11:50 AM, Adrian Holovaty <adr...@holovaty.com> wrote:
> We're going to do the migration to GitHub today. This means we'll no
> longer be committing code to our Subversion repository. Committers,
> please hold off on making commits until the migration is done.

OK, it's live!

https://github.com/django/django

A few quick points (though this definitely deserves a more in-depth writeup):

* I renamed the old (mirror) repository to
https://github.com/django/django-old. We had talked about deleting it
outright to avoid confusion, but I realized at the last minute that
doing so would have deleted all the pull requests. I didn't want to
throw all of that out, and I think we can figure out a way to use
those pull requests in the new repository.

* I only migrated trunk (now called "master"), rather than including
all of the branches. This was the result of a bunch of discussion on
IRC with Brian R., et al. The thinking is that it kept the migration a
lot cleaner/simpler, and we can always add branches later. Of course,
we'll need to create the latest release branches. Otherwise, we can
consider the SVN branches on an individual basis.

* As expected, all forks of the old repository are now broken. Can
somebody volunteer to write some documentation on how to upgrade your
old fork to use the new upstream repo (rebase? simple patch?)?

* We're going to keep the Subversion repository around indefinitely,
but it'll no longer be updated.

* We're going to keep using Trac for tickets, but pull requests on
GitHub are also welcome.

* Clearly there are lots of bits of process that need to be updated
now, from the django-updates mailing list to our "contributing"
documentation, etc. We'll take care of all of that in the coming days,
and we should all expect some degree of confusion and unsettlement in
the community. That's totally fine, and we'll get through it. :-)

* Finally, big thanks to the folks on IRC today who helped me through
the process and contributed good ideas.

I'm planning to write up a blog post on how the process went, for the
benefit of the five open-source projects still using Subversion.

Adrian

Justin Holmes

unread,
Apr 28, 2012, 2:49:32 AM4/28/12
to django-d...@googlegroups.com
Adrian,

Thank you. Well done. Awesome. :-)
> --
> You received this message because you are subscribed to the Google Groups "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com.
> To unsubscribe from this group, send email to django-develop...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
>



--
Justin Holmes

Head Instructor, SlashRoot Collective
SlashRoot: Coffee House and Tech Dojo
60 Main Street
New Paltz, NY 12561
845.633.8330

Aymeric Augustin

unread,
Apr 28, 2012, 3:03:02 AM4/28/12
to django-d...@googlegroups.com
On 28 avr. 2012, at 05:08, Adrian Holovaty wrote:

> * We're going to keep using Trac for tickets, but pull requests on
> GitHub are also welcome.

Hi everyone,

For extra safety, I recommend you still create Trac tickets for each suggested change, until we work out how pull requests integrate into the triage workflow.

Thanks,

--
Aymeric.

Dana Woodman

unread,
Apr 28, 2012, 3:15:09 AM4/28/12
to django-d...@googlegroups.com
Congrats Adrian, this is very exciting news! I'm excited to see Django taking the next leap forward, exciting times ahead! Cheers!

slav0nic

unread,
Apr 28, 2012, 8:17:30 AM4/28/12
to django-d...@googlegroups.com
what about "Browse Source", trac links to changset, CommitTicketUpdater ?
Maybe this will be possible only if you syncing github to local copy via pulling.

Camilo Nova

unread,
Apr 28, 2012, 9:07:28 AM4/28/12
to django-d...@googlegroups.com
Great Job. This will make easier for a lot of people to be involved on the project.

Vitaly Babiy

unread,
Apr 28, 2012, 9:25:25 AM4/28/12
to django-d...@googlegroups.com
Awesome job guys!

Vitaly Babiy



--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-developers/-/3AYxf2T_uFgJ.

Sean Lee

unread,
Apr 28, 2012, 10:53:14 AM4/28/12
to django-d...@googlegroups.com

Great job!

在 2012年4月28日星期六UTC+8上午11时08分09秒,Adrian Holovaty写道:

Mateusz Harasymczuk

unread,
Apr 28, 2012, 11:17:22 AM4/28/12
to django-d...@googlegroups.com
On Saturday, April 28, 2012 5:08:09 AM UTC+2, Adrian Holovaty wrote:
OK, it's live!
https://github.com/django/django

Great news!

Therefore probably you should update this site:

Jacob Kaplan-Moss

unread,
Apr 28, 2012, 1:10:07 PM4/28/12
to django-d...@googlegroups.com
On Saturday, April 28, 2012 at 5:17 AM, slav0nic wrote:
what about "Browse Source", trac links to changset, CommitTicketUpdater ?
Maybe this will be possible only if you syncing github to local copy via pulling.

Yup, I'm working on that. I didn't get it done yesterday, but didn't want to block the move. I'll get it done this weekend.

Jacob

Mateusz Harasymczuk

unread,
Apr 28, 2012, 2:32:00 PM4/28/12
to django-d...@googlegroups.com
Could you make tags out of stable releases. It would help a lot :}

Cal Leeming [Simplicity Media Ltd]

unread,
Apr 28, 2012, 2:35:39 PM4/28/12
to django-d...@googlegroups.com
Amazing news!! Great job, Adrian.

Cal


Adrian

--
You received this message because you are subscribed to the Google Groups "Django developers" group.

Yuval Adam

unread,
Apr 28, 2012, 3:46:53 PM4/28/12
to Django developers
I think this issue should be dealt with sooner rather than later.

Django will start getting lots of orphan pull requests with no
matching trac ticket, and a policy of how community members should
contribute via github should be in place.

As a side note, it is kind of a hassle to submit a pull request and
then go fill a new trac ticket.
For me, as a kind-of-involved user of Django, I simply won't go into
that burden.

On Apr 28, 10:03 am, Aymeric Augustin

Aymeric Augustin

unread,
Apr 28, 2012, 5:36:35 PM4/28/12
to django-d...@googlegroups.com
On 28 avr. 2012, at 21:46, Yuval Adam wrote:

> I think this issue should be dealt with sooner rather than later.
>
> Django will start getting lots of orphan pull requests with no
> matching trac ticket, and a policy of how community members should
> contribute via github should be in place.
>
> As a side note, it is kind of a hassle to submit a pull request and
> then go fill a new trac ticket.
> For me, as a kind-of-involved user of Django, I simply won't go into
> that burden.

Hi Yuval,

The core team is actively discussing this question.

My previous recommendation isn't a final decision.

I hope we'll release more information soon.

Thanks for your patience,

--
Aymeric.


Yuval Adam

unread,
Apr 28, 2012, 5:56:34 PM4/28/12
to Django developers
Hey Aymeric,

Just throwing in my 2 cents.
If there's a public thread I can follow re: this issue, I'd appreciate
a link, since I haven't been able to find it.
Waiting patiently :)

- Yuval

On Apr 29, 12:36 am, Aymeric Augustin

Adrian Holovaty

unread,
Apr 28, 2012, 8:16:06 PM4/28/12
to django-d...@googlegroups.com
On Fri, Apr 27, 2012 at 10:08 PM, Adrian Holovaty <adr...@holovaty.com> wrote:
> OK, it's live!
>
> https://github.com/django/django

Hi all,

I've written a post-mortem here, for anybody interested in how the process went:

http://www.holovaty.com/writing/django-github/

Adrian

charettes

unread,
Apr 28, 2012, 11:19:35 PM4/28/12
to django-d...@googlegroups.com
I wrote a little userscript that linkifies ticket numbers in github pull request to the correct trac ticket.

It can be found here.

ptone

unread,
Apr 29, 2012, 1:37:58 AM4/29/12
to django-d...@googlegroups.com


On Saturday, April 28, 2012 12:46:53 PM UTC-7, Yuval Adam wrote:
I think this issue should be dealt with sooner rather than later.

Django will start getting lots of orphan pull requests with no
matching trac ticket, and a policy of how community members should
contribute via github should be in place.

As a side note, it is kind of a hassle to submit a pull request and
then go fill a new trac ticket.
For me, as a kind-of-involved user of Django, I simply won't go into
that burden. 

It is a small hassle, but I've done it several times (creating a pull and ticket with cross referencing links).  Writing tests can sometimes feel like a hassle.

Hopefully we will see some solutions and improvements in the trac-github space, but in the meantime - it shouldn't be a barrier to contributing - a few more clicks is all.

 -P

Daniel Sokolowski

unread,
Apr 30, 2012, 7:54:33 AM4/30/12
to django-d...@googlegroups.com
Adrian, excellent job and thank you! Curious what five open-source on
Subversion you are referring to?
--
You received this message because you are subscribed to the Google Groups
"Django developers" group.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to
django-develop...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-developers?hl=en.


Daniel Sokolowski
Web Engineer
Danols Web Engineering
http://webdesign.danols.com/

Vinay Sajip

unread,
Apr 30, 2012, 9:11:03 PM4/30/12
to Django developers
On Apr 28, 4:08 am, Adrian Holovaty <adr...@holovaty.com> wrote:

> * We're going to keep the Subversion repository around indefinitely,
> but it'll no longer be updated.

That means that any mirrors using that repository as a source are also
not worth using any more. There's the official BitBucket Mercurial
mirror of Django:

https://bitbucket.org/django/django/

Is that going to be changed to be a mirror of the GitHub repo, or will
it disappear altogether?

Regards,

Vinay Sajip

Carl Meyer

unread,
Apr 30, 2012, 9:19:35 PM4/30/12
to django-d...@googlegroups.com
Hi Vinay,
Good point. I think which of those happens now depends on whether a
motivated someone steps up to figure out how to convert the mirror to
use hg-git and source from Git, and then maintain it as needed. I
originally did the current mirror, and it really hasn't needed any
maintenance over the past two years, but I no longer use Mercurial or
the Mercurial Django mirror, so that "motivated someone" is not likely
to be me this time around.

Carl

Vinay Sajip

unread,
May 1, 2012, 2:45:02 AM5/1/12
to Django developers

On May 1, 2:19 am, Carl Meyer <c...@oddbird.net> wrote:
>
> Good point. I think which of those happens now depends on whether a
> motivated someone steps up to figure out how to convert the mirror to
> use hg-git and source from Git, and then maintain it as needed. I
> originally did the current mirror, and it really hasn't needed any
> maintenance over the past two years, but I no longer use Mercurial or
> the Mercurial Django mirror, so that "motivated someone" is not likely
> to be me this time around.

I don't mind doing it, if it's sufficiently low-maintenance, and I do
use Mercurial as well as Git. Did you implement it using a local repo
and a cron job, or was there something else you used which was more
purpose-built?

Regards,

Vinay Sajip

Carsten Fuchs

unread,
May 1, 2012, 6:07:37 AM5/1/12
to django-d...@googlegroups.com
Hi all,


On Saturday, April 28, 2012 5:08:09 AM UTC+2, Adrian Holovaty wrote:
On Fri, Apr 27, 2012 at 11:50 AM, Adrian Holovaty wrote:
> We're going to do the migration to GitHub today. This means we'll no
> longer be committing code to our Subversion repository. Committers,
> please hold off on making commits until the migration is done.

OK, it's live!
https://github.com/django/django

Excellent job, thank you very much!

Please forgive me a side question though:
Why didn't you convert the feature branches when converting the repository from SVN to Git as well?
I'm asking this mainly because I'm relatively new to Git, and wonder how exactly do you plan to convert the branches (especially the long merged ones) at a later time? Wouldn't this unconditionally change the hashes of all commits subsequent to the merge (and thus be self-forbidding on a public repository? which in turn makes later adding of merged branches impossible?)

A thousand thanks to you all from a happy Django user!
Carsten

Carl Meyer

unread,
May 1, 2012, 12:39:18 PM5/1/12
to django-d...@googlegroups.com
On 05/01/2012 12:45 AM, Vinay Sajip wrote:
> On May 1, 2:19 am, Carl Meyer<c...@oddbird.net> wrote:
>> Good point. I think which of those happens now depends on whether a
>> motivated someone steps up to figure out how to convert the mirror to
>> use hg-git and source from Git, and then maintain it as needed. I
>> originally did the current mirror, and it really hasn't needed any
>> maintenance over the past two years, but I no longer use Mercurial or
>> the Mercurial Django mirror, so that "motivated someone" is not likely
>> to be me this time around.
>
> I don't mind doing it, if it's sufficiently low-maintenance,

I can't speak for how it will be with hg-git (there is a bit more
potential complexity since the source repo is not simple and linear like
Subversion), but hgsubversion has required exactly zero maintenance
since I first set it up.

> and I do
> use Mercurial as well as Git. Did you implement it using a local repo
> and a cron job, or was there something else you used which was more
> purpose-built?

It's just a cron job and a local repo using hgsubversion; every five
minutes it pulls the latest from Subversion and pushes it to Bitbucket.
The repo and cron job are hosted on the djangoproject.com server. If you
are able to get the conversion from git working and repeatable on a
local repo, I think Jacob can probably get you hooked up to host it on
djangoproject.com (which also has an ssh key with permission to push to
bitbucket.org/django/django).

The tricky bit will be making the switch to sourcing from git in a way
that doesn't change all the historical commit hashes, making the new
mirror repo merge-incompatible with the current mirror (and all clones
of it). It's possible there will be no way to do that, in which case I
guess a new incompatible mirror is still better than no mirror at all.

Carl

Donald Stufft

unread,
May 1, 2012, 12:40:53 PM5/1/12
to django-d...@googlegroups.com
Pretty sure this isn't going to make a compatible with the existing mirror
mirror but http://hg-git.github.com/ should make it easy to go from git -> hg.

Florian Apolloner

unread,
May 2, 2012, 9:37:07 AM5/2/12
to django-d...@googlegroups.com
On Tuesday, May 1, 2012 6:40:53 PM UTC+2, dstufft wrote:
Pretty sure this isn't going to make a compatible with the existing mirror
mirror but http://hg-git.github.com/ should make it easy to go from git -> hg.

Far from easy, last time (or actually times) I tried to use it it broke in many horrible ways :( [And either the link isn't listing an up2date project or it's really dead since 3 years]

Florian Apolloner

unread,
May 2, 2012, 9:38:25 AM5/2/12
to django-d...@googlegroups.com


On Wednesday, May 2, 2012 3:37:07 PM UTC+2, Florian Apolloner wrote:
Far from easy, last time (or actually times) I tried to use it it broke in many horrible ways :( [And either the link isn't listing an up2date project or it's really dead since 3 years]

Ignore the dead status, I had to many github tabs open :/  -- it's apperently still maintained actively

Cal Leeming [Simplicity Media Ltd]

unread,
May 2, 2012, 12:09:45 PM5/2/12
to django-d...@googlegroups.com
Apologies if this question has already been answered or seems silly but - is there a reason Mercurial is needed?? Can contributors not just switch to using git?

i.e. if we have deprecated SVN, then why isn't Mercurial also being deprecated??

Cal

--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-developers/-/kaED8cf1TXMJ.

Vinay Sajip

unread,
May 2, 2012, 12:41:00 PM5/2/12
to Django developers

On May 1, 5:39 pm, Carl Meyer <c...@oddbird.net> wrote:

> It's just a cron job and a local repo using hgsubversion; every five
> minutes it pulls the latest from Subversion and pushes it to Bitbucket.
> The repo and cron job are hosted on the djangoproject.com server. If you
> are able to get the conversion from git working and repeatable on a
> local repo, I think Jacob can probably get you hooked up to host it on
> djangoproject.com (which also has an ssh key with permission to push to
> bitbucket.org/django/django).
>
> The tricky bit will be making the switch to sourcing from git in a way
> that doesn't change all the historical commit hashes, making the new
> mirror repo merge-incompatible with the current mirror (and all clones
> of it). It's possible there will be no way to do that, in which case I
> guess a new incompatible mirror is still better than no mirror at all.

Okay, I'll take a look at it. In the meantime, I've pinged someone at
Atlassian to see if they already have something/might be interested in
hosting and maintaining a mirror (since BitBucket actually uses
Django).

I'll still try it out with a local repo to see how it works (as time
permits).

Thanks and regards,

Vinay Sajip

Carl Meyer

unread,
May 2, 2012, 1:41:35 PM5/2/12
to django-d...@googlegroups.com
On 05/02/2012 10:09 AM, Cal Leeming [Simplicity Media Ltd] wrote:
> Apologies if this question has already been answered or seems silly but
> - is there a reason Mercurial is needed?? Can contributors not just
> switch to using git?
>
> i.e. if we have deprecated SVN, then why isn't Mercurial also being
> deprecated??

This isn't an issue where anyone has to dictate anything; there is no
cost. If there are Django contributors who prefer Mercurial, and one of
them is motivated to maintain a mirror repository, that's great.

(The same is equally true for Subversion, except that I don't know of
anybody who prefers using it as a client, and mirroring in that
direction is pretty hard/impossible).

Carl

Vinay Sajip

unread,
May 3, 2012, 6:43:34 PM5/3/12
to Django developers
On May 1, 5:39 pm, Carl Meyer <c...@oddbird.net> wrote:

> It's just a cron job and a local repo using hgsubversion; every five
> minutes it pulls the latest from Subversion and pushes it to Bitbucket.
> The repo and cron job are hosted on the djangoproject.com server. If you
> are able to get the conversion from git working and repeatable on a
> local repo, I think Jacob can probably get you hooked up to host it on
> djangoproject.com (which also has an ssh key with permission to push to
> bitbucket.org/django/django).
>
> The tricky bit will be making the switch to sourcing from git in a way
> that doesn't change all the historical commit hashes, making the new
> mirror repo merge-incompatible with the current mirror (and all clones
> of it). It's possible there will be no way to do that, in which case I
> guess a new incompatible mirror is still better than no mirror at all.

Okay, in case anyone cares, I've set up a local repo and have used hg-
git to pull Django's Github repo to it, and pushed out to a Mercurial
repo at

https://bitbucket.org/vinay.sajip/django_mirror/

I've also set up a Git repo at

https://bitbucket.org/vinay.sajip/django_reflected/

from the local Mercurial repo. On casual inspection, at least, all the
hashes look the same between the official Django repo and the
django_reflected repo.

There were no errors reported; it's rather slow pushing to a Git repo,
not sure why yet. I haven't set it up as a cron job, so it's not
actually a mirror yet, but some manual pulls and pushes to the remote
Mercurial repo worked fine.

I'll wait to hear back from Atlassian to see if they've set anything
up, before I do anything more.

Regards,

Vinay Sajip

Charles McLaughlin

unread,
May 11, 2012, 10:58:29 PM5/11/12
to Django developers
Hi,

I setup a new mirror using hg-git:

https://bitbucket.org/django/django-hg-git

I work for Bitbucket and I'll make sure the mirror is maintained.

Regards,
Charles

Vinay Sajip

unread,
May 12, 2012, 6:19:53 PM5/12/12
to Django developers
Hi Charles,

> I setup a new mirror using hg-git:
>
>  https://bitbucket.org/django/django-hg-git
>
> I work for Bitbucket and I'll make sure the mirror is maintained.

Thanks very much for doing this.

Regards,

Vinay Sajip
Reply all
Reply to author
Forward
0 new messages