On 5/12/2015 9:23 PM, Richard Hipp wrote:
> On 5/12/15, Ron W <ronw.m...@gmail.com> wrote:
>> On the other hand, if [you] require such strict controls,
>> a DVCS, whether Fossil, Git or other, is likely not the tool you need.
> 
> So the only way for the central repo to enforce strict controls is to
> carefully analyze content it receives via "push" and reject
> non-conforming content.  This is difficult to implement and maintain.
> It also leads to a situation where the content in the developers repo
> does not exactly match the central copy because some of the content
> was rejected.  And it seems like inconsistencies between developer
> copies and official copies is something that you should be zealous to
> avoid.

It seems reasonable to me to use (new?) scripting hooks to specify
constraints to be validated by the client on commit and again by the
server on push/pull.  This way the developer is informed as soon as
possible when there is a problem, even during disconnected operation,
and the local repository is not put into a disallowed state.  But if the
commit constraints are somehow compromised (doesn't even have to be
malicious, may simply be due to a policy change that hasn't sync'ed out
yet), the nonconforming artifacts are still not permitted to propagate.

Obviously the latter is a failsafe, not the first line of defense, and
when invoked it means the developer now has to fix the local repository
or face errors on every future sync.  Though this isn't much different
than a user not having push privileges yet making changes to the local
repository anyway.

> That said, I've been toying with ideas of a hybrid
> centralized/distributed VCS that tries to offer the best of both
> worlds - disconnected operation for availability but also close
> coupling to the central repo with the opportunity to enforce policy.

How does the above relate to your thoughts?

> (1) Assume that developers (people with push privilege) are not
> malicious and will usually follow the rules.  (Such assumptions are
> *not* made about users with less privilege, such as random passers-by
> on the internet, obviously.)

This is not a bad assumption to make.  If we can only have part of what
I described above, I'd take the client-side on-commit constraints rather
than the server-side on-push constraints.  This covers everything but
malice and unsynced policy changes, which all should be vanishingly rare
in the kind of professional environment where any of this matters in the
first place.

-- 
Andy Goth | <andrew.m.goth/at/gmail/dot/com>

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to