Otherwise ".git" is removed from every remote name which has it: $ git fetch -v * refs/heads/origin: same as branch 'master' of /home/user/linux commit: 5ecd310 $ ls /home/user/linux ls: /home/user/linux: No such file or directory $ ls /home/user/linux.git HEAD objects packed-refs ... Signed-off-by: Alex Riesen <raa.lkml@xxxxxxxxx> --- builtin-fetch--tool.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
From 100742821619fdd83e75aa8dcb88489aa4b60648 Mon Sep 17 00:00:00 2001 From: Alex Riesen <raa@xxxxxxxxxxxxxxxxx> Date: Wed, 6 Jun 2007 00:16:14 +0200 Subject: [PATCH] Fix the remote note the fetch-tool prints after storing a fetched reference Otherwise ".git" is removed from every remote name which has it: $ git fetch -v * refs/heads/origin: same as branch 'master' of /home/user/linux commit: 5ecd310 $ ls /home/user/linux ls: /home/user/linux: No such file or directory $ ls /home/user/linux.git HEAD objects packed-refs ... Signed-off-by: Alex Riesen <raa@xxxxxxxxxxxxxxxxx> --- builtin-fetch--tool.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c index ed4d5de..22ca125 100644 --- a/builtin-fetch--tool.c +++ b/builtin-fetch--tool.c @@ -140,7 +140,7 @@ static int append_fetch_head(FILE *fp, int verbose, int force) { struct commit *commit; - int remote_len, i, note_len; + int remote_len, note_len; unsigned char sha1[20]; char note[1024]; const char *what, *kind; @@ -173,11 +173,11 @@ static int append_fetch_head(FILE *fp, } remote_len = strlen(remote); - for (i = remote_len - 1; remote[i] == '/' && 0 <= i; i--) - ; - remote_len = i + 1; - if (4 < i && !strncmp(".git", remote + i - 3, 4)) - remote_len = i - 3; + if (remote_len > 5) { + char *p = strrchr(remote, '/'); + if (p && !strcmp(p, "/.git")) + remote_len -= 4; + } note_len = 0; if (*what) { -- 1.5.2.1.134.g352b