Re: [PATCH v2 05/14] remote: remove dead code in read_branches_file()

2013-06-23 Thread Junio C Hamano
Ramkumar Ramachandra artag...@gmail.com writes:

 - /*
 -  * With slash, e.g. git fetch jgarzik/netdev-2.6 when
 -  * reading from $GIT_DIR/branches/jgarzik fetches HEAD from
 -  * the partial URL obtained from the branches file plus
 -  * /netdev-2.6 and does not store it in any tracking ref.
 -  * #branch specifier in the file is ignored.
 -  *
 -  * Otherwise, the branches file would have URL and optionally
 -  * #branch specified.  The master (or specified) branch is
 -  * fetched and stored in the local branch of the same name.
 -  */

Removal of the second paratraph is wrong, isn't it?

   frag = strchr(p, '#');
   if (frag) {
   *(frag++) = '\0';
   strbuf_addf(branch, refs/heads/%s, frag);
   } else
   strbuf_addstr(branch, refs/heads/master);
 - if (!slash) {
 - strbuf_addf(branch, :refs/heads/%s, remote-name);
 - } else {
 - strbuf_reset(branch);
 - strbuf_addstr(branch, HEAD:);
 - }
 +
 + strbuf_addf(branch, :refs/heads/%s, remote-name);
   add_url_alias(remote, p);
   add_fetch_refspec(remote, strbuf_detach(branch, NULL));
   /*
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 05/14] remote: remove dead code in read_branches_file()

2013-06-22 Thread Ramkumar Ramachandra
The first line of the function checks that the remote-name contains a
slash ('/'), and sets the slash variable accordingly.  The only caller
of read_branches_file() is remote_get_1(); the calling codepath is
guarded by valid_remote_nick(), which checks that the remote does not
contain a slash.  Therefore, the slash variable can never be set:
remove the dead code that assumes otherwise.

Signed-off-by: Ramkumar Ramachandra artag...@gmail.com
---
 remote.c | 26 +++---
 1 file changed, 3 insertions(+), 23 deletions(-)

diff --git a/remote.c b/remote.c
index e71f66d..128b210 100644
--- a/remote.c
+++ b/remote.c
@@ -276,10 +276,9 @@ static void read_remotes_file(struct remote *remote)
 
 static void read_branches_file(struct remote *remote)
 {
-   const char *slash = strchr(remote-name, '/');
char *frag;
struct strbuf branch = STRBUF_INIT;
-   int n = slash ? slash - remote-name : 1000;
+   int n = 1000;
FILE *f = fopen(git_path(branches/%.*s, n, remote-name), r);
char *s, *p;
int len;
@@ -299,36 +298,17 @@ static void read_branches_file(struct remote *remote)
while (isspace(p[-1]))
*--p = 0;
len = p - s;
-   if (slash)
-   len += strlen(slash);
p = xmalloc(len + 1);
strcpy(p, s);
-   if (slash)
-   strcat(p, slash);
 
-   /*
-* With slash, e.g. git fetch jgarzik/netdev-2.6 when
-* reading from $GIT_DIR/branches/jgarzik fetches HEAD from
-* the partial URL obtained from the branches file plus
-* /netdev-2.6 and does not store it in any tracking ref.
-* #branch specifier in the file is ignored.
-*
-* Otherwise, the branches file would have URL and optionally
-* #branch specified.  The master (or specified) branch is
-* fetched and stored in the local branch of the same name.
-*/
frag = strchr(p, '#');
if (frag) {
*(frag++) = '\0';
strbuf_addf(branch, refs/heads/%s, frag);
} else
strbuf_addstr(branch, refs/heads/master);
-   if (!slash) {
-   strbuf_addf(branch, :refs/heads/%s, remote-name);
-   } else {
-   strbuf_reset(branch);
-   strbuf_addstr(branch, HEAD:);
-   }
+
+   strbuf_addf(branch, :refs/heads/%s, remote-name);
add_url_alias(remote, p);
add_fetch_refspec(remote, strbuf_detach(branch, NULL));
/*
-- 
1.8.3.1.498.gacf2885

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html