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

Re: interactive rebase results across shared histories

From
SSeb <spluque@gmail.com>
Date
Feb 26, 2016, 21:12 UTC
Message-ID
<87povj41m9.fsf@gmail.com>
In-Reply-To
<CAMPXz=on8ONkzDYWEEGFqqKhRoBb9zYBqmYDBsKWagdwFRPRdA@mail.gmail.com>

On Fri, 26 Feb 2016 23:38:38 +1100, David <bouncingcats@gmail.com> wrote:

> On 24 February 2016 at 10:05, Seb <spluque@gmail.com> wrote:
>> On Tue, 23 Feb 2016 23:57:06 +0100,
>> Moritz Neeb <lists@moritzneeb.de> wrote:
>> [...]
Show 5 quoted lines
>>>> OK, I've followed this advice and looked at the dependency graphs
>>>> in gitk before and after rebasing, I've managed to obtain what I
>>>> was after.  The repository now has two branches: master and topic.
>>>> However, Gitk reveals a problem with a string of commits that are
>>>> not part of any branch:
>>>> A---B---H---I (master) \ C---D---E (loose string of commits) \
>>>> D'---E'---F---G (topic)
>>>> How do I remove these loose commits (C, D, E)?
>>> what you might be after is "git gc". But I never used it, it was not
>>> neccesary for me. I would let the automatic garbage collection drop
>>> my dangling commits. It's safer - who knows when you will still want
>>> to restore your recent "loose string of commits".
>>> How exactly are the loose commits causing trouble?
>> Sure enough, these dangling commits were removed automatically
>> without any intervention.  All is good.
> This discussion could end there without problem. But if you want to
> understand a little more thoroughly, read on ...

Thanks David, I appreciate the insight. Indeed, I've learnt a lot over the last few days with help in this thread as I confronted a lurking problem after many years neglecting it. Briefly, long ago I was developing a project in RCS, then on CVS and SVN, until some years ago I imported it into git via cvs2svn. I had turned a blind eye to a bit of mess up to the very early releases, likely due to my inexperience but also differences between VCS.

After cleaning up all the mess, I've ended up with a long master branch, and a series of earlier commits that are not reachable from master. Fortunately, the tags have kept them alive. This is the scenario simplified:

A---C---D(tag2)                 loose commits (not on any branch)
 \
  B(tag1)
E---F---G---H---*               (master)

I could put the "loose" (but tagged) commits on a branch at "tag2", but I hate that "tag1" shows as a twig there... It would be nice to have all the history reachable from master. So two questions I'm working on right now: 1) how to bring "tag1" into the "tag2" chain of commits, and then 2) how to tie it all together into master so that it reads linearly.

-- 
Seb
Previous: DavidNext: Stepan Kasal
Message 12 of 13 in “interactive rebase results across shared histories”
  1. SebFeb 20, 2016
  2. Moritz NeebFeb 21, 2016
  3. SebFeb 21, 2016
  4. Eric SunshineFeb 21, 2016
  5. SebFeb 22, 2016
  6. DavidFeb 22, 2016
  7. SebFeb 23, 2016
  8. Moritz NeebFeb 23, 2016
  9. Kevin DaudtFeb 23, 2016
  10. SebFeb 23, 2016
  11. DavidFeb 26, 2016
  12. SebFeb 26, 2016
  13. Stepan KasalFeb 26, 2016

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.