git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joshua Jensen <jjensen@workspacewhiz.com>
To: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: Coping with the pull-before-you-push model
Date: Wed, 08 Sep 2010 22:47:53 -0600	[thread overview]
Message-ID: <4C8866F9.1040705@workspacewhiz.com> (raw)

  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

             reply	other threads:[~2010-09-09  4:48 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-09  4:47 Joshua Jensen [this message]
2010-09-09 13:06 ` Coping with the pull-before-you-push model Ævar Arnfjörð Bjarmason
2010-09-09 14:43   ` Joshua Jensen
2010-09-10  5:35     ` Jon Seymour
2010-09-10 14:15       ` Jeff King
2010-09-14  4:47         ` Joshua Jensen
2010-09-14  5:24           ` Jeff King
2010-09-14  5:59             ` Avery Pennarun
2010-09-15 21:59             ` David Brown
2010-09-14 12:12           ` Theodore Tso
2010-09-14 15:51             ` Joshua Jensen
2010-09-14 16:24               ` Eugene Sajine
2010-09-14 16:49               ` Ted Ts'o
2010-09-14  4:37       ` Joshua Jensen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C8866F9.1040705@workspacewhiz.com \
    --to=jjensen@workspacewhiz.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).