On 08/30/2011 10:56 AM, Somebody in the thread at some point said:
On Tue, 30 Aug 2011 10:19:35 +0800, Andy Greenandy.green@linaro.org wrote:
I think you missed my point, if I tagged it, you CAN check it out. So "reachability" is not the issue.
I think there are two things here:
The first is that repo currently only fetches branches, and not tags. This means that simply tagging isn't enough to ensure that you have the object in your repo.
Not sure what "your repo" means but I get the message.
Paul has a patch for this and sent it upstream, but there's no response yet. If we use that change then tagging is sufficient.
Sounds good. Presumably you can deploy this patched repo version anyway and I can continue to tag pushes and be done.
When you check out a hash that is not a branch head, git acts slightly differently on some commands because the HEAD hash does not match any branch. I guess this repo script is not proof against those differences, which is easy to happen if you only tested it on branches, and probably not that difficult to solve either.
I'm not sure that's the issue with unreferenced objects.
If you have a revision that isn't reachable from any head (tag or branch), and not referenced by the reflog or anything, does "git clone" transfer that revision, or does it only fetch reachable objects?
If it doesn't fetch them, then it's pretty hard for us to support them, given the number of times repos are transferred in just building Android on our build service (let alone the fact that it would be pretty difficult for someone to grab the tree and look at the revision with just git.)
You're quite right but we're talking at cross purposes. I tag my pushes currently so they are always reachable in my repo, will turn up in clones, etc.
The suggestion was that there was nothing to improve with repo due to the problem being somehow with "unreachable objects": I'm glad to hear that it could be patched to use tags and has been.
-Andy