-
Notifications
You must be signed in to change notification settings - Fork 151
doc: clarify difference between push.default
simple
and current
#1944
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Welcome to GitGitGadgetHi @dfabulich, and welcome to GitGitGadget, the GitHub App to send patch series to the Git mailing list from GitHub Pull Requests. Please make sure that either:
You can CC potential reviewers by adding a footer to the PR description with the following syntax:
NOTE: DO NOT copy/paste your CC list from a previous GGG PR's description, Also, it is a good idea to review the commit messages one last time, as the Git project expects them in a quite specific form:
It is in general a good idea to await the automated test ("Checks") in this Pull Request before contributing the patches, e.g. to avoid trivial issues such as unportable code. Contributing the patchesBefore you can contribute the patches, your GitHub username needs to be added to the list of permitted users. Any already-permitted user can do that, by adding a comment to your PR of the form Both the person who commented An alternative is the channel
Once on the list of permitted usernames, you can contribute the patches to the Git mailing list by adding a PR comment If you want to see what email(s) would be sent for a After you submit, GitGitGadget will respond with another comment that contains the link to the cover letter mail in the Git mailing list archive. Please make sure to monitor the discussion in that thread and to address comments and suggestions (while the comments and suggestions will be mirrored into the PR by GitGitGadget, you will still want to reply via mail). If you do not want to subscribe to the Git mailing list just to be able to respond to a mail, you can download the mbox from the Git mailing list archive (click the curl -g --user "<EMailAddress>:<Password>" \
--url "imaps://imap.gmail.com/INBOX" -T /path/to/raw.txt To iterate on your change, i.e. send a revised patch or patch series, you will first want to (force-)push to the same branch. You probably also want to modify your Pull Request description (or title). It is a good idea to summarize the revision by adding something like this to the cover letter (read: by editing the first comment on the PR, i.e. the PR description):
To send a new iteration, just add another PR comment with the contents: Need help?New contributors who want advice are encouraged to join [email protected], where volunteers who regularly contribute to Git are willing to answer newbie questions, give advice, or otherwise provide mentoring to interested contributors. You must join in order to post or view messages, but anyone can join. You may also be able to find help in real time in the developer IRC channel, |
There are issues in commit b5cbe15: |
The documentation made `simple` and `current` sound identical. The difference is that `simple` strictly checks that the upstream tracking branch's name matches the current branch's name. Signed-off-by: Dan Fabulich <[email protected]>
b5cbe15
to
0aef18e
Compare
/allow |
User dfabulich is now allowed to use GitGitGadget. |
/preview |
Preview email sent as [email protected] |
/submit |
Submitted as [email protected] To fetch this version into
To fetch this version to local tag
|
On the Git mailing list, Junio C Hamano wrote (reply to this): "Dan Fabulich via GitGitGadget" <[email protected]> writes:
> From: Dan Fabulich <[email protected]>
>
> The documentation made `simple` and `current` sound identical. The
> difference is that `simple` strictly checks that the upstream tracking
> branch's name matches the current branch's name.
All of the above are correct, and a patch that sticks to fixing that
would have given us a great improvement.
Thanks for working on this documentation update, but it seems some
unrelated changes are mixed in.
> Different values are well-suited for
> specific workflows; for instance, in a purely central workflow
> (i.e. the fetch source is equal to the push destination),
> - `upstream` is probably what you want. Possible values are:
> + `simple` is probably what you want. Possible values are:
This change is not explained/justified at all why it was part of the
patch in the proposed log message.
And I do not think this is a good change. `upstream` is recommended
for most people when they employ a purely central workflow. You can
start working from the common 'master', even on multiple topics in
parallel at the same time, and perform "git push" with push.default
set to 'upstream'. With 'simple' you cannot.
$ git checkout -t -b theme1 origin/master
... work work work ...
$ git checkout -t -b theme2 origin/master
... work work work ...
... changes for theme2 become complete first ...
$ git push
Here, if your push.default is set to 'upstream', your theme2 updates
their master, which is exactly what you want. Then
$ git fetch origin
$ git rebase origin/master theme1
... rebased on updated 'master' at theirs --- at least it should
... contain what we did on our theme2 topic, but possibly
... changes from other people.
... more work ...
$ git push
Again, your theme1 updates their master, which is exactly what you
want.
> @@ -23,8 +23,8 @@ push.default::
> given. This is primarily meant for people who want to
> avoid mistakes by always being explicit.
>
> -* `current` - push the current branch to update a branch with the same
> - name on the receiving end. Works in both central and non-central
> +* `current` - push the current branch to update the branch with the same
> + name on the remote. Works in both central and non-central
> workflows.
Again, a change that is not explained/justified. "a" -> "the" I can
understand (i.e. a branch with the same name is unique over there,
so "the" is more appropriate), but not the other one.
> * `tracking` - This is a deprecated synonym for `upstream`.
>
> -* `simple` - push the current branch with the same name on the remote.
> +* `simple` - push the current branch to its upstream tracking branch,
> + but only if the upstream tracking branch has the same name as the
> + current branch. (`simple` will fail with an error if the upstream
> + tracking branch's name doesn't match the current branch's name.)
That is correct. The additional text may be somewhat helpful for
somebody who just got an error message and wants to understand where
the error comes from.
But stepping back a bit, is understanding why it failed the primary
thing our documentation should aim for? I'd rather see our
documentation help the user achieve what they wanted to do in the
first place. I.e., Be able to push without an error to publish
their work. And for that "this will fail when X" is less helpful
than "this is appropriate if you work this way."
simple - this is like `upstream` but with additional restriction
that the local branch must be named the same as its upstream
branch. Suitable with a very simple centralized workflow, where
you fork off of their 'master' branch to create your own
'master', work there, and push the branch back.
> +
> -If you are working on a centralized workflow (pushing to the same repository you
> -pull from, which is typically `origin`), then you need to configure an upstream
> -branch with the same name.
I do not think this removal is explained/justified, either. Those
who set push.default to 'simple' while using the centralized
workflow must use one-to-one correspondence, so this advice is very
relevant. What makes it a good idea to remove it?
Thanks. |
No description provided.