Junio C Hamano wrote:
I do not think your patch (original or respun) checks if it is
overwriting the current branch. Even if it is a fast forward,
it should check this condition and prevent the end user from
getting confused. The above sample command line you quoted from
my message can potentially have the same problem, but "git
fetch" checks and refuses.
True. I've been using this to mirror remote/* and tags. Making this just
an alternate transport behind fetch and pull is clearly the cleanest way
to deal with non-remote branches.
A final note. A real 'mirror' mode should also remove stale
refs that do not exist on the remote side anymore, which is a
different use case as your bundle, which presumably is primarily
meant to carry not all but only selected set of refs, and most
likely not the 'master' branch head (and I am guessing that that
is why you forgot to make sure you are not overwriting the
current branch in the unbundle script). A real 'mirror' mode
would use a separate option to remove a ref that does not exist
on the remote end anymore, like:
$ git fetch --mirror-all git://git.kernel.org/pub/scm/git/git.git
Perhaps "git fetch --mirror --delete" would be more suggestive of the
difference to "git fetch --mirror"?
Mark
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html