Re: CFT: merge-recursive in C

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

 



On 6/27/06, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote:

> 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.

> 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.
-
: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]