Changes between Initial Version and Version 1 of Notes/SubversionAndRCS


Ignore:
Timestamp:
02/08/08 13:51:31 (16 years ago)
Author:
VincentMcIntyre
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Notes/SubversionAndRCS

    v1 v1  
     1= Notes/SubversionAndRCS =
     2
     3MarkCalabretta put together a list of points of difficulty he sees with migrating from RCS.
     4
     51) The one-to-one association between a file and its RCS version
     6   (,v) file is used by the Miriad makefiles to define rules that
     7   keep the plain-text sources up-to-date automatically.  These
     8   rules are used explicitly when rebuilding the system and
     9   implicitly in the dependency analysis.  For example, an included
     10   header file (.h) is checked out automatically if necessary, even
     11   if it resides in a different directory, simply by appearing as a
     12   dependency of the target.  Without a one-to-one association, there
     13   is no way to implement these rules in svn.
     14
     152) There is no equivalent for gmake's inbuilt rule to update the
     16   makefile and no way to implement it short of hacking gmake itself
     17   because it must work in the absence of any makefile.
     18
     193) Per-file versioning in RCS has been replaced by global versioning
     20   in svn which, for Miriad, involves a loss of historical information.
     21   In contrast, the effect of global versioning is available in RCS via
     22   the '-d' option specifying a date.
     23
     244) Version dates for revisions 0.0 to 1.0 in the svn repository are
     25   incorrect, apparently because svn and/or cvs2svn appear to require
     26   that increasing global version numbers correspond to increasing
     27   times.  RCS does not have this limitation.
     28
     295) Lack of per-file versioning will make it inconvenient to perform
     30   the common task of determining at what revision a particular change
     31   to a source file was made.  Currently I do a binary chop on the RCS
     32   version number for the file, but with svn, changes to a file are
     33   tagged with non-consecutive global version numbers.
     34
     356) Presumably because of global versioning, 'svn log' provides no
     36   indication of the extent of changes made to a file at each
     37   revision.  'rlog' does and it's a handy feature that I often use.
     38
     397) In svn, $Id$ tags must be enabled explicitly for each individual
     40   file that needs it.  Bizarrely, svn allows this to be set up
     41   automatically via auto-props in config files on a per-user or
     42   per-host basis, but not for the repository itself.  This means
     43   that manual intervention is required on a per-file, per-user, or
     44   per-host basis.
     45
     468) The $Id$ tags are not replaced in source files visible on the web
     47   site e.g. http://svn.atnf.csiro.au/miriad/trunk/prog/clean.for
     48
     499) Currently the Miriad RCS repository co-resides with Miriad in the
     50   same directory tree and the whole lot can easily be propagated via
     51   rsync.  In contrast, with svn they are separated, on different
     52   machines even.
     53
     5410) It's not possible to provide third-parties with a copy of the RCS
     55   version files as is now done from the ftp area.  E.g. Peter Teuben
     56   uses them to track my changes.
     57
     5811) In the same vein, the Miriad RCS repository is currently cached at
     59   the observatories (and on my computer at home) and revision history
     60   can be consulted even if the link is down (or non-existent).
     61
     6212) Where have the defunct RCS version files gone?  I.e. those with a
     63    ',x' suffix.
     64
     6513) svn's internal format is undocumented and inscrutible.  In
     66   contrast, RCS's version information is stored in a well-defined
     67   and well-documented format ('man rcsfile').  It is readily
     68   understandable and amenable to external manipulation and that has
     69   proved invaluable in the past.
     70
     7114) I am particularly concerned that version information stored in
     72   svn's internal format will not be transferable to another revision
     73   control system should that ever prove desirable - remember how
     74   "wonderful" CVS used to be when it was the latest shiny pebble?
     75   (But at least CVS is based on the RCS version format.)
     76
     7715) Ownership of the Miriad repository has been transferred from
     78   mirmgr to www-data and presumably so will administration of the
     79   repository.  This places an extra, unwanted layer of bureaucracy
     80   between me and the work I have to do.  (Alternatively, I'm quite
     81   happy to let you have it all back!)  For example, Malte was away
     82   on Tuesday so I had to wait till Wednesday to have an svn account
     83   created.  Also, it wouldn't let me do a checkout anonymously.
     84
     85
     86[wiki:Notes Notes Home]