from a pragmatic point of view, i like CVS more than svn. Don't even mention git or mercurial. don't know about the latter, but with git you get the kitchen sink. the normal "git checkout" gives you a repo which contains each and every version, which in my view is nice if you travel a lot at 35k (but even then, they promise us internet up there) but why bloat the drive so much, even if disk space is cheap... Can you imagine how large the kernel version of git
now will be....
svn is ok, but i like cvs almost just as much because you get to see the files. in cvs it's easy to add modules (new directories with projects), whereas in svn if you add a new project - even if unrelated - it will share in the revision
numbers, and i found that annoying and confusing.
cvs does have some annoying drawbacks, which is why svn was invented. things like renaming files, moving them around in the hierarchy... but cvs is very minimal (just the added CVS/ directory in each subdirectory with very
understandable files in there :-)

Since we're in 'retro mode' now, and since cvs was derived from rcs, I have a shell script called "save" which keeps a versioned RCS repo from files in that directory. Great for times you just want to back it up and don't want to bother with someplace else, the "here" is just sometimes a great place to store it. It's so short, i'll embed it here. rcs has a quircky read-only mode on checkout, so you have to work around it to keep the file in r/w mode:

caveat:   i wrote this sometime in the late 80s.....

having said that, I use cvs and svn mostly, and in some small projects which are not (yet) in cvs control, still wind up using that 'RCS based save' script as listed below. 20+ years and going strong.



peter


#! /bin/csh -f
#
# put RCS files with original timestamp, but keep a local & writable version
#    - pjt

if ($#argv == 0) then
  echo "Usage: $0 file(s)"
  echo "  Backup program using RCS:"
  echo "  Check file(s) into an RCS directory/link with current timestamp,"
  echo "  and make them available again with lock (ci -d; co -M -l)"
  exit 0
endif

if (! -e RCS) then
# could also cheat and just create the directory, but i opt to warn and exit
  echo RCS directory or link does not exist yet, create one
  exit 0
endif

foreach file ($*)
  if (-e $file) then
    ci -t-none -d -q $file
    co -M -l -q $file
  else
    echo "### Warning: skipping non-existent file: $file"
  endif
end



On 06/15/2010 01:12 PM, Nick Cummings wrote:
Hi Rob,

Thanks for the advice. I'm a scientist who occasionally programs, rather than a professional programmer, so I'm not sure that future opensource projects are a significant consideration. As I said, ideally I'd like to find a system that I could use for collaboration with others who are a) on windows and b) not necessarily as comfortable with computers. I don't really pretend to know, but what little I've heard suggests that git probably doesn't do so well on either of those points.

Thanks,

Nick

On Tue, Jun 15, 2010 at 12:54 PM, Rob Sherwood <rob.sherw...@stanford.edu <mailto:rob.sherw...@stanford.edu>> wrote:

    Quick thoughts: your requirements are the bread and butter of any SCM,
    so I don't think you could go wrong with any of them.   IMHO, it just
    comes down to usability and personal preference.

    SVN is probably the easiest to get your feet wet; git is what the cool
    kids are using (git doesn't assume a single centralized repository
    like other SCMs).

    If you don't mind the additional learning curve, I would actually
    recommend jumping to git.  Yes, it's over kill for your latex, but if
    you end up doing work in opensource projects, I think it's becoming
    the SCM of choice and you might find yourself happier to know it.

    $0.02

    - Rob
    .



    On Tue, Jun 15, 2010 at 9:17 AM, Nick Cummings <ni...@umd.edu
    <mailto:ni...@umd.edu>> wrote:
    > I'm looking for a SCM (or revision control or version control,
    whatever you
    > call it) system to use to keep track of documents (mostly LaTeX
    and plain
    > text at the moment, maybe some HTML).  Currently I have a
    directory that
    > contains the documents for several ongoing projects.  Some of these
    > documents may be updated once every few months, while others are
    updated
    > daily.  I periodically manually save a backup copy of the
    then-current state
    > and give it a "version number" in the file name.  I do work on
    two desktops
    > and a netbook, and I use Unison to synchronize all of my
    documents (both
    > desktops run an ssh server), so that I can move with little
    trouble to
    > another machine and keep working as if I had not moved.  I'm
    hoping that
    > using SCM software will help me keep track of the revisions in a
    more
    > reliable way, but I will also need to continue to be able to easily
    > synchronize things between my various machines.  I have no
    experience at all
    > with SCM software, only a vague idea of what it does, but I
    assume many
    > people on this list have lots of experience using these systems
    (for source
    > code), so I'm hoping to get your input.
    >
    > I talked to my brother (who is a programmer) about it, and he highly
    > recommended Mercurial.  I went through a tutorial and it seemed
    reasonably
    > easy to use and understand.  I know Subversion is pretty
    established and
    > widely used, so I've been considering that too.  I don't have enough
    > knowledge to have a strong opinion on how these compare,
    although the
    > ability to to commit revisions while off-line sounds useful for
    working on
    > my netbook.
    >
    > If I use Mercurial, it looks to me like the best bet is either
    remotely
    > mounting directories on other machines with sshfs to push/pull
    between
    > repositories or have a central repository somewhere on a webdav
    share that
> all my machines would interact with (or maybe BitBucket). Perhaps there is
    > a better way.  I'm also not sure whether it's better to have one big
    > repository with all my documents or to have a separate one for each
    > document.  Separate repositories for different projects would
    seem to make
    > sense, but then I'm worried that I'll then be saddled with
    trying to make
    > sure all the various repositories on the various machines have
    the most
    > recent version.  Maybe I could still use Unison, as long as I
    never try to
    > push/pull between the various copies of the repository.
    >
    > As a secondary goal, I'd really like to use a SCM system for
    collaboration
    > on papers.  For that purpose I'd like to find one that's
    reasonably easy to
    > use on Windows for someone who is maybe not that comfortable
    with the
    > command line, editing text config files, etc. (which is fine for
    me but
    > probably not everyone).  I have no knowledge of these systems
    nor have I
    > used Windows much in years, so I'm clueless here.  What little
    I've heard
    > makes it sound like TortoiseSVN and TortoiseHG make things not
    too difficult
    > on Windows.  I have no idea which version control system will
    generally be
    > more intuitive to people; I suppose it's hard to say.  And then
    there's the
    > question of the best way to exchange changes, either by a repo
    on a server
    > (behind a password or similar for privacy)  or some other way.
    >
    > Being a total newbie here, your advice is greatly appreciated.
    >



Reply via email to