When source git repository has extension ".git" like in "MyRepo.git"
"git fetch" will drop ".git" extension and refer to it as "MyRepo".
Example:
sh$ git fetch -v ../MyRepo.git master
From ../MyRepo
* branch master -> FETCH_HEAD
sh$ cat .git/FETCH_HEAD
6eb10bd105f2ef7f64c595100c0a850c5b3cfeb9 branch 'master' of ../MyRepo
Please, note that "git fetch" writes "../MyRepo" instead of "../MyRepo.git"
My workflow makes it convenient to have two distinct repositories
(1) "MyRepo" => where I work daily (WIP)
(2) "MyRepo.git" => --bare repository accessible to others. "MyRepo"
pushes ready changes to "MyRepo.git"
Dropping ".git" extension causes confusion between these two quite
similarly named repositories.
This problem can be easily solved by the patch below that removes the
code that strips off ".git" extension.
--Leo--
----8<-------------------
builtin-fetch--tool.c | 2 --
builtin-fetch.c | 2 --
2 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c
index 7460ab7..5d0b95f 100644
--- a/builtin-fetch--tool.c
+++ b/builtin-fetch--tool.c
@@ -160,8 +160,6 @@ static int append_fetch_head(FILE *fp,
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;
note_len = 0;
if (*what) {diff --git a/builtin-fetch.c b/builtin-fetch.c
index ee93d3a..28123a5 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -348,8 +348,6 @@ static int store_updated_refs(const char *url,
const char *remote_name,
for (i = url_len - 1; url[i] == '/' && 0 <= i; i--)
;
url_len = i + 1;
- if (4 < i && !strncmp(".git", url + i - 3, 4))
- url_len = i - 3;
note_len = 0;
if (*what) {
Leo Razoumov wrote:
quoted hunk
When source git repository has extension ".git" like in "MyRepo.git"
"git fetch" will drop ".git" extension and refer to it as "MyRepo".
Example:
sh$ git fetch -v ../MyRepo.git master
From ../MyRepo
* branch master -> FETCH_HEAD
sh$ cat .git/FETCH_HEAD
6eb10bd105f2ef7f64c595100c0a850c5b3cfeb9 branch 'master' of ../MyRepo
Please, note that "git fetch" writes "../MyRepo" instead of "../MyRepo.git"
My workflow makes it convenient to have two distinct repositories
(1) "MyRepo" => where I work daily (WIP)
(2) "MyRepo.git" => --bare repository accessible to others. "MyRepo"
pushes ready changes to "MyRepo.git"
Dropping ".git" extension causes confusion between these two quite
similarly named repositories.
This problem can be easily solved by the patch below that removes the
code that strips off ".git" extension.
--Leo--
----8<-------------------
builtin-fetch--tool.c | 2 --
builtin-fetch.c | 2 --
2 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c
index 7460ab7..5d0b95f 100644
--- a/builtin-fetch--tool.c
+++ b/builtin-fetch--tool.c
@@ -160,8 +160,6 @@ static int append_fetch_head(FILE *fp,
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;
note_len = 0;
if (*what) {diff --git a/builtin-fetch.c b/builtin-fetch.c
index ee93d3a..28123a5 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -348,8 +348,6 @@ static int store_updated_refs(const char *url,
const char *remote_name,
for (i = url_len - 1; url[i] == '/' && 0 <= i; i--)
;
url_len = i + 1;
- if (4 < i && !strncmp(".git", url + i - 3, 4))
- url_len = i - 3;
Will this still play nicely with
git clone foo.git
?
Otherwise, please also fix the fallout from this patch.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
On 10/20/08, Andreas Ericsson [off-list ref] wrote:
[..snip..]]
Will this still play nicely with
git clone foo.git
?
Otherwise, please also fix the fallout from this patch.
--
Andreas,
thanks for the comment. I have been testing this patch for over two
weeks already and so far encountered no problems. I routinely perform
"git clone foo.git" and it works correctly creating new repo "foo" and
properly populating it.
--Leo--