Re: A failing attempt to use Git in a centralized environment
- From
Max Kirillov <max@max630.net>
- Date
- May 2, 2014, 20:56 UTC
- Message-ID
- <20140502205648.GA5188@wheezy.local>
- In-Reply-To
- <4ay6w9i74cygt6ii1b0db7wg.1398433713382@email.android.com>
Hi.
> Problem #6: push - reject - pull - push sequence sometimes transforms > into a loop with several iterations and doesn't add happiness.
As far as I undestand, this is the most annoying thing. In git (like other distributed systems), you cannot push your changes unless you merge them with a very last version of the whole repository.
I think the only good way to use git in a team with more than a very few persons is to switch to pull-request based workflow, which does not require users to update to push their changes. Then their changes are merged to master either by a human integrator or by a tool (gitorious, github, stash, gerrit etc.).
I think it can be even as little as 'update' hook, thich is triggered when user pushes to branch like 'inbox/bob' and tries to merge the branch to master. The only issue I can see with it is that does not provide a way to specify meaningful merge message.
Btw, then the problem#2 is not a problem, because the merge done by user does not yet produce the commit to be added to master, but just prepares more recent version - to resolves conflicts or check how the changes work against newer codebase. One more merge is still performed by the server, and parent order is correct:
master =====+===+======2
\ \ /
your copy +===1==+-- Max