Heiko Voigt schrieb: > How about combining my first approach with the second idea? Teach git > different default sets of hooks. So something like: > > git init --workflow="topic-branches" > > would initialize and install a certain set of hooks. > > Implement the possibility to propagate this setting to the server, by > using a config variable or similar. This way only secure hooks will > automatically be inherited and the user has the benefit of a more > specific workflow support. So I have been thinking about an actual implementation lately and here are some more specifics of a possible implementation: Add a new configuration file .gitconfig tracked in the working copy next to .gitignore and such. The order would then be: /etc/gitconfig ~/.gitconfig $project/.gitconfig $project/.git/config Do not allow all options in such a file but use a specific namespace for whitelisting them e.g.: project.workflow Add hooks that are activated by default and use these configuration variables to tune their behaviour. Example: [ "$(git config project.workflow)" = "topic-branches" ] && topic_branches=1 # if we are in topic mode work should always be done on a feature branch if topic_branches && git branch | grep "^* master" > /dev/null; then echo "No commits on master, please !" exit 1 fi Such distributable options could also transport other values like the description for gitweb. What do you think? cheers Heiko -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html