git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Alternates corruption issue
@ 2012-01-31 14:05 Richard Purdie
  2012-01-31 19:39 ` Jeff King
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Purdie @ 2012-01-31 14:05 UTC (permalink / raw)
  To: GIT Mailing-list; +Cc: Hart, Darren, Ashfield, Bruce

I have a problem with git clone commands using alternates failing by
mixing up different repositories. I have a situation where I could end
up with both:

/srv/mirrors/repo
/srv/mirrors/repo.git

as bare clones.

I then try cloning "repo" with alternates with the command:

$ git clone -s -n /srv/mirrors/repo /tmp/foo
Cloning into /tmp/foo...
done.

$ cat /tmp/foo/.git/objects/info/alternates
/srv/mirrors/repo.git/objects

Note how I'm now referencing repo.git, not repo. This doesn't work as
expected giving some very bizarre results when actually using the
repository.

I appreciate this is a rather bizarre corner case but its one that is
breaking the build system I work with. Ideally people would use a
consistent URL for the same repository but we have an example where they
haven't and this really shouldn't break like this.

Looking at the code, the cause seems to be

clone.c:get_repo_path():

	static char *suffix[] = { "/.git", ".git", "" };

since its looking in order for:
 repo/.git (fails)
 repo.git (suceeds, incorrect)
 repo (never looked at)

I'm not sure what would break if that order were to change, swapping the
last two options.

I can "force" the issue by running:

git clone -s -n /srv/mirrors/repo/ /tmp/foo

but this results in the slightly odd looking:

$ cat /tmp/foo/.git/objects/info/alternates
/srv/mirrors/repo//objects

which does at least work.

Any idea if its possible to fix the root cause of this problem?

Cheers,

Richard

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2012-02-03 21:53 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-31 14:05 Alternates corruption issue Richard Purdie
2012-01-31 19:39 ` Jeff King
2012-01-31 20:25   ` Junio C Hamano
2012-01-31 20:44     ` Jeff King
2012-01-31 21:40       ` Jonathan Nieder
2012-01-31 21:47         ` Jeff King
2012-01-31 21:55           ` Jonathan Nieder
2012-01-31 22:05             ` Jeff King
2012-01-31 22:22               ` Jonathan Nieder
2012-01-31 22:42                 ` Jeff King
2012-01-31 22:59                   ` Jonathan Nieder
2012-02-02 21:59                 ` Jeff King
2012-02-03  0:47                   ` Junio C Hamano
2012-02-03 12:02                     ` Jeff King
2012-02-03 17:38                       ` Junio C Hamano
2012-02-03 21:29                         ` Jeff King
2012-02-03 21:51                           ` Junio C Hamano
2012-02-03 21:53                             ` Jeff King
2012-02-03 14:40                   ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).