# [Terminology] Push vs. upload?

6 messages from 2005-09-20 to 2005-09-21. Participants: Petr Baudis, Linus Torvalds, Junio C Hamano.
Thread: https://gitlist.dev/t/1868

## Petr Baudis, 2005-09-20 00:11

Subject: [Terminology] Push vs. upload?
Message-ID: <20050920001136.GK18320@pasky.or.cz>
URL: https://gitlist.dev/e/20050920001136.GK18320%40pasky.or.cz

```
  Hello,

  I've realized today that I "forgot" to rename cg-push to cg-upload, so
I impulsively did so right away, but now I'm seeing that the core git
still has git-push and no git-upload. This is confusing and appears to
be quite inconsistent - push should be the opposite of pull, but pull is
defined as fetch+merge, while push does just the anti-fetch ("upload")
part. Yes, it does the subset protection, but git-fetch with remotes/
seems to by default do the superset protection as well.

  How should we call it, then?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.

```

## Linus Torvalds, 2005-09-20 00:55

Subject: Re: [Terminology] Push vs. upload?
Message-ID: <Pine.LNX.4.58.0509191753100.2553@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.58.0509191753100.2553%40g5.osdl.org
In-Reply-To: <20050920001136.GK18320@pasky.or.cz>

```


On Tue, 20 Sep 2005, Petr Baudis wrote:
> 
>   I've realized today that I "forgot" to rename cg-push to cg-upload, so
> I impulsively did so right away, but now I'm seeing that the core git
> still has git-push and no git-upload. This is confusing and appears to
> be quite inconsistent - push should be the opposite of pull

No. There is no opposite of pull. You can't update the tree on the other 
end. It's fundamentally an unsafe operation - the other end is by 
definition not a private tree.

(Or, if you want to see it another way: "pull" is "pull"s own opposite:  
"ssh other-end + git pull from that end" ends up being what you mean.)

		Linus

```

## Petr Baudis, 2005-09-20 01:44

Subject: Re: [Terminology] Push vs. upload?
Message-ID: <20050920014448.GA30912@pasky.or.cz>
URL: https://gitlist.dev/e/20050920014448.GA30912%40pasky.or.cz
In-Reply-To: <Pine.LNX.4.58.0509191753100.2553@g5.osdl.org>

```
Dear diary, on Tue, Sep 20, 2005 at 02:55:08AM CEST, I got a letter
where Linus Torvalds <torvalds@osdl.org> told me that...
> 
> 
> On Tue, 20 Sep 2005, Petr Baudis wrote:
> > 
> >   I've realized today that I "forgot" to rename cg-push to cg-upload, so
> > I impulsively did so right away, but now I'm seeing that the core git
> > still has git-push and no git-upload. This is confusing and appears to
> > be quite inconsistent - push should be the opposite of pull
> 
> No. There is no opposite of pull. You can't update the tree on the other 
> end. It's fundamentally an unsafe operation - the other end is by 
> definition not a private tree.
> 
> (Or, if you want to see it another way: "pull" is "pull"s own opposite:  
> "ssh other-end + git pull from that end" ends up being what you mean.)

Yes, but I'm just arguing about the naming - if you just take the word
"pull", "push" is the obvious opposite to that and vice versa, so if we
are going to use words "pull" and "push" in the same context, this
relation should be preserved. So "push" really _should_ mean

	ssh other-end 'git-pull'

whether it's a safe operation or not - if not, then GIT should have
nothing called "push". But the current "push" is really an opposite of
"fetch", so it should be called "upload", I believe.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.

```

## Junio C Hamano, 2005-09-20 01:54

Subject: Re: [Terminology] Push vs. upload?
Message-ID: <7v3bo0fqrl.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v3bo0fqrl.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20050920001136.GK18320@pasky.or.cz>

```
Petr Baudis <pasky@suse.cz> writes:

> ... push should be the opposite of pull, but pull is defined
> as fetch+merge, ...

It is my recollection that this exact "shouldn't push be
opposite of pull" issue was raised when the list had the
glossary discussion.  My impression was that the discussion
settled on what we have right now...

```

## Linus Torvalds, 2005-09-20 01:59

Subject: Re: [Terminology] Push vs. upload?
Message-ID: <Pine.LNX.4.58.0509191858020.2553@g5.osdl.org>
URL: https://gitlist.dev/e/Pine.LNX.4.58.0509191858020.2553%40g5.osdl.org
In-Reply-To: <20050920014448.GA30912@pasky.or.cz>

```


On Tue, 20 Sep 2005, Petr Baudis wrote:
> 
> Yes, but I'm just arguing about the naming - if you just take the word
> "pull", "push" is the obvious opposite to that and vice versa, so if we
> are going to use words "pull" and "push" in the same context, this
> relation should be preserved. So "push" really _should_ mean
> 
> 	ssh other-end 'git-pull'

Well, I actually called it "send" as in "git-send-pack".

But anybody who has ever used BK would still type "push", so I'd make that 
an alias anyway.

Not "upload". Upload is the reverse of "download", and we don't do that.

		Linus

```

## Petr Baudis, 2005-09-21 16:52

Subject: Re: [Terminology] Push vs. upload?
Message-ID: <20050921165234.GD21971@pasky.or.cz>
URL: https://gitlist.dev/e/20050921165234.GD21971%40pasky.or.cz
In-Reply-To: <Pine.LNX.4.58.0509191858020.2553@g5.osdl.org>

```
Dear diary, on Tue, Sep 20, 2005 at 03:59:15AM CEST, I got a letter
where Linus Torvalds <torvalds@osdl.org> told me that...
> 
> 
> On Tue, 20 Sep 2005, Petr Baudis wrote:
> > 
> > Yes, but I'm just arguing about the naming - if you just take the word
> > "pull", "push" is the obvious opposite to that and vice versa, so if we
> > are going to use words "pull" and "push" in the same context, this
> > relation should be preserved. So "push" really _should_ mean
> > 
> > 	ssh other-end 'git-pull'
> 
> Well, I actually called it "send" as in "git-send-pack".
> 
> But anybody who has ever used BK would still type "push", so I'd make that 
> an alias anyway.
> 
> Not "upload". Upload is the reverse of "download", and we don't do that.

All right, now I agree that "upload" isn't that appropriate, since
git-ssh-upload isn't actually for any push-related activity, even though
it is a git-ssh-fetch counterpart - it is so in a different sense.

I don't want to name it cg-send because I think that would be way too
easily confused with sending patches over e-mail. So it ended up being
cg-push again. :-)

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.

```
