Re: git push doesn't use local branch name as default

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

 



Note that git itself also claims this should be working. If I do a "git push" on a branch without upstream, I will get:

fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

However, the advised "git push <name>" command won't work on that branch with the default settings of Git. To make it work, `simple` pushing would have to use `current` behavior on a branch without upstream.

Please consider changing that. Thank you.

Cheers
Mathias Kunter


Am 28.05.21 um 09:44 schrieb Mathias Kunter:
you only get the "current" behavior when fetch_remote is non-NULL.

Well, then my suggestion actually is to also use the `current` behavior when fetch_remote is NULL - i.e. change

return (fetch_remote && fetch_remote != remote);

to

return (!fetch_remote || fetch_remote != remote);

I'd argue that if `simple` pushing is used, then the expected behavior of the command

git push <remote_name>

on a branch without upstream would actually be to use the `current` behavior instead of bailing out with an error.


Am 28.05.21 um 09:00 schrieb Elijah Newren:
On Thu, May 27, 2021 at 11:39 PM Mathias Kunter <mathiaskunter@xxxxxxxxx> wrote:

Felipe,

thanks for your reply.

Sounds like you want to change the default to `push.default=current`.

Yes, but shouldn't `simple` pushing also work? The documentation says
about `push.default=simple`:

When pushing to a remote that is different from the remote you normally
pull from, work as `current`.

Perhaps this wording should be clarified to read

When you have a remote that you normally pull from but you are pushing
to a different remote then that one, then work as 'current'.

If there is no upstream, then there also is no "remote I normally pull
from", and thus, according to the doc, `simple` should actually work
like `current` in this case. Am I wrong here?

The relevant code is

     return (fetch_remote && fetch_remote != remote);

so you only get the "current" behavior when fetch_remote is non-NULL.




[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