git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* pushing remote branches
@ 2009-11-14 23:37 Lorenzo Bettini
  2009-11-15  0:45 ` Sitaram Chamarty
  0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bettini @ 2009-11-14 23:37 UTC (permalink / raw)
  To: git

Hi

I recently started to use git, and I experienced problems with branches: 
on my machine I did (on an already cloned repo)

git checkout -b experiments origin/experiments

and thus my config reads

[remote "origin"]
         fetch = +refs/heads/*:refs/remotes/origin/*
         url = git://...
[branch "master"]
         remote = origin
         merge = refs/heads/master
[branch "experiments"]
         remote = origin
         merge = refs/heads/experiments

isn't this enough to be able to push the experiments branch?

I tried

git push origin experiments

It tells me that it is a read-only url...

after adding

[remote "experiments"]
         url = git@...
         fetch = 
+refs/heads/experiments:refs/remotes/experiments/experiments

I can now push that branch with

git push experiments experiments

but I was wondering whether the initial config wasn't enough...

many thanks in advance
	Lorenzo

-- 
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
ICQ# lbetto, 16080134     (GNU/Linux User # 158233)
HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com
http://www.myspace.com/supertrouperabba
BLOGS: http://tronprog.blogspot.com  http://longlivemusic.blogspot.com
http://www.gnu.org/software/src-highlite
http://www.gnu.org/software/gengetopt
http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pushing remote branches
  2009-11-14 23:37 pushing remote branches Lorenzo Bettini
@ 2009-11-15  0:45 ` Sitaram Chamarty
  2009-11-15 10:21   ` Lorenzo Bettini
  0 siblings, 1 reply; 6+ messages in thread
From: Sitaram Chamarty @ 2009-11-15  0:45 UTC (permalink / raw)
  To: Lorenzo Bettini; +Cc: git

Hi Lorenzo,

On Sun, Nov 15, 2009 at 5:07 AM, Lorenzo Bettini <bettini@dsi.unifi.it> wrote:

>            url = git://...

> isn't this enough to be able to push the experiments branch?

not normally.

The "git://" protocol is a read-only protocol by default.  Since it is
completely unauthenticated, enabling push via git:// is not a good idea in
general.

>            url = git@...

This is a shortcut for something like ssh://git@..., which then allows write
also.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pushing remote branches
  2009-11-15  0:45 ` Sitaram Chamarty
@ 2009-11-15 10:21   ` Lorenzo Bettini
  2009-11-15 11:04     ` Sitaram Chamarty
  0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bettini @ 2009-11-15 10:21 UTC (permalink / raw)
  To: git

Sitaram Chamarty wrote:
> Hi Lorenzo,
> 
> On Sun, Nov 15, 2009 at 5:07 AM, Lorenzo Bettini <bettini@dsi.unifi.it> wrote:
> 
>>            url = git://...
> 
>> isn't this enough to be able to push the experiments branch?
> 
> not normally.
> 
> The "git://" protocol is a read-only protocol by default.  Since it is
> completely unauthenticated, enabling push via git:// is not a good idea in
> general.

so probably I managed to push origin master anyway because gitorious 
asked me for my ssh passphrase?

> 
>>            url = git@...
> 
> This is a shortcut for something like ssh://git@..., which then allows write
> also.

Thus, if I had

[remote "origin"]
         fetch = +refs/heads/*:refs/remotes/origin/*
         url = git@...
[branch "master"]
         remote = origin
         merge = refs/heads/master
[branch "experiments"]
         remote = origin
         merge = refs/heads/experiments

instead of

[remote "origin"]
         fetch = +refs/heads/*:refs/remotes/origin/*
         url = git://...
[branch "master"]
         remote = origin
         merge = refs/heads/master
[branch "experiments"]
         remote = origin
         merge = refs/heads/experiments

I would have been able to push also to branch experiments?  Without 
having to add

[remote "experiments"]
         url = git@...
         fetch = 
+refs/heads/experiments:refs/remotes/experiments/experiments

?

thanks in advance
	Lorenzo

-- 
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
ICQ# lbetto, 16080134     (GNU/Linux User # 158233)
HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com
http://www.myspace.com/supertrouperabba
BLOGS: http://tronprog.blogspot.com  http://longlivemusic.blogspot.com
http://www.gnu.org/software/src-highlite
http://www.gnu.org/software/gengetopt
http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pushing remote branches
  2009-11-15 10:21   ` Lorenzo Bettini
@ 2009-11-15 11:04     ` Sitaram Chamarty
  2009-11-16 15:27       ` Lorenzo Bettini
  0 siblings, 1 reply; 6+ messages in thread
From: Sitaram Chamarty @ 2009-11-15 11:04 UTC (permalink / raw)
  To: Lorenzo Bettini; +Cc: git

On Sun, Nov 15, 2009 at 3:51 PM, Lorenzo Bettini <bettini@dsi.unifi.it> wrote:
> Sitaram Chamarty wrote:
>>
>> Hi Lorenzo,
>>
>> On Sun, Nov 15, 2009 at 5:07 AM, Lorenzo Bettini <bettini@dsi.unifi.it>
>> wrote:
>>
>>>                url = git://...
>>
>>> isn't this enough to be able to push the experiments branch?
>>
>> not normally.
>>
>> The "git://" protocol is a read-only protocol by default.   Since it is
>> completely unauthenticated, enabling push via git:// is not a good idea in
>> general.
>
> so probably I managed to push origin master anyway because gitorious asked
> me for my ssh passphrase?

As far as I know you could not have pushed anything when the url is
git:// (at least by default.  Push over git:// can be enabled but is
highly inadvisable and I have not seen anyone enable it nor any good
reason to)

> Thus, if I had
>
> [remote "origin"]
>            fetch = +refs/heads/*:refs/remotes/origin/*
>            url = git@...
> [branch "master"]
>            remote = origin
>            merge = refs/heads/master
> [branch "experiments"]
>            remote = origin
>            merge = refs/heads/experiments
>
> instead of
>
> [remote "origin"]
>            fetch = +refs/heads/*:refs/remotes/origin/*
>            url = git://...
> [branch "master"]
>            remote = origin
>            merge = refs/heads/master
> [branch "experiments"]
>            remote = origin
>            merge = refs/heads/experiments
>
> I would have been able to push also to branch experiments?   Without having
> to add
>
> [remote "experiments"]
>            url = git@...
>            fetch = +refs/heads/experiments:refs/remotes/experiments/experiments
>
> ?

(by the way: do you mean refs/remotes/origin/experiments in that last
line above?)

Anyway to answer your question, I do not see the refspec line as the issue
here, but the URL for the repo, which determines how you access it.

regards,

sitaram

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pushing remote branches
  2009-11-15 11:04     ` Sitaram Chamarty
@ 2009-11-16 15:27       ` Lorenzo Bettini
  2009-11-16 20:05         ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bettini @ 2009-11-16 15:27 UTC (permalink / raw)
  To: git

Sitaram Chamarty wrote:
> 
>> Thus, if I had
>>
>> [remote "origin"]
>>            fetch = +refs/heads/*:refs/remotes/origin/*
>>            url = git@...
>> [branch "master"]
>>            remote = origin
>>            merge = refs/heads/master
>> [branch "experiments"]
>>            remote = origin
>>            merge = refs/heads/experiments
>>
>> instead of
>>
>> [remote "origin"]
>>            fetch = +refs/heads/*:refs/remotes/origin/*
>>            url = git://...
>> [branch "master"]
>>            remote = origin
>>            merge = refs/heads/master
>> [branch "experiments"]
>>            remote = origin
>>            merge = refs/heads/experiments
>>
>> I would have been able to push also to branch experiments?   Without having
>> to add
>>
>> [remote "experiments"]
>>            url = git@...
>>            fetch = +refs/heads/experiments:refs/remotes/experiments/experiments
>>
>> ?
> 
> (by the way: do you mean refs/remotes/origin/experiments in that last
> line above?)
> 

no, it's just like I wrote it...

you mean in

[remote "experiments"]
         url = git@gitorious.org...
         fetch = 
+refs/heads/experiments:refs/remotes/experiments/experiments

or in

[branch "experiments"]
         remote = origin
         merge = refs/heads/experiments


?

> Anyway to answer your question, I do not see the refspec line as the issue
> here, but the URL for the repo, which determines how you access it.

so this would have been enough:

 >> [remote "origin"]
 >>            fetch = +refs/heads/*:refs/remotes/origin/*
 >>            url = git://...
 >> [branch "master"]
 >>            remote = origin
 >>            merge = refs/heads/master
 >> [branch "experiments"]
 >>            remote = origin
 >>            merge = refs/heads/experiments

?

thanks
	Lorenzo

-- 
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com
BLOGS: http://tronprog.blogspot.com  http://longlivemusic.blogspot.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pushing remote branches
  2009-11-16 15:27       ` Lorenzo Bettini
@ 2009-11-16 20:05         ` Junio C Hamano
  0 siblings, 0 replies; 6+ messages in thread
From: Junio C Hamano @ 2009-11-16 20:05 UTC (permalink / raw)
  To: Lorenzo Bettini; +Cc: git

Lorenzo Bettini <bettini@dsi.unifi.it> writes:

>> Anyway to answer your question, I do not see the refspec line as the issue
>> here, but the URL for the repo, which determines how you access it.
>
> so this would have been enough:
>
>>> [remote "origin"]
>>>            fetch = +refs/heads/*:refs/remotes/origin/*
>>>            url = git://...
>>> [branch "master"]
>>>            remote = origin
>>>            merge = refs/heads/master
>>> [branch "experiments"]
>>>            remote = origin
>>>            merge = refs/heads/experiments

Because "git://" is almost always read-only, you wouldn't be able to push
back to the origin with that configuration.  If you are only following the
project that is perfectly fine.

Otherwise, either use "git@..." in remote.origin.url to use git-over-ssh
in both directions, or you can use pushurl if you have recent enough
version of git, like:

    [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git://...
        pushurl = git@...

When you primed your repository with "git clone git://...", it would be
nice if "clone" added a "corresponding" pushurl for you.  But ... part of
the two lines are often different, depending on how hosting site is
organized, so unfortunately "clone" cannot do so.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-11-16 20:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-14 23:37 pushing remote branches Lorenzo Bettini
2009-11-15  0:45 ` Sitaram Chamarty
2009-11-15 10:21   ` Lorenzo Bettini
2009-11-15 11:04     ` Sitaram Chamarty
2009-11-16 15:27       ` Lorenzo Bettini
2009-11-16 20:05         ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).