threads / discuss / 44713

Is there a way to have local changes in a branch 'bake' while working in different branches?

Subject: Is there a way to have local changes in a branch 'bake' while working in different branches?

## tl;dr

4 messages between Dec 15, 2016 and Dec 16, 2016.

replies: 3people: 4as markdown or json

Larry Minton· Dec 15, 2016, 20:14 UTC · lore
Lars Schneider recommended I ask you this question.
My question:

Let's say I have a code change that I want to 'bake' for a while locally, just to make sure some edge case doesn't pop up while I am working on other things.  Is there any practical way of doing that? I could constantly merge that 'bake me' branch into other branches as I work on them and then remove those changes from the branches before sending them out for code review, but sooner or later pretty much guaranteed to screw that up....

His response:
Good question. Your merging idea would work but I agree it might be cumbersome. In this situation I keep modified files in my tree. That would work for you too, but this would be inconvenient if you have many changed files. I wonder how the Git core guys manage this kind of situation.
Thanks,

Larry Minton 3ds Max Core team LiveDesign Group Media & Entertainment, Education Experiences, Impact (MEI)

Aaron Schrab· Dec 15, 2016, 22:44 UTC · re: Larry Minton · lore

Re: Is there a way to have local changes in a branch 'bake' while working in different branches?

At 20:14 +0000 15 Dec 2016, Larry Minton <larry.minton@autodesk.com> wrote:
Show 7 quoted lines
>Let's say I have a code change that I want to 'bake' for a while 
>locally, just to make sure some edge case doesn't pop up while I am 
>working on other things.  Is there any practical way of doing that?
>I could constantly merge that 'bake me' branch into other branches as I 
>work on them and then remove those changes from the branches before 
>sending them out for code review, but sooner or later pretty much 
>guaranteed to screw that up....
That sounds like the best way to me. How do you envision screwing it up?

If you anticipate messing up while removing the changes, that's only likely if there are conflicts and any other strategy is likely to be worse there.

If you suspect you'll forget to remove them before sending for code review there may be ways to help with that. Easiest you can add a large notice in the commit message(s) and/or comments; this may not prevent going for review but reviewers should catch it pretty quickly. To help prevent it even getting that far you may be able to add a pre-push hook to prevent such commits from being pushed to somewhere other than a private fork or a branch with a name that clearly indicates that it contains experimental code.

Junio C Hamano· Dec 16, 2016, 00:07 UTC · re: Larry Minton · lore

Re: Is there a way to have local changes in a branch 'bake' while working in different branches?

Larry Minton <larry.minton@autodesk.com> writes:
Show 8 quoted lines
> Lars Schneider recommended I ask you this question.
>
> My question:
>
> Let's say I have a code change that I want to 'bake' for a while
> locally, just to make sure some edge case doesn't pop up while I
> am working on other things. Is there any practical way of doing
> that?

That sounds exactly like what I have been doing for the past several years in public around here ;-)

John Keeping· Dec 16, 2016, 15:22 UTC · re: Larry Minton · lore

Re: Is there a way to have local changes in a branch 'bake' while working in different branches?

On Thu, Dec 15, 2016 at 08:14:58PM +0000, Larry Minton wrote:
Show 9 quoted lines
> My question:
> 
> Let's say I have a code change that I want to 'bake' for a while
> locally, just to make sure some edge case doesn't pop up while I am
> working on other things.  Is there any practical way of doing that?  I
> could constantly merge that 'bake me' branch into other branches as I
> work on them and then remove those changes from the branches before
> sending them out for code review, but sooner or later pretty much
> guaranteed to screw that up....

I wrote a tool [1] a while ago to manage integration branches so I use a personal integration branch to pull together various in-progress branches.

It means you can keep each topic in its own branch but work/test on top of a unified branch by running:

	git integration --rebuild my-integration-branch
whenever you change one of the topic branches.

I also use the instruction sheet to keep track of abandoned topics that I might want to go back to but which are currently in a broken state, you can see an example of that in my CGit integration branch [2].

[1] http://johnkeeping.github.io/git-integration/ [2] https://github.com/johnkeeping/cgit/blob/d01ce31ed3dfa9b05ef971464da2af5b9d6f2756/GIT-INTEGRATION-INSN

← back to recent threads