Merge branch 'ta/glossary'
authorJunio C Hamano <gitster@pobox.com>
Mon, 22 Apr 2013 01:40:15 +0000 (18:40 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Apr 2013 01:40:15 +0000 (18:40 -0700)
* ta/glossary:
glossary: improve definitions of refspec and pathspec
The name of the hash function is "SHA-1", not "SHA1"
glossary: improve description of SHA-1 related topics
glossary: remove outdated/misleading/irrelevant entries

1  2 
Documentation/config.txt
Documentation/git-rev-parse.txt
Documentation/glossary-content.txt
Documentation/pretty-formats.txt
Documentation/revisions.txt
diff --combined Documentation/config.txt
index 29559c88af2e5cc2aeffdc29626b6710446bc10f,323827962cfb90aa7140b725f8d16d28237afc10..c67038b56dd4165e12d74fe81c3dcbddd943b1f8
@@@ -412,7 -412,7 +412,7 @@@ repository's usual working tree)
  core.logAllRefUpdates::
        Enable the reflog. Updates to a ref <ref> is logged to the file
        "$GIT_DIR/logs/<ref>", by appending the new and old
-       SHA1, the date/time and the reason of the update, but
+       SHA-1, the date/time and the reason of the update, but
        only when the file exists.  If this configuration
        variable is set to true, missing "$GIT_DIR/logs/<ref>"
        file is automatically created for branch heads (i.e. under
@@@ -727,22 -727,9 +727,22 @@@ branch.autosetuprebase:
        This option defaults to never.
  
  branch.<name>.remote::
 -      When in branch <name>, it tells 'git fetch' and 'git push' which
 -      remote to fetch from/push to.  It defaults to `origin` if no remote is
 -      configured. `origin` is also used if you are not on any branch.
 +      When on branch <name>, it tells 'git fetch' and 'git push'
 +      which remote to fetch from/push to.  The remote to push to
 +      may be overridden with `remote.pushdefault` (for all branches).
 +      The remote to push to, for the current branch, may be further
 +      overridden by `branch.<name>.pushremote`.  If no remote is
 +      configured, or if you are not on any branch, it defaults to
 +      `origin` for fetching and `remote.pushdefault` for pushing.
 +
 +branch.<name>.pushremote::
 +      When on branch <name>, it overrides `branch.<name>.remote` for
 +      pushing.  It also overrides `remote.pushdefault` for pushing
 +      from branch <name>.  When you pull from one place (e.g. your
 +      upstream) and push to another place (e.g. your own publishing
 +      repository), you would want to set `remote.pushdefault` to
 +      specify the remote to push to for all branches, and use this
 +      option to override it for a specific branch.
  
  branch.<name>.merge::
        Defines, together with branch.<name>.remote, the upstream branch
@@@ -807,8 -794,7 +807,8 @@@ color.branch:
  color.branch.<slot>::
        Use customized color for branch coloration. `<slot>` is one of
        `current` (the current branch), `local` (a local branch),
 -      `remote` (a remote-tracking branch in refs/remotes/), `plain` (other
 +      `remote` (a remote-tracking branch in refs/remotes/),
 +      `upstream` (upstream tracking branch), `plain` (other
        refs).
  +
  The value for these configuration variables is a list of colors (at most
@@@ -1110,11 -1096,6 +1110,11 @@@ format.signoff:
      the rights to submit this work under the same open source license.
      Please see the 'SubmittingPatches' document for further discussion.
  
 +format.coverLetter::
 +      A boolean that controls whether to generate a cover-letter when
 +      format-patch is invoked, but in addition can be set to "auto", to
 +      generate a cover-letter only when there's more than one patch.
 +
  filter.<driver>.clean::
        The command which is used to convert the content of a worktree
        file to a blob upon checkin.  See linkgit:gitattributes[5] for
@@@ -1466,14 -1447,6 +1466,14 @@@ http.sslCAPath:
        with when fetching or pushing over HTTPS. Can be overridden
        by the 'GIT_SSL_CAPATH' environment variable.
  
 +http.sslTry::
 +      Attempt to use AUTH SSL/TLS and encrypted data transfers
 +      when connecting via regular FTP protocol. This might be needed
 +      if the FTP server requires it for security reasons or you wish
 +      to connect securely whenever remote FTP server supports it.
 +      Default is false since it might trigger certificate verification
 +      errors on misconfigured servers.
 +
  http.maxRequests::
        How many HTTP requests to launch in parallel. Can be overridden
        by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
@@@ -1925,11 -1898,6 +1925,11 @@@ receive.updateserverinfo:
        If set to true, git-receive-pack will run git-update-server-info
        after receiving data from git-push and updating refs.
  
 +remote.pushdefault::
 +      The remote to push to by default.  Overrides
 +      `branch.<name>.remote` for all branches, and is overridden by
 +      `branch.<name>.pushremote` for specific branches.
 +
  remote.<name>.url::
        The URL of a remote repository.  See linkgit:git-fetch[1] or
        linkgit:git-push[1].
@@@ -2030,7 -1998,6 +2030,7 @@@ sendemail.<identity>.*:
  
  sendemail.aliasesfile::
  sendemail.aliasfiletype::
 +sendemail.annotate::
  sendemail.bcc::
  sendemail.cc::
  sendemail.cccmd::
@@@ -2156,13 -2123,7 +2156,13 @@@ uploadpack.hiderefs:
        are under the hierarchies listed on the value of this
        variable is excluded, and is hidden from `git ls-remote`,
        `git fetch`, etc.  An attempt to fetch a hidden ref by `git
 -      fetch` will fail.
 +      fetch` will fail.  See also `uploadpack.allowtipsha1inwant`.
 +
 +uploadpack.allowtipsha1inwant::
 +      When `uploadpack.hiderefs` is in effect, allow `upload-pack`
 +      to accept a fetch request that asks for an object at the tip
 +      of a hidden ref (by default, such a request is rejected).
 +      see also `uploadpack.hiderefs`.
  
  url.<base>.insteadOf::
        Any URL that starts with this value will be rewritten to
index 1f9ed6cfd28622afcf269eb8dac05fb9414d9901,f2537bb83744b0b0c3e0e30df4f174b79a92a7b5..947d62fd25e4b326af44a6f6933e98d9cc3e7153
@@@ -60,19 -60,8 +60,19 @@@ OPTION
        instead.
  
  --verify::
 -      The parameter given must be usable as a single, valid
 -      object name.  Otherwise barf and abort.
 +      Verify that exactly one parameter is provided, and that it
 +      can be turned into a raw 20-byte SHA-1 that can be used to
 +      access the object database. If so, emit it to the standard
 +      output; otherwise, error out.
 ++
 +If you want to make sure that the output actually names an object in
 +your object database and/or can be used as a specific type of object
 +you require, you can add "^{type}" peeling operator to the parmeter.
 +For example, `git rev-parse "$VAR^{commit}"` will make sure `$VAR`
 +names an existing object that is a commit-ish (i.e. a commit, or an
 +annotated tag that points at a commit).  To make sure that `$VAR`
 +names an existing object of any type, `git rev-parse "$VAR^{object}"`
 +can be used.
  
  -q::
  --quiet::
@@@ -95,7 -84,7 +95,7 @@@
        one.
  
  --symbolic::
-       Usually the object names are output in SHA1 form (with
+       Usually the object names are output in SHA-1 form (with
        possible '{caret}' prefix); this option makes them output in a
        form as close to the original input as possible.
  
@@@ -180,7 -169,7 +180,7 @@@ print a message to stderr and exit wit
  
  --short::
  --short=number::
-       Instead of outputting the full SHA1 values of object names try to
+       Instead of outputting the full SHA-1 values of object names try to
        abbreviate them to a shorter unique name. When no length is specified
        7 is used. The minimum length is 4.
  
@@@ -319,12 -308,12 +319,12 @@@ $ git rev-parse --verify HEA
  * Print the commit object name from the revision in the $REV shell variable:
  +
  ------------
 -$ git rev-parse --verify $REV
 +$ git rev-parse --verify $REV^{commit}
  ------------
  +
  This will error out if $REV is empty or not a valid revision.
  
 -* Same as above:
 +* Similar to above:
  +
  ------------
  $ git rev-parse --default master --verify $REV
index 2478a3963cc774f1bf73c56660a2d4c096ad4d94,740bb325bf8006340c30659e58a76ac84f47b851..ce3e4fae731b6c6c4e67034393309cd20f69b7dc
@@@ -100,26 -100,10 +100,23 @@@ to point at the new commit
  
  [[def_detached_HEAD]]detached HEAD::
        Normally the <<def_HEAD,HEAD>> stores the name of a
 -      <<def_branch,branch>>.  However, Git also allows you to <<def_checkout,check out>>
 -      an arbitrary <<def_commit,commit>> that isn't necessarily the tip of any
 -      particular branch.  In this case HEAD is said to be "detached".
 +      <<def_branch,branch>>, and commands that operate on the
 +      history HEAD represents operate on the history leading to the
 +      tip of the branch the HEAD points at.  However, Git also
 +      allows you to <<def_checkout,check out>> an arbitrary
 +      <<def_commit,commit>> that isn't necessarily the tip of any
 +      particular branch.  The HEAD in such a state is called
 +      "detached".
 ++
 +Note that commands that operate on the history of the current branch
 +(e.g. `git commit` to build a new history on top of it) still work
 +while the HEAD is detached. They update the HEAD to point at the tip
 +of the updated history without affecting any branch.  Commands that
 +update or inquire information _about_ the current branch (e.g. `git
 +branch --set-upstream-to` that sets what remote tracking branch the
 +current branch integrates with) obviously do not work, as there is no
 +(real) current branch to ask about in this state.
  
- [[def_dircache]]dircache::
-       You are *waaaaay* behind. See <<def_index,index>>.
  [[def_directory]]directory::
        The list you get with "ls" :-)
  
        it contains modifications which have not been <<def_commit,committed>> to the current
        <<def_branch,branch>>.
  
- [[def_ent]]ent::
-       Favorite synonym to "<<def_tree-ish,tree-ish>>" by some total geeks. See
-       http://en.wikipedia.org/wiki/Ent_(Middle-earth) for an in-depth
-       explanation. Avoid this term, not to confuse people.
  [[def_evil_merge]]evil merge::
        An evil merge is a <<def_merge,merge>> that introduces changes that
        do not appear in any <<def_parent,parent>>.
        created. Configured via the `.git/info/grafts` file.
  
  [[def_hash]]hash::
-       In Git's context, synonym to <<def_object_name,object name>>.
+       In Git's context, synonym for <<def_object_name,object name>>.
  
  [[def_head]]head::
        A <<def_ref,named reference>> to the <<def_commit,commit>> at the tip of a
@@@ -246,7 -225,7 +238,7 @@@ This commit is referred to as a "merge 
  
  [[def_object]]object::
        The unit of storage in Git. It is uniquely identified by the
-       <<def_SHA1,SHA1>> of its contents. Consequently, an
+       <<def_SHA1,SHA-1>> of its contents. Consequently, an
        object can not be changed.
  
  [[def_object_database]]object database::
        Synonym for <<def_object_name,object name>>.
  
  [[def_object_name]]object name::
-       The unique identifier of an <<def_object,object>>. The <<def_hash,hash>>
-       of the object's contents using the Secure Hash Algorithm
-       1 and usually represented by the 40 character hexadecimal encoding of
-       the <<def_hash,hash>> of the object.
+       The unique identifier of an <<def_object,object>>.  The
+       object name is usually represented by a 40 character
+       hexadecimal string.  Also colloquially called <<def_SHA1,SHA-1>>.
  
  [[def_object_type]]object type::
        One of the identifiers "<<def_commit_object,commit>>",
        <<def_object,object>>.
  
  [[def_octopus]]octopus::
-       To <<def_merge,merge>> more than two <<def_branch,branches>>. Also denotes an
-       intelligent predator.
+       To <<def_merge,merge>> more than two <<def_branch,branches>>.
  
  [[def_origin]]origin::
        The default upstream <<def_repository,repository>>. Most projects have
        pack.
  
  [[def_pathspec]]pathspec::
-        Pattern used to specify paths.
+       Pattern used to limit paths in Git commands.
  +
  Pathspecs are used on the command line of "git ls-files", "git
  ls-tree", "git add", "git grep", "git diff", "git checkout",
@@@ -300,6 -277,8 +290,8 @@@ limit the scope of operations to some s
  worktree.  See the documentation of each command for whether
  paths are relative to the current directory or toplevel.  The
  pathspec syntax is as follows:
+ +
+ --
  
  * any path matches itself
  * the pathspec up to the last slash represents a
    of the pathname.  Paths relative to the directory
    prefix will be matched against that pattern using fnmatch(3);
    in particular, '*' and '?' _can_ match directory separators.
+ --
  +
  For example, Documentation/*.jpg will match all .jpg files
  in the Documentation subtree,
  including Documentation/chapter_1/figure_1.jpg.
  +
  A pathspec that begins with a colon `:` has special meaning.  In the
  short form, the leading colon `:` is followed by zero or more "magic
@@@ -329,18 -309,10 +322,10 @@@ and a close parentheses `)`, and the re
  against the path.
  +
  The "magic signature" consists of an ASCII symbol that is not
- alphanumeric.
- +
- --
- top `/`;;
-       The magic word `top` (mnemonic: `/`) makes the pattern match
-       from the root of the working tree, even when you are running
-       the command from inside a subdirectory.
- --
- +
- Currently only the slash `/` is recognized as the "magic signature",
- but it is envisioned that we will support more types of magic in later
- versions of Git.
+ alphanumeric. Currently only the slash `/` is recognized as a
+ "magic signature": it makes the pattern match from the root of
+ the working tree, even when you are running the command from
+ inside a subdirectory.
  +
  A pathspec with only a colon means "there is no pathspec". This form
  should not be combined with other pathspec.
        to the result.
  
  [[def_ref]]ref::
-       A 40-byte hex representation of a <<def_SHA1,SHA1>> or a name that
+       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.
  [[def_refspec]]refspec::
        A "refspec" is used by <<def_fetch,fetch>> and
        <<def_push,push>> to describe the mapping between remote
-       <<def_ref,ref>> and local ref. They are combined with a colon in
-       the format <src>:<dst>, preceded by an optional plus sign, +.
-       For example: `git fetch $URL
-       refs/heads/master:refs/heads/origin` means "grab the master
-       <<def_branch,branch>> <<def_head,head>> from the $URL and store
-       it as my origin branch head". And `git push
-       $URL refs/heads/master:refs/heads/to-upstream` means "publish my
-       master branch head as to-upstream branch at $URL". See also
-       linkgit:git-push[1].
+       <<def_ref,ref>> and local ref.
  
  [[def_remote_tracking_branch]]remote-tracking branch::
        A regular Git <<def_branch,branch>> that is used to follow changes from
  [[def_SCM]]SCM::
        Source code management (tool).
  
- [[def_SHA1]]SHA1::
-       Synonym for <<def_object_name,object name>>.
+ [[def_SHA1]]SHA-1::
+       "Secure Hash Algorithm 1"; a cryptographic hash function.
+       In the context of Git used as a synonym for <<def_object_name,object name>>.
  
  [[def_shallow_repository]]shallow repository::
        A shallow <<def_repository,repository>> has an incomplete
        its history can be later deepened with linkgit:git-fetch[1].
  
  [[def_symref]]symref::
-       Symbolic reference: instead of containing the <<def_SHA1,SHA1>>
+       Symbolic reference: instead of containing the <<def_SHA1,SHA-1>>
        id itself, it is of the format 'ref: refs/some/thing' and when
        referenced, it recursively dereferences to this reference.
        '<<def_HEAD,HEAD>>' is a prime example of a symref. Symbolic
index afac703f21245b6fa34af90b1da4b3194372a81d,342965d4f63bc9cecef94cacc61ede68c878c385..f5b50dcba2b97d9293cf2332346e778706bda589
@@@ -75,7 -75,7 +75,7 @@@ This is designed to be as compact as po
  * 'raw'
  +
  The 'raw' format shows the entire commit exactly as
- stored in the commit object.  Notably, the SHA1s are
+ stored in the commit object.  Notably, the SHA-1s are
  displayed in full, regardless of whether --abbrev or
  --no-abbrev are used, and 'parents' information show the
  true parent commits, without taking grafts nor history
@@@ -131,8 -131,7 +131,8 @@@ The placeholders are
  - '%B': raw body (unwrapped subject and body)
  - '%N': commit notes
  - '%GG': raw verification message from GPG for a signed commit
 -- '%G?': show either "G" for Good or "B" for Bad for a signed commit
 +- '%G?': show "G" for a Good signature, "B" for a Bad signature, "U" for a good,
 +  untrusted signature and "N" for no signature
  - '%GS': show the name of the signer for a signed commit
  - '%GK': show the key used to sign a signed commit
  - '%gD': reflog selector, e.g., `refs/stash@{1}`
index 8855b1a0ac99012fcd98fcb3272b39e465d84626,c5822634fc4962837ca0384364b7f7ffb531e530..a8ff691492927eef2f31d889f7bd20b4e60e7a91
@@@ -2,13 -2,13 +2,13 @@@ SPECIFYING REVISION
  --------------------
  
  A revision parameter '<rev>' typically, but not necessarily, names a
- commit object.  It uses what is called an 'extended SHA1'
+ commit object.  It uses what is called an 'extended SHA-1'
  syntax.  Here are various ways to spell object names.  The
  ones listed near the end of this list name trees and
  blobs contained in a commit.
  
  '<sha1>', e.g. 'dae86e1950b1277e545cee180551750029cfe735', 'dae86e'::
-   The full SHA1 object name (40-byte hexadecimal string), or
+   The full SHA-1 object name (40-byte hexadecimal string), or
    a leading substring that is unique within the repository.
    E.g. dae86e1950b1277e545cee180551750029cfe735 and dae86e both
    name the same commit object if there is no other object in
@@@ -116,11 -116,6 +116,11 @@@ some output processing may assume ref n
    object of that type is found or the object cannot be
    dereferenced anymore (in which case, barf).  '<rev>{caret}0'
    is a short-hand for '<rev>{caret}\{commit\}'.
 ++
 +'rev{caret}\{object\}' can be used to make sure 'rev' names an
 +object that exists, without requiring 'rev' to be a tag, and
 +without dereferencing 'rev'; because a tag is already an object,
 +it does not have to be dereferenced even once to get to an object.
  
  '<rev>{caret}\{\}', e.g. 'v0.99.8{caret}\{\}'::
    A suffix '{caret}' followed by an empty brace pair