Merge branch 'js/deprecate-grafts'
The functionality of "$GIT_DIR/info/grafts" has been superseded by the "refs/replace/" mechanism for some time now, but the internal code had support for it in many places, which has been cleaned up in order to drop support of the "grafts" mechanism. * js/deprecate-grafts: Remove obsolete script to convert grafts to replace refs technical/shallow: describe why shallow cannot use replace refs technical/shallow: stop referring to grafts filter-branch: stop suggesting to use grafts Deprecate support for .git/info/grafts Add a test for `git replace --convert-graft-file` replace: introduce --convert-graft-file replace: prepare create_graft() for converting graft files wholesale replace: "libify" create_graft() and callees replace: avoid using die() to indicate a bug commit: Let the callback of for_each_mergetag return on error argv_array: offer to split a string by whitespace
This commit is contained in:
18
commit.c
18
commit.c
@ -13,6 +13,7 @@
|
||||
#include "prio-queue.h"
|
||||
#include "sha1-lookup.h"
|
||||
#include "wt-status.h"
|
||||
#include "advice.h"
|
||||
|
||||
static struct commit_extra_header *read_commit_extra_header_lines(const char *buf, size_t len, const char **);
|
||||
|
||||
@ -177,6 +178,15 @@ static int read_graft_file(const char *graft_file)
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
if (!fp)
|
||||
return -1;
|
||||
if (advice_graft_file_deprecated)
|
||||
advise(_("Support for <GIT_DIR>/info/grafts is deprecated\n"
|
||||
"and will be removed in a future Git version.\n"
|
||||
"\n"
|
||||
"Please use \"git replace --convert-graft-file\"\n"
|
||||
"to convert the grafts into replace refs.\n"
|
||||
"\n"
|
||||
"Turn this message off by running\n"
|
||||
"\"git config advice.graftFileDeprecated false\""));
|
||||
while (!strbuf_getwholeline(&buf, fp, '\n')) {
|
||||
/* The format is just "Commit Parent1 Parent2 ...\n" */
|
||||
struct commit_graft *graft = read_graft_line(&buf);
|
||||
@ -1307,17 +1317,19 @@ struct commit_extra_header *read_commit_extra_headers(struct commit *commit,
|
||||
return extra;
|
||||
}
|
||||
|
||||
void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data)
|
||||
int for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data)
|
||||
{
|
||||
struct commit_extra_header *extra, *to_free;
|
||||
int res = 0;
|
||||
|
||||
to_free = read_commit_extra_headers(commit, NULL);
|
||||
for (extra = to_free; extra; extra = extra->next) {
|
||||
for (extra = to_free; !res && extra; extra = extra->next) {
|
||||
if (strcmp(extra->key, "mergetag"))
|
||||
continue; /* not a merge tag */
|
||||
fn(commit, extra, data);
|
||||
res = fn(commit, extra, data);
|
||||
}
|
||||
free_commit_extra_headers(to_free);
|
||||
return res;
|
||||
}
|
||||
|
||||
static inline int standard_header_field(const char *field, size_t len)
|
||||
|
||||
Reference in New Issue
Block a user