Francis Moreau venit, vidit, dixit 01/12/09 14:56: > On Mon, Jan 12, 2009 at 1:55 PM, Michael J Gruber > <git@xxxxxxxxxxxxxxxxxxxx> wrote: >> Your test above confirms that the description is correct and nothing is >> missing. "git push" pushes explicitly listed refspecs (or : as a >> default). It pushes tags (light and heavy) when asked to. >> > > So do you mean that the only way I have for pushing annoted tags only is > to do: > > $ git push origin refs/tags/annoted You could use the equivalent, more user friendly "git push origin tag annoted". > That's not what Junio said: > > Don't use explicit --tags blindly. It says "no matter what kind of tag, > transfer everything under refs/tags". Otherwise you won't see a > difference. > > So I interpret this like don't use --tags otherwise lightweight and annoted tags > are the same. I don't see a difference between lightweight tags and tag objects regarding the question of automatic tag following, see my parenthetical request for correction (below) in case I'm wrong. >> "git pull" pulls tags if they can be reached from heads which are >> pulled. It pulls all tags only when asked to. >> > > [...] > >> So, "non-local" tags are the ones which can be reached from heads which >> you pull, and local ones are the others. > > So I can't create a local tag on public heads (the ones I'm pushing > out), can I ? > >> I don't think lightweight tags are more local than tag objects >> (please correct me if I'm wrong; I think this needs more doc) > > Perhaps it needs documents which are more user friendly: I don't know where > the 'lightweight' word is coming from (perhaps from the implementation) but > I would expect that the _local_ term appears in the git-tag manual. It's the other way round. "lightweight" is in the first few lines of the man, "local" nowhere. In fact I don't see it anywhere in the docs. >> It's just that the latter reside in the object db >> store whereas the former are simple refs under refs/tags. > > That's implementation detail... > > I just need to create a local tag where I'm sure it won't be seen by others > whatever the git operations I'm doing, normally a simple "git tag" switch > should be enough... Taking "whatever" literally this is impossible, of course. Taking it /cum grano salis/ it's still impossible within the same repo: If others have read access they can "ls-remote" and "fetch" happily what they want. The sane and easy way is to use a private repo for your local work and all your "local tags", then to push to a public (i.e. publically readable) repo those branches and tags which you want to be seen. Are you a Mercurial user by any chance? "hg tag -l" creates local tags which are stored in an unversioned, private file, whereas "hg tag" creates (and commits) a tag entry in a versioned file, which is the source of some confusion and problems with hg tags ("hg co sometag" does not contain sometag etc.). Maybe you want the behaviour of "hg tag -l"? Cheers, Michael -- 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