Setting up Git

  • Hi all,

    I need a bit of help from more experienced Git users... I'd like to setup a Git repository for Console to allow people to hack to their hearts' content.

    Now, read-only access is enabled by default. My idea for read/write access is to enable some people who have contributed significantly to Console to have read/write access.

    However, I would still like to be the only one to commit stuff to the master branch. I don't see if that is possible...

    Of course, an alternative is to create a branch for each read/write user and ask them nicely to commit only to their branch, while I'll be in charge of merging stuff into the master branch and release 'official' builds. Stuff not accepted to master could still be fetched from other users' branches.

    I'd like to hear your ideas about Console Git setup.


    • Kirill


      as far as I understand, it can be done with a help of hooks.
      However, the only other place I saw it's done is (Petr allows anonymous to push to mob branch). And it's still marked as "experimental" feature.

      So, unless you want me (or somebody else) to investigate the problem further (besides my question on msysGit list), I think the safest bet is "to create a branch for each read/write user and ask them nicely to commit only to their branch". Worse comes worse you can (a) reset master to your liking by git push +master; (b) revoke their write privileges.


      • Kirill,

        No need to waste your (or anybody else's) time. I plan to use SF's Git resources and until they implement support for hooks (or any other finer-grained access control mechanism), I think we'll go with the second option.

    • I really appreciate you setting up a Git repo for Console on SF. My suggestion on how to set up the repository is to have a "master" branch that only you have write (commit, push, merge etc.) access to, allow any SF member that you accept as a project member to create his / her own (topic) branches in the Console repo (which you would merge to "master" if you like them), and finally a "mob" branch for anonymous push access from infrequent contributors / non-SF members. E.g. the msysGit project also offers a "mob" branch which I find much more convenient to use than sending patches via email or posting them in the patch tracker.

      BTW, the Git web front-end does not not show any code yet. I thought it should be online (read-only) already? And I think you should disable the CVS / SVN menu items from the "Code" menu (this can be done without actually deleting the repositories) to not confuse users which SCM you are using.


      • The problem is that SF currently only supports read or read/write access control on entire repository.

        I still haven't set up a GIT repository. My plan was to let people test builds 143 and 144, reintegrate that branch back to my SVN trunk and then convert Console SVN repo to GIT. I hope I will find some time to do it this week...