As it has been discussed before, our support for triangular workflows is
lacking, and the following patch series aims to improve that situation.

We have the concept of upstream branch (e.g. 'origin/master') which is to where
our topic branches eventually should be merged to, so it makes sense that
'git rebase' uses that as the destination, but most people would not push to
such upstream branch, they would push to a publish branch
(e.g.  'github/feature-a'). We could set our upstream to the place we push, and
'git push' would be able to use that as default, and 'git branch --vv' would
show how ahead/behind we are in comparisson to that branch, but then 'git
rebase' (or 'git merge') would be using the wrong branch.

This patch series adds:

 1) git push --set-publish
 2) git branch --set-publish
 3) git branch -vv # uses and shows the publish branch when configured

After this, it becomes much easier to track branches in a triangular workflow.

  master          e230c56 [origin/master, gh/master] Git 1.8.4
* fc/publish      0a105fd [master, gh/fc/publish: ahead 1] branch: display 
publish branch
  fc/branch/fast  177dcad [master, gh/fc/branch/fast] branch: reorganize 
verbose options
  fc/trivial      f289b9a [master: ahead 7] branch: trivial style fix
  fc/leaks        d101af4 [master: ahead 2] read-cache: plug a possible leak
  stable          e230c56 Git 1.8.4

Felipe Contreras (8):
  branch: trivial cleanup
  branch: reorganize verbose options
  push: trivial reorganization
  Add concept of 'publish' branch
  branch: allow configuring the publish branch
  t: branch add publish branch tests
  push: add --set-publish option
  branch: display publish branch

 Documentation/git-branch.txt |  11 +++++
 Documentation/git-push.txt   |   9 +++-
 branch.c                     |  43 +++++++++++++++++
 branch.h                     |   2 +
 builtin/branch.c             | 107 +++++++++++++++++++++++++++++++++++++------
 builtin/push.c               |  52 +++++++++++++--------
 remote.c                     |  34 +++++++++++---
 remote.h                     |   4 ++
 t/            |  76 ++++++++++++++++++++++++++++++
 t/      |  70 ++++++++++++++++++++++++++++
 t/     |   8 ++--
 transport.c                  |  28 +++++++----
 transport.h                  |   1 +
 13 files changed, 393 insertions(+), 52 deletions(-)
 create mode 100755 t/


To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to