Для получения GIMP 2.8 на Lucid 10.04.4 взглянули на это:
Я вижу здесь патч , представляющий опцию терпения в стратегии рекурсивного слияния, основанной на Git1.7.2.2, но я не вижу его ни в одном из последующих примечаний к выпуску.
Тем не менее, алгоритм сравнения терпения был представлен с 2009 года, и он подробно описан здесь .
> grep -i patience *.c
diff.c: else if (!strcmp(arg, "--patience"))
diff.c: DIFF_XDL_SET(options, PATIENCE_DIFF);
merge-recursive.c: else if (!strcmp(s, "patience"))
merge-recursive.c: o->xdl_opts |= XDF_PATIENCE_DIFF;
Команда слияния должна понимать эту опцию ... но эта функция, кажется, никогда не вызывается (нигде в merge-recursive.c
или в любом другом файле *.c
!):
int parse_merge_opt(struct merge_options *o, const char *s)
{
if (!s || !*s)
return -1;
if (!strcmp(s, "ours"))
o->recursive_variant = MERGE_RECURSIVE_OURS;
else if (!strcmp(s, "theirs"))
o->recursive_variant = MERGE_RECURSIVE_THEIRS;
else if (!strcmp(s, "subtree"))
o->subtree_shift = "";
else if (!prefixcmp(s, "subtree="))
o->subtree_shift = s + strlen("subtree=");
else if (!strcmp(s, "patience"))
o->xdl_opts |= XDF_PATIENCE_DIFF;
else if (!strcmp(s, "ignore-space-change"))
o->xdl_opts |= XDF_IGNORE_WHITESPACE_CHANGE;
else if (!strcmp(s, "ignore-all-space"))
o->xdl_opts |= XDF_IGNORE_WHITESPACE;
else if (!strcmp(s, "ignore-space-at-eol"))
o->xdl_opts |= XDF_IGNORE_WHITESPACE_AT_EOL;
else if (!strcmp(s, "renormalize"))
o->renormalize = 1;
else if (!strcmp(s, "no-renormalize"))
o->renormalize = 0;
else if (!prefixcmp(s, "rename-threshold=")) {
const char *score = s + strlen("rename-threshold=");
if ((o->rename_score = parse_rename_score(&score)) == -1 || *score != 0)
return -1;
}
else
return -1;
return 0;
}
Сообщение об ошибке «Неизвестная опция» печатается только функцией handle_options
в git.c
.
И XDF_PATIENCE_DIFF
больше нигде не отображается в источниках git (1.7.4) ... так что да, я не знаю, как это можно реализовать для слияния.