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.
>