On 07/18/14 04:27, Adam Thompson wrote:
I'm looking for a distributed VC system where even remote clients with
full(?) write access cannot, or at least would find it fairly difficult
to, alter history?
(1) With DVC it's easy to alter history and it's easy to get the
original state back.
Everybody has a local copy of the repository so if somebody alters
history locally and force pushes it to the central repository, it's
broken for the rest of the developers. So you are just one force push
from another developer away from having your original state back. Your
team needs 100% approval rate to alter history.
AFAIK:
rcs - trivial to change the past (also not distributed, and NFS is
undesirable).
cvs - reasonably easy to change the past, usually.
svn - definitely possible (AFAIK) to change the past.
not distributed
bzr - unknown
hg - unknown
git - unknown
everything else - unknown.
fossil comes to mind, too.
For this application, a file-oriented system would be preferred over a
snapshot-oriented system like git.
git uses files. They are named after their checksums and they are
compressed.
what do you mean with file-oriented vs. snapshot-oriented
I'm trying to combine (soft) WORM-like properties with the benefits of a
version control system. Does not need to be utterly secure, merely
needs to be "good enough" to deter both script-kiddie level attackers
and inebriated sysadmins.
CVS would be ideal except that access control is AFAIK basically ternary
(none,read,write).
WORM as in Write Once Read Many... Well DVC have the notion of an directed
acyclic graph with is protected by hashsums against alteration,
so (1) comes to mind.
Should ideally be in packages or ports, obviously. We have a bunch of
version control systems in ports that I've never even heard of before!
Suggestions on which one I should learn how to configure?
git is the hip thing right now and you can do _everything_ with it, but
be aware it has more knobs than a Boeing 777.
But maybe all you need is CVS (and a plan), who knows?