My favorites | Sign in
Project Logo
    
New issue | Search
for
| Advanced search | Search tips
Issue 32: Mercurial script to keep track of Pinax and external dependencies
1 person starred this issue and may be notified of changes. Back to list
Status:  Done
Owner:  ----
Closed:  Feb 2009
Type-Defect
Priority-Medium


Sign in to add a comment
 
Reported by nicola.larosa, Jul 21, 2008
The hgsvn tool can be used to clone the Subversion repository into a
Mercurial one. Alas, it does not keep track of the external applications.

There is a simple script attached to  issue 17  to do that, but it has a few
limitations: it will clone all revisions of Pinax and all external apps; it
must be modified to only pull in subsequent executions, after the first
import; and it has no workaround for some weirdness in Google Code
Subversion deployment.

An expanded rewrite in Python is attached. It includes documentation,
command line options, the mentioned workarounds, and extensive error checking.

If run without arguments it will come straight here and get all of Pinax. :-)
hgimpull.py
7.3 KB   Download
Comment 1 by nicola.larosa, Jul 23, 2008
Version 0.2 is new and improved, use that instead.
hgimpull-0.2.py
7.7 KB   Download
Comment 2 by nicola.larosa, Jul 28, 2008
After the recent dir reorg (that attached the svn:external properties to the apps dir
instead of the pinax one), two commands are needed:

$ hgimpull -u http://django-hotclub.googlecode.com/svn/trunk/pinax pinax
$ hgimpull -u http://django-hotclub.googlecode.com/svn/trunk/apps apps

and then two commands to update:

$ hgimpull pinax; hgimpull apps

Comment 3 by nicola.larosa, Jul 29, 2008
Another revision, 0.3, with some news.

The command is now called hgsvnimpull, so that it autocompletes just by typing "hgs"
and then Tab (thanks to insanekane for the name).

Furthermore, it does not create symlinks anymore, but instead places all external
apps in a second directory, given as second command line arg. (It's better not
putting them inside the "apps" directory, because then we would nest mixed hg/svn
repositories inside each other.)

The needed commands are now:

$ hgsvnimpull -u http://django-hotclub.googlecode.com/svn/trunk/pinax pinax
$ hgsvnimpull -u http://django-hotclub.googlecode.com/svn/trunk/apps  apps  ext-apps

and to update:

$ hgsvnimpull pinax
$ hgsvnimpull apps  ext-apps

(In both places, the first commands, the pinax ones, may be substituted with direct
invocations of hgimportsvn and hgpullsvn: your choice.)

hgsvnimpull-0.3.py
8.8 KB   Download
Comment 4 by chris.leemesser, Dec 18, 2008
2008 Dec 18: 
The repository has moved.  Not sure if still need to do two checkouts as in above comment
# used mercurial-1.1 and hgsvn 0.1.6
# installed with $ easy_install -UZ mercurial hgsvn

$ mkdir pinax.hg; cd pinax.hg 

$ hgsvnimpull-0.3.py -u http://svn.pinaxproject.com/pinax/trunk pinax
$ hgsvnimpull-0.3.py -u http://svn.pinaxproject.com/pinax/trunk/apps/external_apps
external_apps external_apps

Plan to use symbolic links to insert the external apps into the regular directory
Comment 5 by brosner, Dec 18, 2008
If someone wants to put together a wiki page I would be more than happy to add it. I think we can ultimately add 
this type of stuff to the documentation.
Comment 6 by brosner, Feb 04, 2009
hg support now should work much better now. Since we have moved away from svn:externals, any DVCS will 
work equally well.
Status: Done
Comment 7 by nicola.larosa, Feb 04, 2009
Right, this thing's not needed anymore. It's been fun in the meanwhile, though. :-)
Sign in to add a comment

Hosted by Google Code