Re: [PATCH] git push: Interpret $GIT_DIR/branches in a Cogito compatible way

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux