From a57e2151bf3c8710aaa0b045496797113369ed25 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 11 May 2017 15:48:28 +0200 Subject: PREVIEW: remove support for .git/remotes/ and .git/branches/ At long last, after a cycle or three of warning users who *still* use the ancient feature of .git/remotes/ and .git/branches/, it is time to retire the code. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- path.c | 2 -- remote.c | 96 ---------------------------------------------------------------- remote.h | 4 +-- 3 files changed, 1 insertion(+), 101 deletions(-) diff --git a/path.c b/path.c index c1cb1cf627..ee709bb233 100644 --- a/path.c +++ b/path.c @@ -104,7 +104,6 @@ struct common_dir { }; static struct common_dir common_list[] = { - { 0, 1, 0, "branches" }, { 0, 1, 0, "hooks" }, { 0, 1, 0, "info" }, { 0, 0, 1, "info/sparse-checkout" }, @@ -115,7 +114,6 @@ static struct common_dir common_list[] = { { 0, 1, 0, "objects" }, { 0, 1, 0, "refs" }, { 0, 1, 1, "refs/bisect" }, - { 0, 1, 0, "remotes" }, { 0, 1, 0, "worktrees" }, { 0, 1, 0, "rr-cache" }, { 0, 1, 0, "svn" }, diff --git a/remote.c b/remote.c index b2ae168035..914ff74c0d 100644 --- a/remote.c +++ b/remote.c @@ -241,89 +241,6 @@ static void add_instead_of(struct rewrite *rewrite, const char *instead_of) rewrite->instead_of_nr++; } -static const char *skip_spaces(const char *s) -{ - while (isspace(*s)) - s++; - return s; -} - -static void read_remotes_file(struct remote *remote) -{ - struct strbuf buf = STRBUF_INIT; - FILE *f = fopen(git_path("remotes/%s", remote->name), "r"); - - if (!f) - return; - - warning(_("the remote '%s' uses the long-deprecated '%s' file"), - remote->name, git_path("branches/%s", remote->name)); - - remote->configured_in_repo = 1; - remote->origin = REMOTE_REMOTES; - while (strbuf_getline(&buf, f) != EOF) { - const char *v; - - strbuf_rtrim(&buf); - - if (skip_prefix(buf.buf, "URL:", &v)) - add_url_alias(remote, xstrdup(skip_spaces(v))); - else if (skip_prefix(buf.buf, "Push:", &v)) - add_push_refspec(remote, xstrdup(skip_spaces(v))); - else if (skip_prefix(buf.buf, "Pull:", &v)) - add_fetch_refspec(remote, xstrdup(skip_spaces(v))); - } - strbuf_release(&buf); - fclose(f); -} - -static void read_branches_file(struct remote *remote) -{ - char *frag; - struct strbuf buf = STRBUF_INIT; - FILE *f = fopen(git_path("branches/%s", remote->name), "r"); - - if (!f) - return; - - strbuf_getline_lf(&buf, f); - fclose(f); - strbuf_trim(&buf); - if (!buf.len) { - strbuf_release(&buf); - return; - } - - warning(_("the branch '%s' uses the long-deprecated '%s' file"), - remote->name, git_path("branches/%s", remote->name)); - - remote->configured_in_repo = 1; - remote->origin = REMOTE_BRANCHES; - - /* - * The branches file would have URL and optionally - * #branch specified. The "master" (or specified) branch is - * fetched and stored in the local branch matching the - * remote name. - */ - frag = strchr(buf.buf, '#'); - if (frag) - *(frag++) = '\0'; - else - frag = "master"; - - add_url_alias(remote, strbuf_detach(&buf, NULL)); - add_fetch_refspec(remote, xstrfmt("refs/heads/%s:refs/heads/%s", - frag, remote->name)); - - /* - * Cogito compatible push: push current HEAD to remote #branch - * (master if missing) - */ - add_push_refspec(remote, xstrfmt("HEAD:refs/heads/%s", frag)); - remote->fetch_tags = 1; /* always auto-follow */ -} - static int handle_config(const char *key, const char *value, void *cb) { const char *name; @@ -652,13 +569,6 @@ void free_refspec(int nr_refspec, struct refspec *refspec) free(refspec); } -static int valid_remote_nick(const char *name) -{ - if (!name[0] || is_dot_or_dotdot(name)) - return 0; - return !strchr(name, '/'); /* no slash */ -} - const char *remote_for_branch(struct branch *branch, int *explicit) { if (branch && branch->remote_name) { @@ -700,12 +610,6 @@ static struct remote *remote_get_1(const char *name, name = get_default(current_branch, &name_given); ret = make_remote(name, 0); - if (valid_remote_nick(name) && have_git_dir()) { - if (!valid_remote(ret)) - read_remotes_file(ret); - if (!valid_remote(ret)) - read_branches_file(ret); - } if (name_given && !valid_remote(ret)) add_url_alias(ret, name); if (!valid_remote(ret)) diff --git a/remote.h b/remote.h index 6c28cd3e4b..921b3d4335 100644 --- a/remote.h +++ b/remote.h @@ -6,9 +6,7 @@ enum { REMOTE_UNCONFIGURED = 0, - REMOTE_CONFIG, - REMOTE_REMOTES, - REMOTE_BRANCHES + REMOTE_CONFIG }; struct remote { -- cgit v1.2.1