On May 12, 2015, at 5:51 PM, Scott Robison <sc...@casaderobison.com> wrote:
> 
> the difficult part comes in the sync, since they only deal with artifacts. 
> Once someone clones the repo, they have full access to that copy to do with 
> as they please.

I’m not so sure about that.

I think all that is required is for the access tags to be checked on both 
check-in and on sync.

In the normal case, the tag that marks a branch as “locked” will be cloned down 
to the developer repos, so the local Fossil will have all the info it needs to 
refuse a check-in to the wrong branch.

That does only protect against non-malicious checkins, but if the master repo 
also checks the access tags on sync, it will refuse to accept a black hat’s 
malicious change set.  Problem solved.

Obviously this means the sync protocol has to become aware of these tags and 
such.  Nontrivial, I know, but not impossible.  It would mean that sync has to 
involve something more like what “timeline” does.  It would probably add quite 
a bit of processing overhead to the sync protocol.

The only way I can see that you can get into trouble accidentally is if an 
admin locks a branch on the master repo while you are running with autosync 
disabled or blocked, such as because you are currently without Internet access. 
 You could end up making several changes to a locked branch, then only get the 
sync error later.

That should be an edge case, though.  Good practice would be to avoid locking 
branches that are likely to be under active development.

If you do get into such a state, you could imagine extending the bundle 
mechanism to allow one to extract the changes from the intended branch and 
re-graft them somewhere else in the tree.  The “bundle export --standalone” 
command may help here.

Anyway, I’m still against this feature in principle, because I think it tries 
to invent new mechanisms where they aren’t strictly needed.  But, it’s a fun 
design problem. :)
_______________________________________________
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