git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/2] bookmarks

From
APAndy Parkins <andyparkins@gmail.com>
Date
Apr 26, 2007, 08:23 UTC
Message-ID
<200704260923.26637.andyparkins@gmail.com>
In-Reply-To
<Pine.LNX.4.64.0704260816480.27356@beast.quantumfyre.co.uk>
On Thursday 2007 April 26, Julian Phillips wrote:
Show 6 quoted lines
> > How would one find out about remote refs?  By running
> > ls-remote.  And that happens to also be how git-fetch follows
> > tags (the original issue Andy had).
>
> Surely though, what you really want is to simply not put the private refs
> into a public repo.  So the thing to be controlling is push, not fetch.

That's already taken care of by the update hook. The default example that comes with git prevents the pushing of unannotated tags, and could be modified to prevent the pushing of any subset of refs that you wanted.

What I'm really talking about is the default functionality - we've got the glob syntax in the config for controlling which branches get pushed, that makes it easy to make branches that you don't want pushed. For example you might have

 [remote "origin"]
   url = somewhere
   push = refs/heads/publish/*:refs/heads/*
   fetch = refs/heads/*:refs/remotes/origin/*

That way, only branches that I prefix with "publish/" get pushed. All I'm after is a similar facility for tags. Unfortunately, git assumes that I'm always going to want all tags so there is no namespace divisions I can make.

> I don't think it unreasonable to say that anything that is in a public
> repository is public, and that the way to keep things private is to not
> push them into a public repository. Or is it?

I don't think that's unreasonable at all - even though it can be worked around using a hook script, the problem still exists - what if I want the option to push a certain tag, but by default I don't want it sent. For branches it's no problem - the [remote] supplies the default and I can always do

 git push origin branch
for the extras.
> I understand that some people may wish to make their working repositories
> public, but then there isn't any way we can say for sure that things will
> remain private.  Even if ls-remote was updated, an older version would
> simply ignore the new "this is private" configuration.

No, no - I certainly don't want to make it public. That's the point - I want to keep all my private things private, and hence I want to be able to control which branches and which tags are pushed and fetched.

> or simply expand the current push configuration to accept that syntax, so
> that you can finely control which refs get pushed to the public repo?
Yes - exactly right.  That's what I was trying to suggest (badly) with my 
[remote "origin"]
  url = whatever
  fetch = refs/tags/?:refs/tags/?
suggestion.

To say it more explicitly - perhaps tags should /not/ be auto-followed, but rather treated exactly as branches are?

Actually how about this: an option in the remote section to turn off auto-following and then add fetch and push lines for the tags too - that means very minimal changes and then everyone's happy (where everyone = me ;-)).

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com
Previous: Julian PhillipsNext: Andy Parkins
Message 18 of 24 in “git-fetch and unannotated tags”
  1. Andy ParkinsApr 25, 2007
  2. Julian PhillipsApr 25, 2007
  3. Andy ParkinsApr 25, 2007
  4. Junio C HamanoApr 25, 2007
  5. Andy ParkinsApr 26, 2007
  6. Andreas EricssonApr 26, 2007
  7. Jakub NarebskiApr 27, 2007
  8. Junio C HamanoApr 29, 2007
  9. 0/2 bookmarks (was: Re: git-fetch and unannotated tags)Julian Phillips, Apr 25, 2007
  10. 1/2 refs.c: change do_one_ref to not discard any of baseJulian Phillips, Apr 25, 2007
  11. 2/2 Add basic support for bookmarks (create/edit/delete/list)Julian Phillips, Apr 25, 2007
  12. A Large Angry SCMApr 26, 2007
  13. Jeffrey C. OllieApr 26, 2007
  14. Junio C HamanoApr 26, 2007
  15. Julian PhillipsApr 26, 2007
  16. Junio C HamanoApr 26, 2007
  17. Julian PhillipsApr 26, 2007
  18. Andy ParkinsApr 26, 2007
  19. Andy ParkinsApr 26, 2007
  20. Petr BaudisApr 26, 2007
  21. Andy ParkinsApr 26, 2007
  22. Julian PhillipsApr 26, 2007
  23. Karl HasselströmApr 26, 2007
  24. Linus TorvaldsApr 26, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.