It sounds like you're approaching this the wrong way. What property are you actually trying to attain? If you're giving people filesystem access then you're probably not worried about people changing the contents of whatever your repo has in its notion of the "HEAD" state. It sounds more like you're after some kind of audit trail. Is that what you really want?
Instead of forcing people to use some obscure revision control system that they will probably hate, look into better access controls on whatever server your repos are stored on, and log commits. Something like gitolite with logging in the post-receive hook script comes to mind. If you really insist on forcing your users to use some (obscure?) source code management system that they're probably going to hate, even if just because it's not what they're used to in 2014 (hey CVS anybody? :P jk), then fossil sounds like it's what you're looking for. See section 3.8 ("Audit Trail") of http://www.fossil-scm.org/index.html/doc/tip/www/fossil-v-git.wiki Still... with write access to the filesystem the repo is stored on, nothing prevents you from flipping the bits you want to flip. If you really want something immutable, embed your commits in a blockchain or something. I was going to jokingly suggest you create a new cryptocurrency called SourceCoin for this purpose, however upon googling it, it appears one already exists with that name! I'm not even kidding... although it has nothing to do with source code :/ http://www.coinssource.com/sourcecoin/ https://bitcointalk.org/index.php?topic=688494.0