Merge commit 'v1.7.6' into jc/checkout-reflog-fix

* commit 'v1.7.6': (3211 commits)
  Git 1.7.6
  completion: replace core.abbrevguard to core.abbrev
  Git 1.7.6-rc3
  Documentation: git diff --check respects core.whitespace
  gitweb: 'pickaxe' and 'grep' features requires 'search' to be enabled
  t7810: avoid unportable use of "echo"
  plug a few coverity-spotted leaks
  builtin/gc.c: add missing newline in message
  tests: link shell libraries into valgrind directory
  t/Makefile: pass test opts to valgrind target properly
  sh-i18n--envsubst.c: do not #include getopt.h
  Fix typo: existant->existent
  Git 1.7.6-rc2
  gitweb: do not misparse nonnumeric content tag files that contain a digit
  Git 1.7.6-rc1
  fetch: do not leak a refspec
  t3703: skip more tests using colons in file names on Windows
  gitweb: Fix usability of $prevent_xss
  gitweb: Move "Requirements" up in gitweb/INSTALL
  gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL
  ...
maint
Junio C Hamano 2011-07-06 15:38:28 -07:00
commit 25d33546d4
1277 changed files with 94820 additions and 27459 deletions

27
.gitignore vendored
View File

@ -43,7 +43,6 @@
/git-fast-export /git-fast-export
/git-fast-import /git-fast-import
/git-fetch /git-fetch
/git-fetch--tool
/git-fetch-pack /git-fetch-pack
/git-filter-branch /git-filter-branch
/git-fmt-merge-msg /git-fmt-merge-msg
@ -102,16 +101,20 @@
/git-quiltimport /git-quiltimport
/git-read-tree /git-read-tree
/git-rebase /git-rebase
/git-rebase--am
/git-rebase--interactive /git-rebase--interactive
/git-rebase--merge
/git-receive-pack /git-receive-pack
/git-reflog /git-reflog
/git-relink /git-relink
/git-remote /git-remote
/git-remote-curl
/git-remote-http /git-remote-http
/git-remote-https /git-remote-https
/git-remote-ftp /git-remote-ftp
/git-remote-ftps /git-remote-ftps
/git-remote-fd
/git-remote-ext
/git-remote-testgit
/git-repack /git-repack
/git-replace /git-replace
/git-repo-config /git-repo-config
@ -124,7 +127,10 @@
/git-rm /git-rm
/git-send-email /git-send-email
/git-send-pack /git-send-pack
/git-sh-i18n
/git-sh-i18n--envsubst
/git-sh-setup /git-sh-setup
/git-sh-i18n
/git-shell /git-shell
/git-shortlog /git-shortlog
/git-show /git-show
@ -155,7 +161,10 @@
/git-write-tree /git-write-tree
/git-core-*/?* /git-core-*/?*
/gitk-git/gitk-wish /gitk-git/gitk-wish
/gitweb/GITWEB-BUILD-OPTIONS
/gitweb/gitweb.cgi /gitweb/gitweb.cgi
/gitweb/static/gitweb.js
/gitweb/static/gitweb.min.*
/test-chmtime /test-chmtime
/test-ctype /test-ctype
/test-date /test-date
@ -163,12 +172,19 @@
/test-dump-cache-tree /test-dump-cache-tree
/test-genrandom /test-genrandom
/test-index-version /test-index-version
/test-line-buffer
/test-match-trees /test-match-trees
/test-mktemp
/test-obj-pool
/test-parse-options /test-parse-options
/test-path-utils /test-path-utils
/test-run-command /test-run-command
/test-sha1 /test-sha1
/test-sigchain /test-sigchain
/test-string-pool
/test-subprocess
/test-svn-fe
/test-treap
/common-cmds.h /common-cmds.h
*.tar.gz *.tar.gz
*.dsc *.dsc
@ -177,6 +193,13 @@
*.exe *.exe
*.[aos] *.[aos]
*.py[co] *.py[co]
.depend/
*.gcda
*.gcno
*.gcov
/coverage-untested-functions
/cover_db/
/cover_db_html/
*+ *+
/config.mak /config.mak
/autom4te.cache /autom4te.cache

View File

@ -5,6 +5,7 @@
# same person appearing not to be so. # same person appearing not to be so.
# #


Alex Bennée <kernel-hacker@bennee.com>
Alexander Gavrilov <angavrilov@gmail.com> Alexander Gavrilov <angavrilov@gmail.com>
Aneesh Kumar K.V <aneesh.kumar@gmail.com> Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Brian M. Carlson <sandals@crustytoothpaste.ath.cx> Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
@ -15,6 +16,7 @@ Daniel Barkalow <barkalow@iabervon.org>
David D. Kilzer <ddkilzer@kilzer.net> David D. Kilzer <ddkilzer@kilzer.net>
David Kågedal <davidk@lysator.liu.se> David Kågedal <davidk@lysator.liu.se>
David S. Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
Deskin Miller <deskinm@umich.edu>
Dirk Süsserott <newsletter@dirk.my1.cc> Dirk Süsserott <newsletter@dirk.my1.cc>
Fredrik Kuivinen <freku045@student.liu.se> Fredrik Kuivinen <freku045@student.liu.se>
H. Peter Anvin <hpa@bonde.sc.orionmulti.com> H. Peter Anvin <hpa@bonde.sc.orionmulti.com>
@ -34,8 +36,9 @@ Lars Doelle <lars.doelle@on-line ! de>
Lars Doelle <lars.doelle@on-line.de> Lars Doelle <lars.doelle@on-line.de>
Li Hong <leehong@pku.edu.cn> Li Hong <leehong@pku.edu.cn>
Lukas Sandström <lukass@etek.chalmers.se> Lukas Sandström <lukass@etek.chalmers.se>
Martin Langhoff <martin@catalyst.net.nz> Martin Langhoff <martin@laptop.org>
Michael Coleman <tutufan@gmail.com> Michael Coleman <tutufan@gmail.com>
Michael J Gruber <git@drmicha.warpmail.net> <michaeljgruber+gmane@fastmail.fm>
Michael W. Olson <mwolson@gnu.org> Michael W. Olson <mwolson@gnu.org>
Michele Ballabio <barra_cuda@katamail.com> Michele Ballabio <barra_cuda@katamail.com>
Nanako Shiraishi <nanako3@bluebottle.com> Nanako Shiraishi <nanako3@bluebottle.com>
@ -59,6 +62,7 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Uwe Kleine-König <uzeisberger@io.fsforth.de> Uwe Kleine-König <uzeisberger@io.fsforth.de>
Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de> Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de>
Ville Skyttä <scop@xemacs.org> Ville Skyttä <scop@xemacs.org>
Vitaly "_Vi" Shukela <public_vi@tut.by>
William Pursell <bill.pursell@gmail.com> William Pursell <bill.pursell@gmail.com>
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
anonymous <linux@horizon.com> anonymous <linux@horizon.com>

View File

@ -31,25 +31,36 @@ But if you must have a list of rules, here they are.


For shell scripts specifically (not exhaustive): For shell scripts specifically (not exhaustive):


- We use tabs for indentation.

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

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


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

- We use ${parameter-word} and its [-=?+] siblings, and their - We use ${parameter-word} and its [-=?+] siblings, and their
colon'ed "unset or null" form. colon'ed "unset or null" form.


- We use ${parameter#word} and its [#%] siblings, and their - We use ${parameter#word} and its [#%] siblings, and their
doubled "longest matching" form. doubled "longest matching" form.


- We use Arithmetic Expansion $(( ... )).

- No "Substring Expansion" ${parameter:offset:length}. - No "Substring Expansion" ${parameter:offset:length}.


- No shell arrays. - No shell arrays.


- No strlen ${#parameter}. - No strlen ${#parameter}.


- No regexp ${parameter/pattern/string}. - No pattern replacement ${parameter/pattern/string}.

- We use Arithmetic Expansion $(( ... )).

- Inside Arithmetic Expansion, spell shell variables with $ in front
of them, as some shells do not grok $((x)) while accepting $(($x))
just fine (e.g. dash older than 0.5.4).


- We do not use Process Substitution <(list) or >(list). - We do not use Process Substitution <(list) or >(list).


@ -132,3 +143,55 @@ For C programs:


- When we pass <string, length> pair to functions, we should try to - When we pass <string, length> pair to functions, we should try to
pass them in that order. pass them in that order.

Writing Documentation:

Every user-visible change should be reflected in the documentation.
The same general rule as for code applies -- imitate the existing
conventions. A few commented examples follow to provide reference
when writing or modifying command usage strings and synopsis sections
in the manual pages:

Placeholders are spelled in lowercase and enclosed in angle brackets:
<file>
--sort=<key>
--abbrev[=<n>]

Possibility of multiple occurrences is indicated by three dots:
<file>...
(One or more of <file>.)

Optional parts are enclosed in square brackets:
[<extra>]
(Zero or one <extra>.)

--exec-path[=<path>]
(Option with an optional argument. Note that the "=" is inside the
brackets.)

[<patch>...]
(Zero or more of <patch>. Note that the dots are inside, not
outside the brackets.)

Multiple alternatives are indicated with vertical bar:
[-q | --quiet]
[--utf8 | --no-utf8]

Parentheses are used for grouping:
[(<rev>|<range>)...]
(Any number of either <rev> or <range>. Parens are needed to make
it clear that "..." pertains to both <rev> and <range>.)

[(-p <parent>)...]
(Any number of option -p, each with one <parent> argument.)

git remote set-head <name> (-a | -d | <branch>)
(One and only one of "-a", "-d" or "<branch>" _must_ (no square
brackets) be provided.)

And a somewhat more contrived example:
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Here "=" is outside the brackets, because "--diff-filter=" is a
valid usage. "*" has its own pair of brackets, because it can
(optionally) be specified only when one or more of the letters is
also provided.

View File

@ -6,7 +6,7 @@ MAN5_TXT=gitattributes.txt gitignore.txt gitmodules.txt githooks.txt \
gitrepository-layout.txt gitrepository-layout.txt
MAN7_TXT=gitcli.txt gittutorial.txt gittutorial-2.txt \ MAN7_TXT=gitcli.txt gittutorial.txt gittutorial-2.txt \
gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \ gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \
gitdiffcore.txt gitworkflows.txt gitdiffcore.txt gitrevisions.txt gitworkflows.txt


MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT) MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT)) MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
@ -63,35 +63,28 @@ endif


# #
# For asciidoc ... # For asciidoc ...
# -7.1.2, no extra settings are needed. # -7.1.2, set ASCIIDOC7
# 8.0-, set ASCIIDOC8. # 8.0-, no extra settings are needed
# #


# #
# For docbook-xsl ... # For docbook-xsl ...
# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0) # -1.68.1, no extra settings are needed?
# 1.69.0, no extra settings are needed? # 1.69.0, set ASCIIDOC_ROFF?
# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP? # 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
# 1.71.1, no extra settings are needed? # 1.71.1, set ASCIIDOC_ROFF?
# 1.72.0, set DOCBOOK_XSL_172. # 1.72.0, set DOCBOOK_XSL_172.
# 1.73.0-, set ASCIIDOC_NO_ROFF # 1.73.0-, no extra settings are needed
# #


# ifndef ASCIIDOC7
# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
# of 'the ".ft C" problem' in your generated manpages, and you
# instead ended up with weird characters around callouts, try
# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
#

ifdef ASCIIDOC8
ASCIIDOC_EXTRA += -a asciidoc7compatible -a no-inline-literal ASCIIDOC_EXTRA += -a asciidoc7compatible -a no-inline-literal
endif endif
ifdef DOCBOOK_XSL_172 ifdef DOCBOOK_XSL_172
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
MANPAGE_XSL = manpage-1.72.xsl MANPAGE_XSL = manpage-1.72.xsl
else else
ifdef ASCIIDOC_NO_ROFF ifndef ASCIIDOC_ROFF
# docbook-xsl after 1.72 needs the regular XSL, but will not # docbook-xsl after 1.72 needs the regular XSL, but will not
# pass-thru raw roff codes from asciidoc.conf, so turn them off. # pass-thru raw roff codes from asciidoc.conf, so turn them off.
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
@ -264,7 +257,9 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
mv $@+ $@ mv $@+ $@


user-manual.xml: user-manual.txt user-manual.conf user-manual.xml: user-manual.txt user-manual.conf
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book $< $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book -o $@+ $< && \
mv $@+ $@


technical/api-index.txt: technical/api-index-skel.txt \ technical/api-index.txt: technical/api-index-skel.txt \
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS)) technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
@ -277,8 +272,10 @@ $(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt
XSLT = docbook.xsl XSLT = docbook.xsl
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css


user-manual.html: user-manual.xml user-manual.html: user-manual.xml $(XSLT)
$(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $< $(QUIET_XSLTPROC)$(RM) $@+ $@ && \
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
mv $@+ $@


git.info: user-manual.texi git.info: user-manual.texi
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi $(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi

View File

@ -4,7 +4,7 @@ GIT v1.5.6.3 Release Notes
Fixes since v1.5.6.2 Fixes since v1.5.6.2
-------------------- --------------------


* Setting core.sharerepository to traditional "true" value was supposed to make * Setting core.sharedrepository to traditional "true" value was supposed to make
the repository group writable but should not affect permission for others. the repository group writable but should not affect permission for others.
However, since 1.5.6, it was broken to drop permission for others when umask is However, since 1.5.6, it was broken to drop permission for others when umask is
022, making the repository unreadable by others. 022, making the repository unreadable by others.

View File

@ -17,7 +17,7 @@ Fixes since v1.6.0.1
* Many commands did not use the correct working tree location when used * Many commands did not use the correct working tree location when used
with GIT_WORK_TREE environment settings. with GIT_WORK_TREE environment settings.


* Some systems needs to use compatibility fnmach and regex libraries * Some systems need to use compatibility fnmatch and regex libraries
independent from each other; the compat/ area has been reorganized to independent from each other; the compat/ area has been reorganized to
allow this. allow this.


View File

@ -11,7 +11,7 @@ Fixes since v1.6.4.2
been deprecated. been deprecated.


* "git fetch" and "git clone" had an extra sanity check to verify the * "git fetch" and "git clone" had an extra sanity check to verify the
presense of the corresponding *.pack file before downloading *.idx presence of the corresponding *.pack file before downloading *.idx
file by issuing a HEAD request. Github server however sometimes file by issuing a HEAD request. Github server however sometimes
gave 500 (Internal server error) response to HEAD even if a GET gave 500 (Internal server error) response to HEAD even if a GET
request for *.pack file to the same URL would have succeeded, and broke request for *.pack file to the same URL would have succeeded, and broke

View File

@ -0,0 +1,20 @@
Git v1.6.4.5 Release Notes
==========================

Fixes since v1.6.4.4
--------------------

* Simplified base85 implementation.

* An overlong line after ".gitdir: " in a git file caused out of bounds
access to an array on the stack.

* "git count-objects" did not handle packs larger than 4G.

* "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
when --keep-dashdash was in effect.

* "gitweb" can sometimes be tricked into parrotting a filename argument
given in a request without properly quoting.

Other minor fixes and documentation updates are included.

View File

@ -26,7 +26,7 @@ Fixes since v1.6.5.3
future versions, but not in this release, future versions, but not in this release,


* "git merge -m <message> <branch>..." added the standard merge message * "git merge -m <message> <branch>..." added the standard merge message
on its own after user-supplied message, which should have overrided the on its own after user-supplied message, which should have overridden the
standard one. standard one.


Other minor documentation updates are included. Other minor documentation updates are included.

View File

@ -10,7 +10,7 @@ Fixes since v1.6.5.6
an older version of git should just ignore them. Instead we diagnosed an older version of git should just ignore them. Instead we diagnosed
it as an error. it as an error.


* With help.autocorrect set to non-zero value, the logic to guess typoes * With help.autocorrect set to non-zero value, the logic to guess typos
in the subcommand name misfired and ran a random nonsense command. in the subcommand name misfired and ran a random nonsense command.


* If a command is run with an absolute path as a pathspec inside a bare * If a command is run with an absolute path as a pathspec inside a bare

View File

@ -0,0 +1,18 @@
Git v1.6.5.9 Release Notes
==========================

Fixes since v1.6.5.8
--------------------

* An overlong line after ".gitdir: " in a git file caused out of bounds
access to an array on the stack.

* "git blame -L $start,$end" segfaulted when too large $start was given.

* "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
when --keep-dashdash was in effect.

* "gitweb" can sometimes be tricked into parrotting a filename argument
given in a request without properly quoting.

Other minor fixes and documentation updates are included.

View File

@ -0,0 +1,23 @@
Git v1.6.6.3 Release Notes
==========================

Fixes since v1.6.6.2
--------------------

* An overlong line after ".gitdir: " in a git file caused out of bounds
access to an array on the stack.

* "git bisect $path" did not correctly diagnose an error when given a
non-existent path.

* "git blame -L $start,$end" segfaulted when too large $start was given.

* "git imap-send" did not write draft box with CRLF line endings per RFC.

* "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
when --keep-dashdash was in effect.

* "gitweb" can sometimes be tricked into parrotting a filename argument
given in a request without properly quoting.

Other minor fixes and documentation updates are included.

View File

@ -29,7 +29,7 @@ or adjust to the new behaviour, on the day their sysadmin decides to install
the new version of git. When we switched from "git-foo" to "git foo" in the new version of git. When we switched from "git-foo" to "git foo" in
1.6.0, even though the change had been advertised and the transition 1.6.0, even though the change had been advertised and the transition
guide had been provided for a very long time, the users procrastinated guide had been provided for a very long time, the users procrastinated
during the entire transtion period, and ended up panicking on the day during the entire transition period, and ended up panicking on the day
their sysadmins updated their git installation. We are trying to avoid their sysadmins updated their git installation. We are trying to avoid
repeating that unpleasantness in the 1.7.0 release. repeating that unpleasantness in the 1.7.0 release.


@ -94,7 +94,7 @@ users will fare this time.
* "git diff" traditionally treated various "ignore whitespace" options * "git diff" traditionally treated various "ignore whitespace" options
only as a way to filter the patch output. "git diff --exit-code -b" only as a way to filter the patch output. "git diff --exit-code -b"
exited with non-zero status even if all changes were about changing the exited with non-zero status even if all changes were about changing the
ammount of whitespace and nothing else. and "git diff -b" showed the amount of whitespace and nothing else. and "git diff -b" showed the
"diff --git" header line for such a change without patch text. "diff --git" header line for such a change without patch text.


In 1.7.0, the "ignore whitespaces" will affect the semantics of the In 1.7.0, the "ignore whitespaces" will affect the semantics of the

View File

@ -0,0 +1,35 @@
Git v1.7.0.1 Release Notes
==========================

Fixes since v1.7.0
------------------

* In a freshly created repository "rev-parse HEAD^0" complained that
it is dangling symref, even though "rev-parse HEAD" didn't.

* "git show :no-such-name" tried to access the index without bounds
check, leading to a potential segfault.

* Message from "git cherry-pick" was harder to read and use than necessary
when it stopped due to conflicting changes.

* We referred to ".git/refs/" throughout the documentation when we
meant to talk about abstract notion of "ref namespace". Because
people's repositories often have packed refs these days, this was
confusing.

* "git diff --output=/path/that/cannot/be/written" did not correctly
error out.

* "git grep -e -pattern-that-begin-with-dash paths..." could not be
spelled as "git grep -- -pattern-that-begin-with-dash paths..." which
would be a GNU way to use "--" as "end of options".

* "git grep" compiled with threading support tried to access an
uninitialized mutex on boxes with a single CPU.

* "git stash pop -q --index" failed because the unnecessary --index
option was propagated to "git stash drop" that is internally run at the
end.

And other minor fixes and documentation updates.

Some files were not shown because too many files have changed in this diff Show More