On Mon, Nov 10, 2008 at 03:25:09PM -0800, Junio C Hamano wrote: > Martin Koegler <mkoegler@xxxxxxxxxxxxxxxxx> writes: > > Current git versions ignore everything after # (called <head> in the > > following) when pushing. Older versions (before cf818348f1ab57), > > interpret #<head> as part of the URL, which make git bail out. > > > > Ignoring the <head> part for push (fetch respects them) is unlogical. > > As branches origin from Cogito, it is the best to correct this by > > using the behaviour of cg-push: > > > > push HEAD to remote refs/heads/<head> > > > > Signed-off-by: Martin Koegler <mkoegler@xxxxxxxxxxxxxxxxx> > > This message was addressed to me, but is it meant for inclusion? > > I do not recall seeing an agreement on what the desired behaviour should > be from (ex-)Cogito users, if this change of behaviour hurts real world > usage of existing git users, andr if so how we ease this change in to the > release. Nobody else seemd to be interessted in this topic, so its difficult to start a discussion. I would suggest to queue it in pu for some time and wait for other feedback. > While I'd personally agree matching with whatever cg-push used to do might > make the most sense in the end, I am not sure changing of behaviour > abruptly like this is a good idea. I'm open for any suggestion, how to make this change smoothly. I think, that doing such a behaviour change should be OK for 1.6.1 or 1.6.2: Until v1.5.4 (9 month ago), git-push with # was totally broken. Daniel Barkalow fixed the fetch case in v1.5.4. As a side effect, git-push no longer fails, but ignores everything after #. So in my option, the current behaviour was created by chance. > I am also not so sure url#branch is illogical; I'd suggest dropping that > line from the commit log message in any case. OK, I'll drop it in the next version. > > +git push uses: > > > > ------------ > > - refs/heads/<head>:<repository> > > + HEAD:refs/heads/<head> > > ------------ > > Why isn't this "refs/heads/<head>:refs/heads/<head>", by the way? 1) It's Cogito behaviour (cg-push(2)): | It will push your commits on the current branch (or as specified | by the -r option) to the remote repository, provided that your | commits follow the last commit in the remote repository. 2) In my options, it's more flexible If you want to push to <head>, you must create a local branch called <head>. If you want to fetch from the remote too, you must choose a name != <head> for the branches file, as you normaly don't want to fetch into a local branch. Pushing to <head> in multiple remote repositories is also more difficult, if they are used for diffent things, as they are based on one local branch. => It's a way to seperate the remote head names from the local ones. mfg Martin Kögler -- 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