From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: GIT Mailing-list <git@vger.kernel.org>
Cc: "Hart, Darren" <darren.hart@intel.com>,
"Ashfield, Bruce" <Bruce.Ashfield@windriver.com>
Subject: Alternates corruption issue
Date: Tue, 31 Jan 2012 14:05:29 +0000 [thread overview]
Message-ID: <1328018729.13744.26.camel@ted> (raw)
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
next reply other threads:[~2012-01-31 14:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-31 14:05 Richard Purdie [this message]
2012-01-31 19:39 ` Alternates corruption issue 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1328018729.13744.26.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=Bruce.Ashfield@windriver.com \
--cc=darren.hart@intel.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).