rev-parse: documentation adjustment - mention remote tracking with @{u}
PATCH 1/1 rev-parse: documentation adjustment - mention remote tracking with @{u}
From: Tao Klerks <[email protected]>
The documentation explained the conversion from remote branch path to local tracking ref path for @{push}, but not for @{upstream}.
Add the note to @{upstream}, and reference it in @{push} to avoid undue repetition.
---
rev-parse: documentation adjustment - mention remote tracking with @{u}
Small clarification in the doc for git rev-parse.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1265%2FTaoK%2Ftao-upstreak-doc-fix-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1265/TaoK/tao-upstreak-doc-fix-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1265
Documentation/revisions.txt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)
Documentation/revisions.txt +9 -8
@@ -97,18 +97,19 @@ some output processing may assume ref names in UTF-8. '[<branchname>]@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}':: The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}') - refers to the branch that the branch specified by branchname is set to build on - top of (configured with `branch.<name>.remote` and - `branch.<name>.merge`). A missing branchname defaults to the - current one. These suffixes are also accepted when spelled in uppercase, and - they mean the same thing no matter the case. + refers to the remote branch that the branch specified by branchname + is set to build on top of (configured with `branch.<name>.remote` and + `branch.<name>.merge`). As `branch.<name>.merge` is the branch path on the + remote, it is first converted to a local tracking branch (i.e., something in + `refs/remotes/`). A missing branchname defaults to the current one. These + suffixes are also accepted when spelled in uppercase, and they mean the same + thing no matter the case. '[<branchname>]@\{push\}', e.g. 'master@\{push\}', '@\{push\}':: The suffix '@\{push}' reports the branch "where we would push to" if `git push` were run while `branchname` was checked out (or the current - `HEAD` if no branchname is specified). Since our push destination is - in a remote repository, of course, we report the local tracking branch - that corresponds to that branch (i.e., something in `refs/remotes/`). + `HEAD` if no branchname is specified). Like for '@\{upstream\}', we report + the local tracking branch that corresponds to that remote branch. + Here's an example to make it more clear: +
base-commit: 5b71c59bc3b9365075e2a175aa7b6f2b0c84ce44
Signature · 1 line
gitgitgadget
Documentation/revisions.txt some output processing may assume ref names in UTF-8.
Quoted 10 lines · Tao Klerks via GitGitGadget
'[<branchname>]@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}'::
The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}')Documentation/revisions.txt +3
-5- refers to the branch that the branch specified by branchname is set to build on - top of (configured with `branch.<name>.remote` and - `branch.<name>.merge`). A missing branchname defaults to the - current one. These suffixes are also accepted when spelled in uppercase, and - they mean the same thing no matter the case. + refers to the remote branch that the branch specified by branchname + is set to build on top of (configured with `branch.<name>.remote` and + `branch.<name>.merge`).
Let's refrain from inventing confusing new phrases that are not defined in "git help glossary".
What is a "remote branch"? I think this is better left as "the branch", to avoid confusion with remote-tracking branch we keep locally. I think a version with a slight tweak, e.g.
... refers to the name of the branch (configured with branch.<name>.merge) at the remote (configured with branch.<name>.remote) that the branch is set to build on top of.
would be OK, though.
Review
Quoted 3 lines
... As
branch.<name>.mergeis the branch path on the(quoted diff) +2
-0+ remote, it is first converted to a local tracking branch (i.e., something in + `refs/remotes/`).
Let's correct it to "remote-tracking branch".
But more importantly, the order of explanation feels a bit backwards. Something like...
A branch B may be set up to build on top of a branch X (configured with branch.<name>.merge) at a remote R (configured with branch.<name>.remote). B@{u} refers to the remote-tracking branch for the branch X taken from remote R, typically found at refs/remotes/R/X.
... to cover both of the above, perhaps, may flow more naturally?
Quoted 17 lines
... A missing branchname defaults to the current one. These
Documentation/revisions.txt +4
-3+ suffixes are also accepted when spelled in uppercase, and they mean the same + thing no matter the case. '[<branchname>]@\{push\}', e.g. 'master@\{push\}', '@\{push\}':: The suffix '@\{push}' reports the branch "where we would push to" if `git push` were run while `branchname` was checked out (or the current - `HEAD` if no branchname is specified). Since our push destination is - in a remote repository, of course, we report the local tracking branch - that corresponds to that branch (i.e., something in `refs/remotes/`). + `HEAD` if no branchname is specified). Like for '@\{upstream\}', we report + the local tracking branch that corresponds to that remote branch. + Here's an example to make it more clear: +base-commit:
5b71c59bc3b9365075e2a175aa7b6f2b0c84ce44
Quoted 12 lines · Junio C Hamano
Review
Quoted 3 lines · Tao Klerks via GitGitGadget
... As
branch.<name>.mergeis the branch path on the(quoted diff) +2
-0+ remote, it is first converted to a local tracking branch (i.e., something in + `refs/remotes/`).Let's correct it to "remote-tracking branch".
But more importantly, the order of explanation feels a bit backwards. Something like...
Quoted 8 lines
A branch B may be set up to build on top of a branch X (configured with
branch.<name>.merge) at a remote R (configured withbranch.<name>.remote). B@{u} refers to the remote-tracking branch for the branch X taken from remote R, typically found atrefs/remotes/R/X.... to cover both of the above, perhaps, may flow more naturally?
Looks great, thanks! I feel like a bit of a fraud signing my name to it now, but the important thing is that's a much better improvement than I proposed. Patch v2 coming.
PATCH v2 1/1 rev-parse: documentation adjustment - mention remote tracking with @{u}
In reply to Tao Klerks via GitGitGadgetFrom: Tao Klerks <[email protected]>
The documentation explained the conversion from remote branch path to local tracking ref path for @{push}, but not for @{upstream}.
Add the explanation to @{upstream}, and reference it in @{push} to avoid undue repetition.
---
rev-parse: documentation adjustment - mention remote tracking with @{u}
Small clarification in the doc for git rev-parse.
Changes in V2:
* Applied Junio's proposed simplification
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1265%2FTaoK%2Ftao-upstreak-doc-fix-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1265/TaoK/tao-upstreak-doc-fix-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1265
Range-diff vs v1:
1: 58d2735d752 ! 1: 9e47e12e9cb rev-parse: documentation adjustment - mention remote tracking with @{u}
@@ Commit message
The documentation explained the conversion from remote branch path to
local tracking ref path for @{push}, but not for @{upstream}.
- Add the note to @{upstream}, and reference it in @{push} to avoid undue
- repetition.
+ Add the explanation to @{upstream}, and reference it in @{push} to avoid
+ undue repetition.
## Documentation/revisions.txt ##
@@ Documentation/revisions.txt: some output processing may assume ref names in UTF-8.
+ before the current one.
'[<branchname>]@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}'::
- The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}')
+- The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}')
- refers to the branch that the branch specified by branchname is set to build on
- top of (configured with branch.<name>.remote and
- branch.<name>.merge). A missing branchname defaults to the
- current one. These suffixes are also accepted when spelled in uppercase, and
- they mean the same thing no matter the case.
-+ refers to the remote branch that the branch specified by branchname -+ is set to build on top of (configured with branch.<name>.remote and -+ branch.<name>.merge). As branch.<name>.merge is the branch path on the -+ remote, it is first converted to a local tracking branch (i.e., something in -+ refs/remotes/). A missing branchname defaults to the current one. These -+ suffixes are also accepted when spelled in uppercase, and they mean the same -+ thing no matter the case.
++ A branch B may be set up to build on top of a branch X (configured with ++ branch.<name>.merge) at a remote R (configured with
++ branch.<name>.remote). B@{u} refers to the remote-tracking branch for ++ the branch X taken from remote R, typically found at refs/remotes/R/X.
'[<branchname>]@\{push\}', e.g. 'master@\{push\}', '@\{push\}'::
The suffix '@\{push}' reports the branch "where we would push to" if
@@ Documentation/revisions.txt: some output processing may assume ref names in UTF-
- in a remote repository, of course, we report the local tracking branch
- that corresponds to that branch (i.e., something in refs/remotes/).
+ HEAD if no branchname is specified). Like for '@\{upstream\}', we report
-+ the local tracking branch that corresponds to that remote branch. ++ the remote-tracking branch that corresponds to that branch at the remote.
+
Here's an example to make it more clear:
+
Documentation/revisions.txt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
Documentation/revisions.txt +6 -9
@@ -96,19 +96,16 @@ some output processing may assume ref names in UTF-8. before the current one. '[<branchname>]@\{upstream\}', e.g. 'master@\{upstream\}', '@\{u\}':: - The suffix '@\{upstream\}' to a branchname (short form '<branchname>@\{u\}') - refers to the branch that the branch specified by branchname is set to build on - top of (configured with `branch.<name>.remote` and - `branch.<name>.merge`). A missing branchname defaults to the - current one. These suffixes are also accepted when spelled in uppercase, and - they mean the same thing no matter the case. + A branch B may be set up to build on top of a branch X (configured with + `branch.<name>.merge`) at a remote R (configured with + `branch.<name>.remote`). B@{u} refers to the remote-tracking branch for + the branch X taken from remote R, typically found at `refs/remotes/R/X`. '[<branchname>]@\{push\}', e.g. 'master@\{push\}', '@\{push\}':: The suffix '@\{push}' reports the branch "where we would push to" if `git push` were run while `branchname` was checked out (or the current - `HEAD` if no branchname is specified). Since our push destination is - in a remote repository, of course, we report the local tracking branch - that corresponds to that branch (i.e., something in `refs/remotes/`). + `HEAD` if no branchname is specified). Like for '@\{upstream\}', we report + the remote-tracking branch that corresponds to that branch at the remote. + Here's an example to make it more clear: +
base-commit: 5b71c59bc3b9365075e2a175aa7b6f2b0c84ce44
Signature · 1 line
gitgitgadget