Re: git push (mis ?)behavior
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Oct 9, 2007, 07:23 UTC
- Message-ID
- <5C3443FD-DEC3-4EDC-B10B-0C4307EF9492@zib.de>
- In-Reply-To
- <20071009050533.GA2968@efreet.light.src>
On Oct 9, 2007, at 7:05 AM, Jan Hudec wrote:
Show 32 quoted lines
> On Fri, Sep 28, 2007 at 00:07:27 -0700, Junio C Hamano wrote: >> Steffen Prohaska <prohaska@zib.de> writes: >> >>> When "remote.<name>.push" is set I'd expect "git push" to >>> choose only the 'right' remote.<name>.push lines, that is >>> the lines that have the current branch as the local ref. > > I would like this for another reason and maybe in slightly > different way. > Basically I would have configured something along the lines: > [remote "origin"] > push = refs/heads/*:refs/heads/jahu/* > and would want to choose, via option, whether I want to push all > the branches > or just the current one, but in any case with the renaming specified. > > The idea behind this is to have a shared repository, but not shared > branches. > Everybody would have a subdirectory in refs/heads where he could push > anything that the others should see and than somebody else (either > designated > integrator, or just anybody different) would do a quick review and > merge it > into master. > > Now I could of course push out everything, but usually I'd want to > push > exactly the current branch, renaming it by the rule given, whether > it already > existed in origin or not. Than there can be eg. a post-receive hook > notifying > the integrator that there is something for review.
I had a similar scenario in mind. So a more general question is the following:
Git well supports the clone from read-only and push to private repo scheme. In this case all repositories you're pushing to are by definition _your_ repositories. The only question left is, which subset of your branches are pushed. But there's no need for renaming during push.
Now the question is, what is a sensible workflow on a shared repository?
One option is to use some kind of private 'namespace' scheme. For example developers should push their topics to a branch prefixed with their name, or to a 'subdirectory' ref/heads/needsreview/*.
This workflow may require to 'rename' branches during push. So how can this be supported by git? Supporting only renames that add a prefix, as suggested by Jan, may be reasonable restriction.
Steffen