Skip to content

Commit

Permalink
Merge branch 'master' into git-po
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiang Xin committed Feb 28, 2012
2 parents 0ad9e96 + 25a7850 commit 508d124
Show file tree
Hide file tree
Showing 201 changed files with 4,948 additions and 1,989 deletions.
12 changes: 12 additions & 0 deletions Documentation/CodingGuidelines
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,22 @@ For shell scripts specifically (not exhaustive):

- Case arms are indented at the same depth as case and esac lines.

- Redirection operators should be written with space before, but no
space after them. In other words, write 'echo test >"$file"'
instead of 'echo test> $file' or 'echo test > $file'. Note that
even though it is not required by POSIX to double-quote the
redirection target in a variable (as shown above), our code does so
because some versions of bash issue a warning without the quotes.

- We prefer $( ... ) for command substitution; unlike ``, it
properly nests. It should have been the way Bourne spelled
it from day one, but unfortunately isn't.

- If you want to find out if a command is available on the user's
$PATH, you should use 'type <command>', instead of 'which <command>'.
The output of 'which' is not machine parseable and its exit code
is not reliable across platforms.

- We use POSIX compliant parameter substitutions and avoid bashisms;
namely:

Expand Down
81 changes: 59 additions & 22 deletions Documentation/RelNotes/1.7.10.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,20 @@ UI, Workflows & Features

* Improved handling of views, labels and branches in git-p4 (in contrib).

* "git-p4" (in contrib) suffered from unnecessary merge conflicts when
p4 expanded the embedded $RCS$-like keywords; it can be now told to
unexpand them.

* Some "git-svn" updates.

* "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
support incremental imports.

* The configuration mechanism learned an "include" facility; an
assignment to the include.path pseudo-variable causes the named
file to be included in-place when Git looks up configuration
variables.

* "git am" learned to pass "-b" option to underlying "git mailinfo", so
that bracketed string other than "PATCH" at the beginning can be kept.

Expand All @@ -24,31 +35,52 @@ UI, Workflows & Features
lines are taken from the postimage, in order to make it easier to
view the output.

* "diff-highlight" filter (in contrib/) was updated to produce more
aesthetically pleasing output.

* "git merge" in an interactive session learned to spawn the editor
by default to let the user edit the auto-generated merge message,
to encourage people to explain their merges better. Legacy scripts
can export MERGE_AUTOEDIT=no to retain the historical behaviour.
can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
Both "git merge" and "git pull" can be given --no-edit from the
command line to accept the auto-generated merge message.

* "git push" learned the "--prune" option, similar to "git fetch".

* "git tag --list" can be given "--points-at <object>" to limit its
output to those that point at the given object.

* "gitweb" allows intermediate entries in the directory hierarchy
that leads to a projects to be clicked, which in turn shows the
list of projects inside that directory.

* "gitweb" learned to read various pieces of information for the
repositories lazily, instead of reading everything that could be
needed (including the ones that are not necessary for a specific
task).

Performance

* During "git upload-pack" in respose to "git fetch", unnecessary calls
* During "git upload-pack" in response to "git fetch", unnecessary calls
to parse_object() have been eliminated, to help performance in
repositories with excessive number of refs.

Internal Implementation
Internal Implementation (please report possible regressions)

* Recursive call chains in "git index-pack" to deal with long delta
chains have been flattened, to reduce the stack footprint.

* Use of add_extra_ref() API is slowly getting removed, to make it
possible to cleanly restructure the overall refs API.
* Use of add_extra_ref() API is now gone, to make it possible to
cleanly restructure the overall refs API.

* The command line parser of "git pack-objects" now uses parse-options
API.

* The test suite supports the new "test_pause" helper function.

* Parallel to the test suite, there is a beginning of performance
benchmarking framework.

* t/Makefile is adjusted to prevent newer versions of GNU make from
running tests in seemingly random order.

Expand All @@ -62,30 +94,35 @@ Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
releases are contained in this release (see release notes to them for
details).

* "add -e" learned not to show a diff for an otherwise unmodified
submodule that only has uncommitted local changes in the patch
prepared by for the user to edit.
(merge 701825d js/add-e-submodule-fix later to maint).
* The bulk check-in codepath streamed contents that needs
smudge/clean filters without running them, instead of punting and
delegating to the codepath to run filters after slurping everything
to core.
(merge 4f22b10 jk/maint-avoid-streaming-filtered-contents later to maint).

* "rebase" and "commit --amend" failed to work on commits with ancient
timestamps near year 1970.
(merge 2c733fb jc/parse-date-raw later to maint).
* When the filter driver exits before reading the content before the
main git process writes the contents to be filtered to the pipe to
it, the latter could be killed with SIGPIPE instead of ignoring
such an event as an error.
(merge 6424c2a jb/filter-ignore-sigpipe later to maint).

* "git merge --ff-only $tag" failed because it cannot record the
required mergetag without creating a merge, but this is so common
operation for branch that is used _only_ to follow the upstream, so
it is allowed to fast-forward without recording the mergetag.
(merge b5c9f1c jc/merge-ff-only-stronger-than-signed-merge later to maint).
* When a remote helper exits before reading the blank line from the
main git process to signal the end of commands, the latter could be
killed with SIGPIPE. Instead we should ignore such event as a
non-error.
(merge c34fe63 sp/smart-http-failure-to-push later to maint).

* Typo in "git branch --edit-description my-tpoic" was not diagnosed.
(merge c2d17ba jc/branch-desc-typoavoidance later to maint).
* "git bundle create" produced a corrupt bundle file upon seeing
commits with excessively long subject line.
(merge 8a557bb tr/maint-bundle-long-subject later to maint).

* rpmbuild noticed an unpackaged but installed *.mo file and failed.
(merge 3a9f58c jn/rpm-spec later to maint).
* "gitweb" used to drop warnings in the log file when "heads" view is
accessed in a repository whose HEAD does not point at a valid
branch.

---
exec >/var/tmp/1
O=v1.7.9-208-gee8d52f
O=v1.7.9.2-301-g507fba2
echo O=$(git describe)
git log --first-parent --oneline ^maint $O..
echo
Expand Down
19 changes: 19 additions & 0 deletions Documentation/RelNotes/1.7.8.5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Git v1.7.8.5 Release Notes
==========================

Fixes since v1.7.8.4
--------------------

* Dependency on our thread-utils.h header file was missing for
objects that depend on it in the Makefile.

* "git am" when fed an empty file did not correctly finish reading it
when it attempts to guess the input format.

* "git grep -P" (when PCRE is enabled in the build) did not match the
beginning and the end of the line correctly with ^ and $.

* "git rebase -m" tried to run "git notes copy" needlessly when
nothing was rewritten.

Also contains minor fixes and documentation updates.
33 changes: 30 additions & 3 deletions Documentation/RelNotes/1.7.9.1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,24 @@ Git v1.7.9.1 Release Notes
Fixes since v1.7.9
------------------

* The makefile allowed environment variable X seep into it result in
command names suffixed with unnecessary strings.

* The set of included header files in compat/inet-{ntop,pton}
wrappers was updated for Windows some time ago, but in a way that
broke Solaris build.

* rpmbuild noticed an unpackaged but installed *.mo file and failed.

* Subprocesses spawned from various git programs were often left running
to completion even when the top-level process was killed.

* "git add -e" learned not to show a diff for an otherwise unmodified
submodule that only has uncommitted local changes in the patch
prepared by for the user to edit.

* Typo in "git branch --edit-description my-tpoic" was not diagnosed.

* Using "git grep -l/-L" together with options -W or --break may not
make much sense as the output is to only count the number of hits
and there is no place for file breaks, but the latter options made
Expand All @@ -16,15 +31,25 @@ Fixes since v1.7.9
chain and veered into side branch from which the whole change to the
specified paths came.

* "git push -q" was not sufficiently quiet.
* "git merge --no-edit $tag" failed to honor the --no-edit option.

* When "git push" fails to update any refs, the client side did not
report an error correctly to the end user.
* "git merge --ff-only $tag" failed because it cannot record the
required mergetag without creating a merge, but this is so common
operation for branch that is used _only_ to follow the upstream, so
it was changed to allow fast-forwarding without recording the mergetag.

* "git mergetool" now gives an empty file as the common base version
to the backend when dealing with the "both sides added, differently"
case.

* "git push -q" was not sufficiently quiet.

* When "git push" fails to update any refs, the client side did not
report an error correctly to the end user.

* "rebase" and "commit --amend" failed to work on commits with ancient
timestamps near year 1970.

* When asking for a tag to be pulled, "request-pull" did not show the
name of the tag prefixed with "tags/", which would have helped older
clients.
Expand All @@ -33,4 +58,6 @@ Fixes since v1.7.9
in .gitmodules when the submodule at $path was once added to the
superproject and already initialized.

* Many small corner case bugs on "git tag -n" was corrected.

Also contains minor fixes and documentation updates.
69 changes: 69 additions & 0 deletions Documentation/RelNotes/1.7.9.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
Git v1.7.9.2 Release Notes
==========================

Fixes since v1.7.9.1
--------------------

* Bash completion script (in contrib/) did not like a pattern that
begins with a dash to be passed to __git_ps1 helper function.

* Adaptation of the bash completion script (in contrib/) for zsh
incorrectly listed all subcommands when "git <TAB><TAB>" was given
to ask for list of porcelain subcommands.

* The build procedure for profile-directed optimized binary was not
working very well.

* Some systems need to explicitly link -lcharset to get locale_charset().

* t5541 ignored user-supplied port number used for HTTP server testing.

* The error message emitted when we see an empty loose object was
not phrased correctly.

* The code to ask for password did not fall back to the terminal
input when GIT_ASKPASS is set but does not work (e.g. lack of X
with GUI askpass helper).

* We failed to give the true terminal width to any subcommand when
they are invoked with the pager, i.e. "git -p cmd".

* map_user() was not rewriting its output correctly, which resulted
in the user visible symptom that "git blame -e" sometimes showed
excess '>' at the end of email addresses.

* "git checkout -b" did not allow switching out of an unborn branch.

* When you have both .../foo and .../foo.git, "git clone .../foo" did not
favor the former but the latter.

* "git commit" refused to create a commit when entries added with
"add -N" remained in the index, without telling Git what their content
in the next commit should be. We should have created the commit without
these paths.

* "git diff --stat" said "files", "insertions", and "deletions" even
when it is showing one "file", one "insertion" or one "deletion".

* The output from "git diff --stat" for two paths that have the same
amount of changes showed graph bars of different length due to the
way we handled rounding errors.

* "git grep" did not pay attention to -diff (hence -binary) attribute.

* The transport programs (fetch, push, clone)ignored --no-progress
and showed progress when sending their output to a terminal.

* Sometimes error status detected by a check in an earlier phase of
"git receive-pack" (the other end of "git push") was lost by later
checks, resulting in false indication of success.

* "git rev-list --verify" sometimes skipped verification depending on
the phase of the moon, which dates back to 1.7.8.x series.

* Search box in "gitweb" did not accept non-ASCII characters correctly.

* Search interface of "gitweb" did not show multiple matches in the same file
correctly.

Also contains minor fixes and documentation updates.
24 changes: 24 additions & 0 deletions Documentation/RelNotes/1.7.9.3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Git v1.7.9.3 Release Notes
==========================

Fixes since v1.7.9.2
--------------------

* "git p4" (in contrib/) submit the changes to a wrong place when the
"--use-client-spec" option is set.

* The config.mak.autogen generated by optional autoconf support tried
to link the binary with -lintl even when libintl.h is missing from
the system.

* "git add --refresh <pathspec>" used to warn about unmerged paths
outside the given pathspec.

* The commit log template given with "git merge --edit" did not have
a short instructive text like what "git commit" gives.

* "gitweb" used to drop warnings in the log file when "heads" view is
accessed in a repository whose HEAD does not point at a valid
branch.

Also contains minor fixes and documentation updates.
15 changes: 15 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,17 @@ customary UNIX fashion.

Some variables may require a special value format.

Includes
~~~~~~~~

You can include one config file from another by setting the special
`include.path` variable to the name of the file to be included. The
included file is expanded immediately, as if its contents had been
found at the location of the include directive. If the value of the
`include.path` variable is a relative path, the path is considered to be
relative to the configuration file in which the include directive was
found. See below for examples.

Example
~~~~~~~

Expand All @@ -106,6 +117,10 @@ Example
gitProxy="ssh" for "kernel.org"
gitProxy=default-proxy ; for the rest

[include]
path = /path/to/foo.inc ; include by absolute path
path = foo ; expand "foo" relative to the current file

Variables
~~~~~~~~~

Expand Down
5 changes: 5 additions & 0 deletions Documentation/git-config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,11 @@ See also <<FILES>>.
Opens an editor to modify the specified config file; either
'--system', '--global', or repository (default).

--includes::
--no-includes::
Respect `include.*` directives in config files when looking up
values. Defaults to on.

[[FILES]]
FILES
-----
Expand Down
5 changes: 5 additions & 0 deletions Documentation/git-fmt-merge-msg.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ OPTIONS
CONFIGURATION
-------------

merge.branchdesc::
In addition to branch names, populate the log message with
the branch description text associated with them. Defaults
to false.

merge.log::
In addition to branch names, populate the log message with at
most the specified number of one-line descriptions from the
Expand Down
Loading

0 comments on commit 508d124

Please sign in to comment.