= Notes/Subversion/Importing = == Importing RCS files to a repository == STILL WORKING ON THIS PAGE === Initial Import === Just importing the miriad tree as it stands is unsatisfactory, because we lose the revision history. So we use {{{cvs2svn}}}. '''Note:''' there is a [http://cvs2svn.tigris.org/issues/buglist.cgi?target_milestone=---&issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED&field0-0-0=longdesc&type0-0-0=substring&value0-0-0=file%20already%20exists&field0-0-1=short_desc&type0-0-1=substring&value0-0-1=file%20already%20exists&field0-0-2=status_whiteboard&type0-0-2=substring&value0-0-2=file%20already%20exists bug] in the version of {{{cvs2svn}}} available in the Debian ''sarge'' release that causes the import to die partway through. The version available in Debian ''etch'' works correctly. The initial import goes like this (all three methods give the same result): {{{ % mkdir miriad % rsync -av /nfs/atapplic/miriad/ miriad/ # method 1 # we'll create a new repository in a directory named 'svnmiriad' % cvs2svn -s svnmiriad miriad # method 2 # we can create an empty repository named 'svnmiriad' and load via a dumpfile % cvs2svn --dumpfile=20071123.svndump miriad % svnadmin load svnmiriad < 20071123.svndump # method 3 # add to an existing repository % svnadmin create svnmiriad % cvs2svn --existing-repos -s svnmiriad miriad }}} To do later imports, we would have to do something like this: {{{ % mkdir miriad2 % rsync -a /nfs/atapplic/miriad/ miriad2/ # create a new repos % cvs2svn -s svnmiriad2 miriad2 # assuming a repository named 'svnmiriad' % svn merge -rM:N svnmiriad2 svnmiriad #??? # M and N are revision numbers in the svnmiriad2 repository. }}} Not everything in the {{{miriad}}} directory gets imported (e.g. the binaries), because they have no RCS file. === The Next Steps === tag the raw import, before we start to muck around with it. need to remove the compiled binaries No - the binaries never get checked into RCS so they aren't imported to svn. need to check out the code (and svn add all the files?) No - just do the cvs2svn dump. that does the checkout but it leaves the source in the '.rcs' directory. Must move it from there. The dump leaves darwin_ppc, darwin_x86 there as well. These contain just a short GNUmakedefs file. Diffing them against the version in {{{scripts/darwin_*}}} indicates they are cruft and can be removed. check for things that should have been in RCS and weren't. This reveals some files with {{{,x}}} as their RCS suffix instead of the default {{{,v}}}. {{{etc/archive}}} is not (all) in RCS. Ditto {{{linpack, config, at_friends}}}. {{{linux, linux64, sun4sol, unicos}}} platform-specific directories aren't there but the {{{darwin_}}} ones are. check the programs are the same at the current revision. need to change the chkout, chklog targets need to add handlers of .svn directories The GNUmakedefs defines a 'MIRFTP' variable; the comment about solaris-only is wrong. ---- [wiki:Notes Notes Home]