Skip to content

Commit

Permalink
Autogenerated HTML docs for v2.5.0-234-gefc8a
Browse files Browse the repository at this point in the history
  • Loading branch information
gitster committed Aug 3, 2015
1 parent 2ce0aac commit d7ed404
Show file tree
Hide file tree
Showing 48 changed files with 870 additions and 424 deletions.
21 changes: 21 additions & 0 deletions RelNotes/2.4.8.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Git v2.4.8 Release Notes
========================

Fixes since v2.4.7
------------------

* Abandoning an already applied change in "git rebase -i" with
"--continue" left CHERRY_PICK_HEAD and confused later steps.

* Various fixes around "git am" that applies a patch to a history
that is not there yet.

* "git for-each-ref" reported "missing object" for 0{40} when it
encounters a broken ref. The lack of object whose name is 0{40} is
not the problem; the ref being broken is.

* "git commit --cleanup=scissors" was not careful enough to protect
against getting fooled by a line that looked like scissors.

Also contains typofixes, documentation updates and trivial code
clean-ups.
154 changes: 154 additions & 0 deletions RelNotes/2.6.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
Git 2.6 Release Notes
=====================

Updates since v2.5
------------------

UI, Workflows & Features

* An asterisk as a substring (as opposed to the entirety) of a path
component for both side of a refspec, e.g.
"refs/heads/o*:refs/remotes/heads/i*", is now allowed.

* New userdiff pattern definition for fountain screenwriting markup
format has been added.

* "git log" and friends learned a new "--date=format:..." option to
format timestamps using system's strftime(3).

* "git fast-import" learned to respond to the get-mark command via
its cat-blob-fd interface.

* "git rebase -i" learned "drop commit-object-name subject" command
as another way to skip replaying of a commit.

* A new configuration variable can enable "--follow" automatically
when "git log" is run with one pathspec argument.

* "git status" learned to show a more detailed information regarding
the "rebase -i" session in progress.

* "git cat-file" learned "--batch-all-objects" option to enumerate all
available objects in the repository more quickly than "rev-list
--all --objects" (the output includes unreachable objects, though).

* "git fsck" learned to ignore errors on a set of known-to-be-bad
objects, and also allows the warning levels of various kinds of
non-critical breakages to be tweaked.

* "git rebase -i"'s list of todo is made configurable.

* "git send-email" now performs alias-expansion on names that are
given via --cccmd, etc.

* An environment variable GIT_REPLACE_REF_BASE tells Git to look into
refs hierarchy other than refs/replace/ for the object replacement
data.


Performance, Internal Implementation, Development Support etc.

* In preparation for allowing different "backends" to store the refs
in a way different from the traditional "one ref per file in
$GIT_DIR or in a $GIT_DIR/packed-refs file" filesystem storage,
direct filesystem access to ref-like things like CHERRY_PICK_HEAD
from scripts and programs has been reduced.

* Computation of untracked status indicator by bash prompt
script (in contrib/) has been optimized.

* Memory use reduction when commit-slab facility is used to annotate
sparsely (which is not recommended in the first place).

* Clean up refs API and make "git clone" less intimate with the
implementation detail.

* "git pull" was reimplemented in C.

* The packet tracing machinery allows to capture an incoming pack
data to a file for debugging.

* Move machinery to parse human-readable scaled numbers like 1k, 4M,
and 2G as an option parameter's value from pack-objects to
parse-options API, to make it available to other codepaths.

* "git verify-tag" and "git verify-commit" have been taught to share
more code, and then learned to optionally show the verification
message from the underlying GPG implementation.

* Various enhancements around "git am" reading patches generated by
foreign SCM have been made.

* Ref listing by "git branch -l" and "git tag -l" commands has
started to be rebuilt, based on the for-each-ref machinery.


Also contains various documentation updates and code clean-ups.


Fixes since v2.5
----------------

Unless otherwise noted, all the fixes since v2.5 in the maintenance
track are contained in this release (see the maintenance releases'
notes for details).

* "git subtree" (in contrib/) depended on "git log" output to be
stable, which was a no-no. Apply a workaround to force a
particular date format.
(merge e7aac44 da/subtree-date-confusion later to maint).

* An attempt to delete a ref by pushing into a repositorywhose HEAD
symbolic reference points at an unborn branch that cannot be
created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
points at refs/heads/a) failed.
(merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint).

* The low-level "git send-pack" did not honor 'user.signingkey'
configuration variable when sending a signed-push.
(merge d830d39 db/send-pack-user-signingkey later to maint).

* "sparse checkout" misbehaved for a path that is excluded from the
checkout when switching between branches that differ at the path.
(merge 7d78241 as/sparse-checkout-removal later to maint).

* An experimental "untracked cache" feature used uname(2) in a
slightly unportable way.
(merge 100e433 cb/uname-in-untracked later to maint).

* A "rebase" replays changes of the local branch on top of something
else, as such they are placed in stage #3 and referred to as
"theirs", while the changes in the new base, typically a foreign
work, are placed in stage #2 and referred to as "ours". Clarify
the "checkout --ours/--theirs".
(merge f303016 se/doc-checkout-ours-theirs later to maint).

* The "rev-parse --parseopt" mode parsed the option specification
and the argument hint in a strange way to allow '=' and other
special characters in the option name while forbidding them from
the argument hint. This made it impossible to define an option
like "--pair <key>=<value>" with "pair=key=value" specification,
which instead would have defined a "--pair=key <value>" option.
(merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint).

* Often a fast-import stream builds a new commit on top of the
previous commit it built, and it often unconditionally emits a
"from" command to specify the first parent, which can be omitted in
such a case. This caused fast-import to forget the tree of the
previous commit and then re-read it from scratch, which was
inefficient. Optimize for this common case.
(merge 0df3245 mh/fast-import-optimize-current-from later to maint).

* Running an aliased command from a subdirectory when the .git thing
in the working tree is a gitfile pointing elsewhere did not work.
(merge d95138e nd/export-worktree later to maint).

* "Is this subdirectory a separate repository that should not be
touched?" check "git clean" was inefficient. This was replaced
with a more optimized check.
(merge 38ae878 ee/clean-remove-dirs later to maint).

* Code cleanups and documentation updates.
(merge 1c601af es/doc-clean-outdated-tools later to maint).
(merge 3581304 kn/tag-doc-fix later to maint).
(merge 3a59e59 kb/i18n-doc later to maint).
57 changes: 57 additions & 0 deletions config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1242,6 +1242,25 @@ filter.<driver>.smudge::
object to a worktree file upon checkout. See
linkgit:gitattributes[5] for details.

fsck.<msg-id>::
Allows overriding the message type (error, warn or ignore) of a
specific message ID such as `missingEmail`.
+
For convenience, fsck prefixes the error/warning with the message ID,
e.g. "missingEmail: invalid author/committer line - missing email" means
that setting `fsck.missingEmail = ignore` will hide that issue.
+
This feature is intended to support working with legacy repositories
which cannot be repaired without disruptive changes.

fsck.skipList::
The path to a sorted list of object names (i.e. one SHA-1 per
line) that are known to be broken in a non-fatal way and should
be ignored. This feature is useful when an established project
should be accepted despite early commits containing errors that
can be safely ignored such as invalid committer email addresses.
Note: corrupt objects cannot be skipped with this setting.

gc.aggressiveDepth::
The depth parameter used in the delta compression
algorithm used by 'git gc --aggressive'. This defaults
Expand Down Expand Up @@ -2161,6 +2180,22 @@ rebase.autoStash::
successful rebase might result in non-trivial conflicts.
Defaults to false.

rebase.missingCommitsCheck::
If set to "warn", git rebase -i will print a warning if some
commits are removed (e.g. a line was deleted), however the
rebase will still proceed. If set to "error", it will print
the previous warning and stop the rebase, 'git rebase
--edit-todo' can then be used to correct the error. If set to
"ignore", no checking is done.
To drop a commit without warning or error, use the `drop`
command in the todo-list.
Defaults to "ignore".

rebase.instructionFormat
A format string, as specified in linkgit:git-log[1], to be used for
the instruction list during an interactive rebase. The format will automatically
have the long commit hash prepended to the format.

receive.advertiseAtomic::
By default, git-receive-pack will advertise the atomic push
capability to its clients. If you don't want to this capability
Expand Down Expand Up @@ -2197,6 +2232,28 @@ receive.fsckObjects::
Defaults to false. If not set, the value of `transfer.fsckObjects`
is used instead.

receive.fsck.<msg-id>::
When `receive.fsckObjects` is set to true, errors can be switched
to warnings and vice versa by configuring the `receive.fsck.<msg-id>`
setting where the `<msg-id>` is the fsck message ID and the value
is one of `error`, `warn` or `ignore`. For convenience, fsck prefixes
the error/warning with the message ID, e.g. "missingEmail: invalid
author/committer line - missing email" means that setting
`receive.fsck.missingEmail = ignore` will hide that issue.
+
This feature is intended to support working with legacy repositories
which would not pass pushing when `receive.fsckObjects = true`, allowing
the host to accept repositories with certain known issues but still catch
other issues.

receive.fsck.skipList::
The path to a sorted list of object names (i.e. one SHA-1 per
line) that are known to be broken in a non-fatal way and should
be ignored. This feature is useful when an established project
should be accepted despite early commits containing errors that
can be safely ignored such as invalid committer email addresses.
Note: corrupt objects cannot be skipped with this setting.

receive.unpackLimit::
If the number of objects received in a push is below this
limit then the objects will be unpacked into loose object
Expand Down
26 changes: 25 additions & 1 deletion git-cat-file.html
Original file line number Diff line number Diff line change
Expand Up @@ -864,6 +864,30 @@ <h2 id="_options">OPTIONS</h2>
</p>
</dd>
<dt class="hdlist1">
--batch-all-objects
</dt>
<dd>
<p>
Instead of reading a list of objects on stdin, perform the
requested batch operation on all objects in the repository and
any alternate object stores (not just reachable objects).
Requires <code>--batch</code> or <code>--batch-check</code> be specified. Note that
the objects are visited in order sorted by their hashes.
</p>
</dd>
<dt class="hdlist1">
--buffer
</dt>
<dd>
<p>
Normally batch output is flushed after each object is output, so
that a process can interactively read and write from
<code>cat-file</code>. With this option, the output uses normal stdio
buffering; this is much more efficient when invoking
<code>--batch-check</code> on a large number of objects.
</p>
</dd>
<dt class="hdlist1">
--allow-unknown-type
</dt>
<dd>
Expand Down Expand Up @@ -1108,7 +1132,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2015-06-01 13:36:36 PDT
Last updated 2015-08-03 12:41:59 PDT
</div>
</div>
</body>
Expand Down
14 changes: 14 additions & 0 deletions git-cat-file.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,20 @@ OPTIONS
not be combined with any other options or arguments. See the
section `BATCH OUTPUT` below for details.

--batch-all-objects::
Instead of reading a list of objects on stdin, perform the
requested batch operation on all objects in the repository and
any alternate object stores (not just reachable objects).
Requires `--batch` or `--batch-check` be specified. Note that
the objects are visited in order sorted by their hashes.

--buffer::
Normally batch output is flushed after each object is output, so
that a process can interactively read and write from
`cat-file`. With this option, the output uses normal stdio
buffering; this is much more efficient when invoking
`--batch-check` on a large number of objects.

--allow-unknown-type::
Allow -s or -t to query broken/corrupt objects of unknown type.

Expand Down
6 changes: 3 additions & 3 deletions git-check-ref-format.html
Original file line number Diff line number Diff line change
Expand Up @@ -892,8 +892,8 @@ <h2 id="_options">OPTIONS</h2>
Interpret &lt;refname&gt; as a reference name pattern for a refspec
(as used with remote repositories). If this option is
enabled, &lt;refname&gt; is allowed to contain a single <code>*</code>
in place of a one full pathname component (e.g.,
<code>foo/*/bar</code> but not <code>foo/bar*</code>).
in the refspec (e.g., <code>foo/bar*/baz</code> or <code>foo/bar*baz/</code>
but not <code>foo/bar*/baz*</code>).
</p>
</dd>
<dt class="hdlist1">
Expand Down Expand Up @@ -948,7 +948,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2013-09-20 14:03:14 PDT
Last updated 2015-08-03 12:41:59 PDT
</div>
</div>
</body>
Expand Down
4 changes: 2 additions & 2 deletions git-check-ref-format.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ OPTIONS
Interpret <refname> as a reference name pattern for a refspec
(as used with remote repositories). If this option is
enabled, <refname> is allowed to contain a single `*`
in place of a one full pathname component (e.g.,
`foo/*/bar` but not `foo/bar*`).
in the refspec (e.g., `foo/bar*/baz` or `foo/bar*baz/`
but not `foo/bar*/baz*`).

--normalize::
Normalize 'refname' by removing any leading slash (`/`)
Expand Down
15 changes: 14 additions & 1 deletion git-checkout.html
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,19 @@ <h2 id="_options">OPTIONS</h2>
When checking out paths from the index, check out stage #2
(<em>ours</em>) or #3 (<em>theirs</em>) for unmerged paths.
</p>
<div class="paragraph"><p>Note that during <code>git rebase</code> and <code>git pull --rebase</code>, <em>ours</em> and
<em>theirs</em> may appear swapped; <code>--ours</code> gives the version from the
branch the changes are rebased onto, while <code>--theirs</code> gives the
version from the branch that holds your work that is being rebased.</p></div>
<div class="paragraph"><p>This is because <code>rebase</code> is used in a workflow that treats the
history at the remote as the shared canonical one, and treats the
work done on the branch you are rebasing as the third-party work to
be integrated, and you are temporarily assuming the role of the
keeper of the canonical history during the rebase. As the keeper of
the canonical history, you need to view the history from the remote
as <code>ours</code> (i.e. "our shared canonical history"), while what you did
on your side branch as <code>theirs</code> (i.e. "one contributor&#8217;s work on top
of it").</p></div>
</dd>
<dt class="hdlist1">
-b &lt;new_branch&gt;
Expand Down Expand Up @@ -1377,7 +1390,7 @@ <h2 id="_git">GIT</h2>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2015-07-13 14:44:41 PDT
Last updated 2015-08-03 12:41:59 PDT
</div>
</div>
</body>
Expand Down
15 changes: 15 additions & 0 deletions git-checkout.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,21 @@ entries; instead, unmerged entries are ignored.
--theirs::
When checking out paths from the index, check out stage #2
('ours') or #3 ('theirs') for unmerged paths.
+
Note that during `git rebase` and `git pull --rebase`, 'ours' and
'theirs' may appear swapped; `--ours` gives the version from the
branch the changes are rebased onto, while `--theirs` gives the
version from the branch that holds your work that is being rebased.
+
This is because `rebase` is used in a workflow that treats the
history at the remote as the shared canonical one, and treats the
work done on the branch you are rebasing as the third-party work to
be integrated, and you are temporarily assuming the role of the
keeper of the canonical history during the rebase. As the keeper of
the canonical history, you need to view the history from the remote
as `ours` (i.e. "our shared canonical history"), while what you did
on your side branch as `theirs` (i.e. "one contributor's work on top
of it").

-b <new_branch>::
Create a new branch named <new_branch> and start it at
Expand Down
Loading

0 comments on commit d7ed404

Please sign in to comment.