git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Two newbie question: "dead" branches and merging after cherry-pick.

From
RGRomano Giannetti <romanol@upcomillas.es>
Date
Jan 30, 2006, 11:44 UTC
Message-ID
<20060130114444.GA17093@pern.dea.icai.upcomillas.es>

First of all, 1000 thanks and please forgive me for the broken thread, I was not subscribed to the list before so I did a copy-and-paste from the web archive.

Junio C. Hamano wrote:
Show 13 quoted lines
> 
> You are done with what you did in the branch for now, but you
> have not merged the work to your day-to-day development "master"
> for some reason.  In the meantime you would want to switch to
> other topic branches to work on other topics, and while working
> on them you do not want to "git branch" and "git show-branch" to
> show the topic you are done with but not merged yet.  Later you
> would want to come back to it to do some interesting stuff with
> it (maybe finally merge into "master", or format-patch to send
> upstream).  Is that what is happening here?
> If so, I would have chosen "postponed" not "dead" to describe
> the situation but you said "dead" and that is why I am wondering
> if I am getting you correctly.

Yes, you have understood perfectly. I called them "dead" because really I do not think to come back to them ever, but I want to maintain that as "old story", something of the style "that was an error, store it so that you will never fall in it again".

Show 6 quoted lines
> 
> Yes.  You have the tag under .git/refs which points at the tip
> of that postponed branch head, so the development trail will not
> be lost.  When you are done with other topics and would want to
> come back to that topic again, you could do this:
> 
Show 5 quoted lines
>     $ git tag hold/jc/gitlink jc/link ;# copy it to tags/
>        $ git branch -D jc/link             ;# delete it from heads/
> 
> Now "git branch" would not show it, but "gitk --all" still would.
>
What I have done (and it seems to work perfectly) is 
    git checkout master
    mkdir .git/refs/olds 
    mv .git/heads/test-bill-idea .git/olds
and it seems to work ok. Thanks! 
    
Show 31 quoted lines
>         - Easier: suppose I cheery-picked "abababab" from branch "testing"
>         to master branch. What will happen if later I decide to merge
>         all "testing" to master branch? I will have a merge conflict (trying
>         to apply two times the same fix) or not? 
> 
> This is easy to experiment so I'd suggest you to try it and tell
> us what you see, like this:
> 
>   $ git checkout -b test-merge-throwaway master
>        $ git cherry-pick abababab
>        $ ... play with it, maybe making a couple of commits
>        $ git pull . testing
> 
> I would not be surprised if this resolves cleanly. If abababab
> is the only thing that touches the set of paths it touches,
> other than what are in "testing" and what you did since
> "testing" forked from "master", it is likely that the merge
> would resolve cleanly.
> 
> Otherwise you would likely to see conflicts --- in which case
> you may want to suggest if/how we can reduce it.  "cherry-pick"
> without -r drops a hint of which commit was picked in the commit
> log so it _might_ be a good idea to teach git to optionally take
> that information into account while doing the merge.  I dunno.
> 
> Once you are done experimenting, you can come back to master and
> delete the test-merge-throwaway branch:
> 
>       $ git checkout master
>        $ git branch -D test-merge-throwaway
> 

Thanks. I will play a bit with it. I sometime have a bit of fear to not being able to come back to a good state. I will do my homework and study a bit more git checkout, branch and reset (this latter gives me a bit of headheache last time... ;-) ).

Thanks a lot. 
          
-- 
Romano Giannetti             -  Univ. Pontificia Comillas (Madrid, Spain)
Electronic Engineer - phone +34 915 422 800 ext 2416  fax +34 915 596 569
http://www.dea.icai.upcomillas.es/romano/
Message 1 of 1 in “Re: Two newbie question: "dead" branches and merging after cherry-pick.”
  1. Romano GiannettiJan 30, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.