Skip to content

Commit

Permalink
Merge branch 'rh/ishes-doc'
Browse files Browse the repository at this point in the history
We liberally use "committish" and "commit-ish" (and "treeish" and
"tree-ish"); as these are non-words, let's unify these terms to
their dashed form.  More importantly, clarify the documentation on
object peeling using these terms.

* rh/ishes-doc:
  glossary: fix and clarify the definition of 'ref'
  revisions.txt: fix and clarify <rev>^{<type>}
  glossary: more precise definition of tree-ish (a.k.a. treeish)
  use 'commit-ish' instead of 'committish'
  use 'tree-ish' instead of 'treeish'
  glossary: define commit-ish (a.k.a. committish)
  glossary: mention 'treeish' as an alternative to 'tree-ish'
  • Loading branch information
Junio C Hamano committed Sep 17, 2013
2 parents cd8c891 + 4b6acde commit 89dde78
Show file tree
Hide file tree
Showing 30 changed files with 118 additions and 83 deletions.
2 changes: 1 addition & 1 deletion Documentation/RelNotes/1.7.11.2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Fixes since v1.7.11.1
* "git diff --no-index" did not work with pagers correctly.

* "git diff COPYING HEAD:COPYING" gave a nonsense error message that
claimed that the treeish HEAD did not have COPYING in it.
claimed that the tree-ish HEAD did not have COPYING in it.

* When "git log" gets "--simplify-merges/by-decoration" together with
"--first-parent", the combination of these options makes the
Expand Down
4 changes: 2 additions & 2 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ advice.*::
pushNeedsForce::
Shown when linkgit:git-push[1] rejects an update that
tries to overwrite a remote ref that points at an
object that is not a committish, or make the remote
ref point at an object that is not a committish.
object that is not a commit-ish, or make the remote
ref point at an object that is not a commit-ish.
statusHints::
Show directions on how to proceed from the current
state in the output of linkgit:git-status[1], in
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-cat-file.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ OPTIONS

--textconv::
Show the content as transformed by a textconv filter. In this case,
<object> has be of the form <treeish>:<path>, or :<path> in order
<object> has be of the form <tree-ish>:<path>, or :<path> in order
to apply the filter to the content recorded in the index at <path>.

--batch::
Expand Down
14 changes: 7 additions & 7 deletions Documentation/git-describe.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ git-describe - Show the most recent tag that is reachable from a commit
SYNOPSIS
--------
[verse]
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <committish>...
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <commit-ish>...
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]

DESCRIPTION
Expand All @@ -26,8 +26,8 @@ see the -a and -s options to linkgit:git-tag[1].

OPTIONS
-------
<committish>...::
Committish object names to describe.
<commit-ish>...::
Commit-ish object names to describe.

--dirty[=<mark>]::
Describe the working tree.
Expand Down Expand Up @@ -57,7 +57,7 @@ OPTIONS

--candidates=<n>::
Instead of considering only the 10 most recent tags as
candidates to describe the input committish consider
candidates to describe the input commit-ish consider
up to <n> candidates. Increasing <n> above 10 will take
slightly longer but may produce a more accurate result.
An <n> of 0 will cause only exact matches to be output.
Expand Down Expand Up @@ -145,7 +145,7 @@ be sufficient to disambiguate these commits.
SEARCH STRATEGY
---------------

For each committish supplied, 'git describe' will first look for
For each commit-ish supplied, 'git describe' will first look for
a tag which tags exactly that commit. Annotated tags will always
be preferred over lightweight tags, and tags with newer dates will
always be preferred over tags with older dates. If an exact match
Expand All @@ -154,12 +154,12 @@ is found, its name will be output and searching will stop.
If an exact match was not found, 'git describe' will walk back
through the commit history to locate an ancestor commit which
has been tagged. The ancestor's tag will be output along with an
abbreviation of the input committish's SHA-1. If '--first-parent' was
abbreviation of the input commit-ish's SHA-1. If '--first-parent' was
specified then the walk will only consider the first parent of each
commit.

If multiple tags were found during the walk then the tag which
has the fewest commits different from the input committish will be
has the fewest commits different from the input commit-ish will be
selected and output. Here fewest commits different is defined as
the number of commits which would be shown by `git log tag..input`
will be the smallest number of commits possible.
Expand Down
26 changes: 13 additions & 13 deletions Documentation/git-fast-import.txt
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,8 @@ change to the project.
('author' (SP <name>)? SP LT <email> GT SP <when> LF)?
'committer' (SP <name>)? SP LT <email> GT SP <when> LF
data
('from' SP <committish> LF)?
('merge' SP <committish> LF)?
('from' SP <commit-ish> LF)?
('merge' SP <commit-ish> LF)?
(filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)*
LF?
....
Expand Down Expand Up @@ -460,9 +460,9 @@ as the current commit on that branch is automatically assumed to
be the first ancestor of the new commit.

As `LF` is not valid in a Git refname or SHA-1 expression, no
quoting or escaping syntax is supported within `<committish>`.
quoting or escaping syntax is supported within `<commit-ish>`.

Here `<committish>` is any of the following:
Here `<commit-ish>` is any of the following:

* The name of an existing branch already in fast-import's internal branch
table. If fast-import doesn't know the name, it's treated as a SHA-1
Expand Down Expand Up @@ -509,7 +509,7 @@ additional ancestors (forming a 16-way merge). For this reason
it is suggested that frontends do not use more than 15 `merge`
commands per commit; 16, if starting a new, empty branch.

Here `<committish>` is any of the commit specification expressions
Here `<commit-ish>` is any of the commit specification expressions
also accepted by `from` (see above).

`filemodify`
Expand Down Expand Up @@ -677,8 +677,8 @@ paths for a commit are encouraged to do so.
`notemodify`
^^^^^^^^^^^^
Included in a `commit` `<notes_ref>` command to add a new note
annotating a `<committish>` or change this annotation contents.
Internally it is similar to filemodify 100644 on `<committish>`
annotating a `<commit-ish>` or change this annotation contents.
Internally it is similar to filemodify 100644 on `<commit-ish>`
path (maybe split into subdirectories). It's not advised to
use any other commands to write to the `<notes_ref>` tree except
`filedeleteall` to delete all existing notes in this tree.
Expand All @@ -691,7 +691,7 @@ External data format::
commit that is to be annotated.
+
....
'N' SP <dataref> SP <committish> LF
'N' SP <dataref> SP <commit-ish> LF
....
+
Here `<dataref>` can be either a mark reference (`:<idnum>`)
Expand All @@ -704,13 +704,13 @@ Inline data format::
command.
+
....
'N' SP 'inline' SP <committish> LF
'N' SP 'inline' SP <commit-ish> LF
data
....
+
See below for a detailed description of the `data` command.

In both formats `<committish>` is any of the commit specification
In both formats `<commit-ish>` is any of the commit specification
expressions also accepted by `from` (see above).

`mark`
Expand Down Expand Up @@ -741,7 +741,7 @@ lightweight (non-annotated) tags see the `reset` command below.

....
'tag' SP <name> LF
'from' SP <committish> LF
'from' SP <commit-ish> LF
'tagger' (SP <name>)? SP LT <email> GT SP <when> LF
data
....
Expand Down Expand Up @@ -786,11 +786,11 @@ branch from an existing commit without creating a new commit.

....
'reset' SP <ref> LF
('from' SP <committish> LF)?
('from' SP <commit-ish> LF)?
LF?
....

For a detailed description of `<ref>` and `<committish>` see above
For a detailed description of `<ref>` and `<commit-ish>` see above
under `commit` and `from`.

The `LF` after the command is optional (it used to be required).
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-merge-tree.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ SYNOPSIS

DESCRIPTION
-----------
Reads three treeish, and output trivial merge results and
Reads three tree-ish, and output trivial merge results and
conflicting stages to the standard output. This is similar to
what three-way 'git read-tree -m' does, but instead of storing the
results in the index, the command outputs the entries to the
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-name-rev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git name-rev' [--tags] [--refs=<pattern>]
( --all | --stdin | <committish>... )
( --all | --stdin | <commit-ish>... )

DESCRIPTION
-----------
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-push.txt
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ already exists on the remote side.
--follow-tags::
Push all the refs that would be pushed without this option,
and also push annotated tags in `refs/tags` that are missing
from the remote but are pointing at committish that are
from the remote but are pointing at commit-ish that are
reachable from the refs being pushed.

--receive-pack=<git-receive-pack>::
Expand Down
2 changes: 1 addition & 1 deletion Documentation/gitcli.txt
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ couple of magic command line options:
+
---------------------------------------------
$ git describe -h
usage: git describe [options] <committish>*
usage: git describe [options] <commit-ish>*
or: git describe [options] --dirty

--contains find the tag that comes after the commit
Expand Down
47 changes: 39 additions & 8 deletions Documentation/glossary-content.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,18 @@ to point at the new commit.
to the top <<def_directory,directory>> of the stored
revision.

[[def_commit-ish]]commit-ish (also committish)::
A <<def_commit_object,commit object>> or an
<<def_object,object>> that can be recursively dereferenced to
a commit object.
The following are all commit-ishes:
a commit object,
a <<def_tag_object,tag object>> that points to a commit
object,
a tag object that points to a tag object that points to a
commit object,
etc.

[[def_core_git]]core Git::
Fundamental data structures and utilities of Git. Exposes only limited
source code management tools.
Expand Down Expand Up @@ -427,10 +439,20 @@ should not be combined with other pathspec.
to the result.

[[def_ref]]ref::
A 40-byte hex representation of a <<def_SHA1,SHA-1>> or a name that
denotes a particular <<def_object,object>>. They may be stored in
a file under `$GIT_DIR/refs/` directory, or
in the `$GIT_DIR/packed-refs` file.
A name that begins with `refs/` (e.g. `refs/heads/master`)
that points to an <<def_object_name,object name>> or another
ref (the latter is called a <<def_symref,symbolic ref>>).
For convenience, a ref can sometimes be abbreviated when used
as an argument to a Git command; see linkgit:gitrevisions[7]
for details.
Refs are stored in the <<def_repository,repository>>.
+
The ref namespace is hierarchical.
Different subhierarchies are used for different purposes (e.g. the
`refs/heads/` hierarchy is used to represent local branches).
+
There are a few special-purpose refs that do not begin with `refs/`.
The most notable example is `HEAD`.

[[def_reflog]]reflog::
A reflog shows the local "history" of a ref. In other words,
Expand Down Expand Up @@ -530,10 +552,19 @@ should not be combined with other pathspec.
with refs to the associated blob and/or tree objects. A
<<def_tree,tree>> is equivalent to a <<def_directory,directory>>.

[[def_tree-ish]]tree-ish::
A <<def_ref,ref>> pointing to either a <<def_commit_object,commit
object>>, a <<def_tree_object,tree object>>, or a <<def_tag_object,tag
object>> pointing to a tag or commit or tree object.
[[def_tree-ish]]tree-ish (also treeish)::
A <<def_tree_object,tree object>> or an <<def_object,object>>
that can be recursively dereferenced to a tree object.
Dereferencing a <<def_commit_object,commit object>> yields the
tree object corresponding to the <<def_revision,revision>>'s
top <<def_directory,directory>>.
The following are all tree-ishes:
a <<def_commit-ish,commit-ish>>,
a tree object,
a <<def_tag_object,tag object>> that points to a tree object,
a tag object that points to a tag object that points to a tree
object,
etc.

[[def_unmerged_index]]unmerged index::
An <<def_index,index>> which contains unmerged
Expand Down
2 changes: 1 addition & 1 deletion Documentation/howto/revert-branch-rebase.txt
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ $ git pull . master
Packing 0 objects
Unpacking 0 objects

* committish: e3a693c... refs/heads/master from .
* commit-ish: e3a693c... refs/heads/master from .
Trying to merge e3a693c... into 8c1f5f0... using 10d781b...
Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f
cache.h | 8 ++++----
Expand Down
12 changes: 8 additions & 4 deletions Documentation/revisions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,14 @@ some output processing may assume ref names in UTF-8.

'<rev>{caret}\{<type>\}', e.g. 'v0.99.8{caret}\{commit\}'::
A suffix '{caret}' followed by an object type name enclosed in
brace pair means the object
could be a tag, and dereference the tag recursively until an
object of that type is found or the object cannot be
dereferenced anymore (in which case, barf). '<rev>{caret}0'
brace pair means dereference the object at '<rev>' recursively until
an object of type '<type>' is found or the object cannot be
dereferenced anymore (in which case, barf).
For example, if '<rev>' is a commit-ish, '<rev>{caret}\{commit\}'
describes the corresponding commit object.
Similarly, if '<rev>' is a tree-ish, '<rev>{caret}\{tree\}'
describes the corresponding tree object.
'<rev>{caret}0'
is a short-hand for '<rev>{caret}\{commit\}'.
+
'rev{caret}\{object\}' can be used to make sure 'rev' names an
Expand Down
4 changes: 2 additions & 2 deletions builtin/describe.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#define MAX_TAGS (FLAG_BITS - 1)

static const char * const describe_usage[] = {
N_("git describe [options] <committish>*"),
N_("git describe [options] <commit-ish>*"),
N_("git describe [options] --dirty"),
NULL
};
Expand Down Expand Up @@ -486,7 +486,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
}
describe("HEAD", 1);
} else if (dirty) {
die(_("--dirty is incompatible with committishes"));
die(_("--dirty is incompatible with commit-ishes"));
} else {
while (argc-- > 0) {
describe(*argv++, argc == 0);
Expand Down
2 changes: 1 addition & 1 deletion builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -1193,7 +1193,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* This could be traditional "merge <msg> HEAD <commit>..." and
* the way we can tell it is to see if the second token is HEAD,
* but some people might have misused the interface and used a
* committish that is the same as HEAD there instead.
* commit-ish that is the same as HEAD there instead.
* Traditional format never would have "-m" so it is an
* additional safety measure to check for it.
*/
Expand Down
2 changes: 1 addition & 1 deletion contrib/examples/git-merge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ fi

# This could be traditional "merge <msg> HEAD <commit>..." and the
# way we can tell it is to see if the second token is HEAD, but some
# people might have misused the interface and used a committish that
# people might have misused the interface and used a commit-ish that
# is the same as HEAD there instead. Traditional format never would
# have "-m" so it is an additional safety measure to check for it.

Expand Down
Loading

0 comments on commit 89dde78

Please sign in to comment.