Coping with the pull-before-you-push model

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After a deployment of Git on a centralized server at my place of business, the largest amount of grumbling has been with the pull-before-you-push model. Coming from the file-centric Perforce where you need only have latest of just the files you are submitting, the pull-before-you-push model has really been a pain in the neck for a large team.

Even with topic branches being used, merges to master occur frequently. It can really be a frustrating battle to get your merged branch pushed to the central master branch. In the time it took you to pull, test, and push, someone has probably already pushed before you. To cope with this, people will pull, not bother testing, and immediately push their changes. Yes, this could result in build instability, but it is considered better than never being able to make your change live.

(Let's ignore what we should or shouldn't be doing as far as 'development practices'. :) We're solving the problems one step at a time...)

Gerrit provides a compelling model where branches are pushed to the code review server in the form refs/for/master, and the given push will always succeed. Code reviews are performed, someone sets the verified bit, and the change is submitted and merged to master by Gerrit itself in a queued fashion. Unfortunately, its general "requirement" to squash your branch down to a single commit is, possibly, a showstopper. If it treated a branch merge as a group of commits that MUST stay together, that would be perfect.

What other tools are out there that would let users successfully push their branch to the server (without having the HEAD master commit), and the push would be automatically merged to the master branch?

Is there another workflow that is successful for your large(-ish) enterprise team?

Thanks for your insights!

Josh
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]