lilypond-devel
[Top][All Lists]
Advanced

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

Re: Issue 2100: Explanation of branches for CG (issue 5539062)


From: Phil Holmes
Subject: Re: Issue 2100: Explanation of branches for CG (issue 5539062)
Date: Mon, 16 Jan 2012 16:26:04 -0000

----- Original Message ----- From: <address@hidden> To: <address@hidden>; <address@hidden>; <address@hidden>; <address@hidden>; <address@hidden>
Cc: <address@hidden>; <address@hidden>
Sent: Monday, January 16, 2012 4:16 PM
Subject: Re: Issue 2100: Explanation of branches for CG (issue 5539062)


On 2012/01/16 07:54:41, Graham Percival wrote:
On Sun, Jan 15, 2012 at 11:12:49PM +0000,
mailto:address@hidden wrote:
> At this point, you have pushed dev/cg to staging without polluting
> dev/cg with staging.  And you can continue to rebase dev/cg with
master
> as needed/desired.  You never have to worry about accidentally
putting
> some reverted commit back into staging.  It's completely foolproof.

Having just spent half an hour fixing up my lilygit.tcl branch, I have
personally validated the benefit of the approach now reflected in this
patch.

I will *never* again rebase a working branch to origin/staging.  In
fact, I will never again have a local branch staging.

Instead, I will only rebase my working branches to origin/master, and do
a detached head rebase to origin/staging for pushing purposes.  I assume
this will save me time periodically.  And although the time saved may
not be huge, the aggravation saved will  be.

Thanks for getting me to work on this, Graham.  The time has now been
all worth it.


http://codereview.appspot.com/5539062/

Based on my normal fear of git, I always adopt the same routine for pushing, which I derived from David's excellent guidance.:

Before you start thinking about pushing a patch to staging, you
need to ensure you have the correct local branches up to date.
One time only, edit the .git/config file to look like this (there
will be other lines and sections, don't touch these):

@example
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://git.sv.gnu.org/srv/git/lilypond.git
@end example

Now, each time you want to make a change and push to staging, do
the following:

@example
git fetch # (to be sure you have the current version of staging)
git checkout origin/staging
# ... make and commit your change ... e.g. with git am patchname
git push origin HEAD:staging
@end example

Note that this does not work well for complex changes on other
branches - if you're doing this you'll need to have better git
understanding.  However, "make your change" could include applying
a patch previously you've made.



--
Phil Holmes





reply via email to

[Prev in Thread] Current Thread [Next in Thread]