Hi David and all,

I used cvs2git, part of the cvs2svn package. The migration was made a bit 
trickier by the fact that I didn't have rsync access to the repo, so I had to 
use cvsclone to retrieve a coppy first. I've attached my migration notes to 
this email.

I am not too familiar with the packaging side at all; one thing we could 
consider as we do this Git migration is hosting PG on MELPA; this seems to work 
well for my company-coq plugin (https://github.com/cpitclaudel/company-coq/). 
The idea is that an emacs package (installable via `package-install-file`) gets 
auto-generated from the git repo every few hours, and gets hosted on MELPA, a 
third-party package archive. This makes installation of PG essentially platform 
independent, and makes it easier to deploy updates and bugfixes. An added 
benefit is that it allows other emacs plugins to register a dependency on 
ProofGeneral, so that installing them automatically installs PG as well.


On 04/20/2015 03:49 PM, David Aspinall wrote:
> Hello Clément, all,
> This is a very timely message!  I have indeed started to think of
> making this migration again.  Although I don't have a lot of time to
> work on it, I would like to see it done.  There is an old attempt
> here:
> https://github.com/DavidAspinall/ProofGeneral
> but it didn't get updated and indeed we could do a better job with
> the user names.  I'll take a look at your attempt soon (which tool
> did you use?).
> I agree that we probably need to set a cut-off date and disconnect
> the old CVS repo, the sync options don't look robust.  What I could
> most do with help is converting the packaging/publishing tools to use
> the github repo.  (The web pages also badly need replacing but I'm
> not sure if anyone would have the stomach to do that?)
> I'm slightly wary of needing to manage merge requests so I thought of
> using a GitHub organisation for this to share the job and to host a
> central repo.  Hence:
> https://github.com/ProofGeneral
> If anyone on this list would like to join, please tell me your GitHub
> user name.
> - David
> On 20/04/2015 19:29, Clément Pit--Claudel wrote:
>> Hi Pierre and David (and proofgeneral-devel),
>> There were talks a while ago on the mailing list about a migration to git. I 
>> think this would be really cool. I experimented with various export options, 
>> and came up with the repo at https://github.com/cpitclaudel/proof-general/ . 
>> The problem with the process that I used is that it makes it hard to 
>> incrementally track changes (we would need to migrate once and for all).
>> Most of the history seems to have been preserved just fine, but it would be 
>> nice to map CVS usernames to proper names and emails; the authors in the CVS 
>> tree seem to be [assia, crr, cxl, da, djs, fionam, gklein, hhg, joheras, 
>> lego, makarius, mark, markus, monnier, patrl, pier, proofgen, pxc, sberghof, 
>> tews, tms, weber]. Is there a list of names and emails somewhere matching 
>> these usernames?
>> It would be great to get feedback on the history as recorded in 
>> https://github.com/cpitclaudel/proof-general/ ; also, if a migration was 
>> eventually decided, I could help with the process. One reason for migrating 
>> to Git and hosting on Github would be lowering the barrier of entry to new 
>> contributors: many of the changes that I made in my company-coq plugin could 
>> in fact be ported to proof-general. It could also allow for simplified 
>> distribution of extensions and updated versions, via emacs' package system.
>> Clément.
* Get a copy of the full repo

** Download and compile cvsclone

   wget https://www.samba.org/ftp/tridge/rtc/cvsclone.l
   flex cvsclone.l && gcc -Wall -O2 lex.yy.c -o cvsclone

** Clone the CVS repo locally

   cvsclone -d :pserver:a...@cvs.inf.ed.ac.uk:/disk/cvs/proofgen checkout 

** Move it out of the cvsclone directory

   mkdir cvs-repo
   mv cvsclone/ProofGeneral/ cvs-repo/CVSROOT

** Make a backup

   tar cvzf cvsroot.tar.gz cvs-repo/CVSROOT/

* Import the repo into git

** Install and setup cvs2svn

   sudo apt-get install cvs2svn

** Migrate the previously obtained clone

   cvs2git --options=cvs2git.options

** Import the dumps into a git repo

   mkdir git-repo && cd git-repo && git init .
   cat ../cvs2git-tmp/git-{blob,dump}.dat | git fast-import
   git reset --hard
   git gc --aggressive

Attachment: signature.asc
Description: OpenPGP digital signature

ProofGeneral-devel mailing list

Reply via email to