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

Re: CFT: merge-recursive in C

From
Alex Riesen <raa.lkml@gmail.com>
Date
Jun 27, 2006, 08:58 UTC
Message-ID
<81b0412b0606270158i16ebee20me81ca2b9fa71db5c@mail.gmail.com>
In-Reply-To
<Pine.LNX.4.63.0606270936520.29667@wbgn013.biozentrum.uni-wuerzburg.de>
On 6/27/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 5 quoted lines
>
> > I finally got pis^Witched enough by my platform at work and decided
> > to start the effort of converting Fredriks git-merge-recursive to C.
>
> Darn. I was working on the same thing since a few days.
I didn't know :)
> - have you considered using run-command() instead of system()?
No. What run-program?
> - in setup_index(), you set GIT_INDEX_FILE, but I do not think that the
>   rest of git picks up on it. environment.cc:get_index_file() checks if
>   the variable was set already, but not if it changed.
Not even sure it's needed. Leftover from conversion
> - You work with linked lists all the time. This is slow, especially for
>   the checks, if a file/directory is already there. Sorted lists would be
>   way faster there. Since you encapsulated that, it is no problem to
>   change that later (before inclusion).
Right, that's why it is mostly encapsulated.
> - is not "struct commit_list" more appropriate than "struct graph"?
Not even properly considered it yet. It probably is.
> - I always wondered why merge-recursive did not call merge-base, but did
>   its own thing. Hmm?
No idea yet.
Show 11 quoted lines
> > To my deep disappointment, it didn't work out as good as I hoped: one
> > program I see most often and for longest time in the process list
> > (git-diff-tree) is a too complex thing to be put directly into
> > merge-recursive.c, so any help in this direction will be greatly
> > appreciated.
>
> Maybe something like this (ripped from my fragment of merge-recursive.c):
>
> static struct container *get_renames(struct tree *tree,
>                 struct tree *o, struct tree *a, struct tree *b,
>                 struct container *cache_entries)
...
> It is not tested, evidently, since I did not get the merge-base code
> integrated yet. But it should give you an idea.
>

Thanks! It was something I was getting at after Junio explained it. Will have to wait until after work.

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 15 of 27 in “CFT: merge-recursive in C”
  1. Alex RiesenJun 26, 2006
  2. CFT: merge-recursive in C (test updates)Alex Riesen, Jun 26, 2006
  3. Linus TorvaldsJun 26, 2006
  4. Linus TorvaldsJun 27, 2006
  5. Alex RiesenJun 27, 2006
  6. Junio C HamanoJun 27, 2006
  7. Alex RiesenJun 27, 2006
  8. Junio C HamanoJun 27, 2006
  9. Alex RiesenJun 27, 2006
  10. Notes on diffcore APIJunio C Hamano, Jun 27, 2006
  11. Alex RiesenJun 27, 2006
  12. Junio C HamanoJun 27, 2006
  13. Johannes SchindelinJun 28, 2006
  14. Johannes SchindelinJun 27, 2006
  15. Alex RiesenJun 27, 2006
  16. Johannes SchindelinJun 27, 2006
  17. Alex RiesenJun 27, 2006
  18. Junio C HamanoJun 27, 2006
  19. Alex RiesenJun 27, 2006
  20. Johannes SchindelinJun 27, 2006
  21. Alex RiesenJun 27, 2006
  22. Uwe ZeisbergerJun 28, 2006
  23. Alex RiesenJun 28, 2006
  24. Junio C HamanoJun 28, 2006
  25. Christopher FaylorJun 28, 2006
  26. Alex RiesenJun 29, 2006
  27. Christopher FaylorJun 29, 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.