Re: [PATCH 14/14] Build in merge
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 6, 2008, 09:43 UTC
- Message-ID
- <7v4p73gxf6.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <7vej67jt1e.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 32 quoted lines
> You would perhaps define:
>
> #define DEFAULT_TWOHEAD (1<<0)
> #define DEFAULT_OCTOPUS (1<<1)
> #define NO_FAST_FORWARD (1<<2)
> #define NO_TRIVIAL (1<<3)
>
> static struct strategy {
> char *name;
> unsigned attr;
> } all_strategy[] = {
> { "octopus", DEFAULT_OCTOPUS },
> { "ours", (NO_FAST_FORWARD | NO_TRIVIAL) },
> { "recur", NO_TRIVIAL },
> { "recursive", (DEFAULT_TWOHEAD | NO_TRIVIAL) },
> { "resolve", 0 },
> { "stupid", 0 },
> { "subtree", (NO_FAST_FORWARD | NO_TRIVIAL) },
> };
>
> And "unsorted_path_list_lookup()" can now become much more natural,
> perhaps:
>
> static struct strategy *get_strategy(const char *name);
>
> which has a more natural function signature and much better name.
>
> Then, you would keep an array of pointers into all_strategy[] array to
> represent the list of "-s strategy" given by the user:
>
> static struct strategy *use_strategy;
> static int use_strategy_alloc, use_strategy_nr;Sorry, I have an obvious typo here. "use_strategy" will be dynamic array of pointers into all_strategy[] so its definition would be:
static struct strategy **use_strategy;
> and have a function that use s the standard ALLOC_GROW() and friends to > grow this. The function will be named and written more naturally > (i.e. path_list_append_strategy() can go) --- this does not have anything > to do with path_list, but it is about "merge strategy".