Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Sep 2007 00:10:02 +0300
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        agus.262@gmail.com
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Which versioning system is the simplest to use??
Message-ID:  <20070911211002.GB1698@kobe.laptop>
In-Reply-To: <fda61bb50709111141h3dc9ae6dxc011c485eea83784@mail.gmail.com>
References:  <fda61bb50709111141h3dc9ae6dxc011c485eea83784@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2007-09-11 15:41, Agus <agus.262@gmail.com> wrote:
> Hi List,
> I am doing a little bit of security and log watching with sec.pl and
> was trying to mantain de secconf files organized...
> So whenever one is changed it keeps track of the change and can rollback....
>
> O that is what i am going to use de versioning sytem for...
>
> I will appreciate your tips very much....

This is a question that borders a "religious issue".

You are going to get at least as many answers as the people you ask,
since there are people (like me) who like tinkering with version control
and revision control systems and have at least a couple of "preferred"
ones, depending on the task.

There are at least two different version-control systems in the "base
system" of FreeBSD:

    RCS     A file-based system, which doesn't really require any
            complicated server setup, rcs(1) can cover many of the
            simple needs one may have when tracking changes to a bunch
            of files in a directory.

    CVS     A file-based system too, but this one sits on top of the
            basic rcs(1) functionality and implements several features
	    which are more advanced, i.e. tagging entire file trees,
	    branching entire file trees, 'modules' as file collections,
	    it has a networked access method, and can be tunnelled
	    through rsh(1) or ssh(1) for remote access to the same
	    centralized 'repository' of files.

The RCS and CVS systems have started showing their age a bit, but they
are trusted good old companions, there is a _GREAT_ deal of printed and
online documentation for their setup and every day operation, there are
documented 'hook' mechanisms to extend them (the FreeBSD Project uses
its own collection of CVS repository management scripts, for example),
and in general they are fairly good choises for small to medium-sized
projects.

If you are interested for more _modern_ systems, there are several of
those in the FreeBSD Ports collection too.  Subversion, Git, Mercurial,
Darcs and Bazaar are just a few to name.

Every one of those offers its own set of features, it supports several
development models, and can be extended in its own special way.

Many of them (actually _all_ those I mentioned above) are based on
"changesets" instead of per-file history, so it is a lot easier to
branch experimental versions of your source tree, or pull out a single
commit which affects multiple files in one go.

At least some of them support even more advanced features like "merge
tracking".

Some of the newer ones are even "distributed", which means they support
offline work, clean and fast branching, merging from any "related" tree,
and other cool stuff.  I'm personally a fan of this category, because
they let me work almost anywhere and in any way I like with my source
trees, but that's more a personal preference than a panakea.

There are a ton of features, and several dozens of systems from which
you can choose.  It all really boils down to...

    How much time do you have to experiment a bit with the
    various alternatives which FreeBSD supports?

> have a nice day/night...

Thank you sir, have a nice one too :)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070911211002.GB1698>