A proposed Subversion vision and roadmap
Posted Apr 3, 2010 22:10 UTC (Sat) by joey
In reply to: A proposed Subversion vision and roadmap
Parent article: A proposed Subversion vision and roadmap
git's pre-receive hook can see the old and new revisions, and from that,
every change that is being made can be examined. When I was implementing untrusted git
commits to ikiwiki, using that to reject pushes that contained any sort
of disallowed change was not that hard to do.
But this is limited to accepting the whole set of changes, or rejecting
everything. Well, I suppose you could have the hook fail and then go commit
the subset of changes that were acceptable. In theory. In practice, if the
user has made many changes, their whole push could fail due to any change
the hook dislikes, and they would then most likely need to rewrite their
history to get a clean set of changes that the hook accepts.
There is another infelicity if the user pushes using git-daemon. (Ie, a
purely anonymous push.) The daemon uses a protocol that did not, last I
checked, allow any error messages printed by the hook to be displayed to
the user. So it can be hard to tell why your push was rejected.
Sorry for the TMI.
to post comments)