mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
Merge branch 'maint' into tj/imap-send-remove-unused
* maint: (18123 commits) documentation fix: git difftool uses diff tools, not merge tools. Git 1.7.7.4 Makefile: add missing header file dependencies notes merge: eliminate OUTPUT macro mailmap: xcalloc mailmap_info name-rev --all: do not even attempt to describe non-commit object Git 1.7.7.3 docs: Update install-doc-quick docs: don't mention --quiet or --exit-code in git-log(1) Git 1.7.7.2 t7511: avoid use of reserved filename on Windows. clone: Quote user supplied path in a single quote pair read-cache.c: fix index memory allocation make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Git 1.7.7.1 RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting gitweb: fix regression when filtering out forks Almost ready for 1.7.7.1 pack-objects: don't traverse objects unnecessarily ... Conflicts: imap-send.c
This commit is contained in:
commit
3686aa1caf
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
* whitespace=!indent,trail,space
|
||||
*.[ch] whitespace=indent,trail,space
|
||||
*.sh whitespace=indent,trail,space
|
351
.gitignore
vendored
351
.gitignore
vendored
|
@ -1,135 +1,226 @@
|
|||
GIT-VERSION-FILE
|
||||
git
|
||||
git-add
|
||||
git-am
|
||||
git-annotate
|
||||
git-apply
|
||||
git-applymbox
|
||||
git-applypatch
|
||||
git-archimport
|
||||
git-bisect
|
||||
git-branch
|
||||
git-cat-file
|
||||
git-check-ref-format
|
||||
git-checkout
|
||||
git-checkout-index
|
||||
git-cherry
|
||||
git-cherry-pick
|
||||
git-clone
|
||||
git-clone-pack
|
||||
git-commit
|
||||
git-commit-tree
|
||||
git-convert-objects
|
||||
git-count-objects
|
||||
git-cvsexportcommit
|
||||
git-cvsimport
|
||||
git-cvsserver
|
||||
git-daemon
|
||||
git-diff
|
||||
git-diff-files
|
||||
git-diff-index
|
||||
git-diff-stages
|
||||
git-diff-tree
|
||||
git-describe
|
||||
git-fetch
|
||||
git-fetch-pack
|
||||
git-findtags
|
||||
git-fmt-merge-msg
|
||||
git-format-patch
|
||||
git-fsck-objects
|
||||
git-get-tar-commit-id
|
||||
git-grep
|
||||
git-hash-object
|
||||
git-http-fetch
|
||||
git-http-push
|
||||
git-imap-send
|
||||
git-index-pack
|
||||
git-init-db
|
||||
git-local-fetch
|
||||
git-log
|
||||
git-lost-found
|
||||
git-ls-files
|
||||
git-ls-remote
|
||||
git-ls-tree
|
||||
git-mailinfo
|
||||
git-mailsplit
|
||||
git-merge
|
||||
git-merge-base
|
||||
git-merge-index
|
||||
git-merge-tree
|
||||
git-merge-octopus
|
||||
git-merge-one-file
|
||||
git-merge-ours
|
||||
git-merge-recursive
|
||||
git-merge-resolve
|
||||
git-merge-stupid
|
||||
git-mktag
|
||||
git-mktree
|
||||
git-name-rev
|
||||
git-mv
|
||||
git-pack-redundant
|
||||
git-pack-objects
|
||||
git-parse-remote
|
||||
git-patch-id
|
||||
git-peek-remote
|
||||
git-prune
|
||||
git-prune-packed
|
||||
git-pull
|
||||
git-push
|
||||
git-read-tree
|
||||
git-rebase
|
||||
git-receive-pack
|
||||
git-relink
|
||||
git-repack
|
||||
git-repo-config
|
||||
git-request-pull
|
||||
git-rerere
|
||||
git-reset
|
||||
git-resolve
|
||||
git-rev-list
|
||||
git-rev-parse
|
||||
git-revert
|
||||
git-rm
|
||||
git-send-email
|
||||
git-send-pack
|
||||
git-sh-setup
|
||||
git-shell
|
||||
git-shortlog
|
||||
git-show
|
||||
git-show-branch
|
||||
git-show-index
|
||||
git-ssh-fetch
|
||||
git-ssh-pull
|
||||
git-ssh-push
|
||||
git-ssh-upload
|
||||
git-status
|
||||
git-stripspace
|
||||
git-svnimport
|
||||
git-symbolic-ref
|
||||
git-tag
|
||||
git-tar-tree
|
||||
git-unpack-file
|
||||
git-unpack-objects
|
||||
git-update-index
|
||||
git-update-ref
|
||||
git-update-server-info
|
||||
git-upload-pack
|
||||
git-var
|
||||
git-verify-pack
|
||||
git-verify-tag
|
||||
git-whatchanged
|
||||
git-write-tree
|
||||
git-core-*/?*
|
||||
test-date
|
||||
test-delta
|
||||
common-cmds.h
|
||||
/GIT-BUILD-OPTIONS
|
||||
/GIT-CFLAGS
|
||||
/GIT-LDFLAGS
|
||||
/GIT-GUI-VARS
|
||||
/GIT-VERSION-FILE
|
||||
/bin-wrappers/
|
||||
/git
|
||||
/git-add
|
||||
/git-add--interactive
|
||||
/git-am
|
||||
/git-annotate
|
||||
/git-apply
|
||||
/git-archimport
|
||||
/git-archive
|
||||
/git-bisect
|
||||
/git-bisect--helper
|
||||
/git-blame
|
||||
/git-branch
|
||||
/git-bundle
|
||||
/git-cat-file
|
||||
/git-check-attr
|
||||
/git-check-ref-format
|
||||
/git-checkout
|
||||
/git-checkout-index
|
||||
/git-cherry
|
||||
/git-cherry-pick
|
||||
/git-clean
|
||||
/git-clone
|
||||
/git-commit
|
||||
/git-commit-tree
|
||||
/git-config
|
||||
/git-count-objects
|
||||
/git-cvsexportcommit
|
||||
/git-cvsimport
|
||||
/git-cvsserver
|
||||
/git-daemon
|
||||
/git-diff
|
||||
/git-diff-files
|
||||
/git-diff-index
|
||||
/git-diff-tree
|
||||
/git-difftool
|
||||
/git-difftool--helper
|
||||
/git-describe
|
||||
/git-fast-export
|
||||
/git-fast-import
|
||||
/git-fetch
|
||||
/git-fetch-pack
|
||||
/git-filter-branch
|
||||
/git-fmt-merge-msg
|
||||
/git-for-each-ref
|
||||
/git-format-patch
|
||||
/git-fsck
|
||||
/git-fsck-objects
|
||||
/git-gc
|
||||
/git-get-tar-commit-id
|
||||
/git-grep
|
||||
/git-hash-object
|
||||
/git-help
|
||||
/git-http-backend
|
||||
/git-http-fetch
|
||||
/git-http-push
|
||||
/git-imap-send
|
||||
/git-index-pack
|
||||
/git-init
|
||||
/git-init-db
|
||||
/git-instaweb
|
||||
/git-log
|
||||
/git-lost-found
|
||||
/git-ls-files
|
||||
/git-ls-remote
|
||||
/git-ls-tree
|
||||
/git-mailinfo
|
||||
/git-mailsplit
|
||||
/git-merge
|
||||
/git-merge-base
|
||||
/git-merge-index
|
||||
/git-merge-file
|
||||
/git-merge-tree
|
||||
/git-merge-octopus
|
||||
/git-merge-one-file
|
||||
/git-merge-ours
|
||||
/git-merge-recursive
|
||||
/git-merge-resolve
|
||||
/git-merge-subtree
|
||||
/git-mergetool
|
||||
/git-mergetool--lib
|
||||
/git-mktag
|
||||
/git-mktree
|
||||
/git-name-rev
|
||||
/git-mv
|
||||
/git-notes
|
||||
/git-pack-redundant
|
||||
/git-pack-objects
|
||||
/git-pack-refs
|
||||
/git-parse-remote
|
||||
/git-patch-id
|
||||
/git-peek-remote
|
||||
/git-prune
|
||||
/git-prune-packed
|
||||
/git-pull
|
||||
/git-push
|
||||
/git-quiltimport
|
||||
/git-read-tree
|
||||
/git-rebase
|
||||
/git-rebase--am
|
||||
/git-rebase--interactive
|
||||
/git-rebase--merge
|
||||
/git-receive-pack
|
||||
/git-reflog
|
||||
/git-relink
|
||||
/git-remote
|
||||
/git-remote-http
|
||||
/git-remote-https
|
||||
/git-remote-ftp
|
||||
/git-remote-ftps
|
||||
/git-remote-fd
|
||||
/git-remote-ext
|
||||
/git-remote-testgit
|
||||
/git-repack
|
||||
/git-replace
|
||||
/git-repo-config
|
||||
/git-request-pull
|
||||
/git-rerere
|
||||
/git-reset
|
||||
/git-rev-list
|
||||
/git-rev-parse
|
||||
/git-revert
|
||||
/git-rm
|
||||
/git-send-email
|
||||
/git-send-pack
|
||||
/git-sh-i18n
|
||||
/git-sh-i18n--envsubst
|
||||
/git-sh-setup
|
||||
/git-sh-i18n
|
||||
/git-shell
|
||||
/git-shortlog
|
||||
/git-show
|
||||
/git-show-branch
|
||||
/git-show-index
|
||||
/git-show-ref
|
||||
/git-stage
|
||||
/git-stash
|
||||
/git-status
|
||||
/git-stripspace
|
||||
/git-submodule
|
||||
/git-svn
|
||||
/git-symbolic-ref
|
||||
/git-tag
|
||||
/git-tar-tree
|
||||
/git-unpack-file
|
||||
/git-unpack-objects
|
||||
/git-update-index
|
||||
/git-update-ref
|
||||
/git-update-server-info
|
||||
/git-upload-archive
|
||||
/git-upload-pack
|
||||
/git-var
|
||||
/git-verify-pack
|
||||
/git-verify-tag
|
||||
/git-web--browse
|
||||
/git-whatchanged
|
||||
/git-write-tree
|
||||
/git-core-*/?*
|
||||
/gitk-git/gitk-wish
|
||||
/gitweb/GITWEB-BUILD-OPTIONS
|
||||
/gitweb/gitweb.cgi
|
||||
/gitweb/static/gitweb.js
|
||||
/gitweb/static/gitweb.min.*
|
||||
/test-chmtime
|
||||
/test-ctype
|
||||
/test-date
|
||||
/test-delta
|
||||
/test-dump-cache-tree
|
||||
/test-genrandom
|
||||
/test-index-version
|
||||
/test-line-buffer
|
||||
/test-match-trees
|
||||
/test-mktemp
|
||||
/test-obj-pool
|
||||
/test-parse-options
|
||||
/test-path-utils
|
||||
/test-run-command
|
||||
/test-sha1
|
||||
/test-sigchain
|
||||
/test-string-pool
|
||||
/test-subprocess
|
||||
/test-svn-fe
|
||||
/test-treap
|
||||
/common-cmds.h
|
||||
*.tar.gz
|
||||
*.dsc
|
||||
*.deb
|
||||
git-core.spec
|
||||
/git.spec
|
||||
*.exe
|
||||
libgit.a
|
||||
*.o
|
||||
*.[aos]
|
||||
*.py[co]
|
||||
config.mak
|
||||
git-blame
|
||||
.depend/
|
||||
*.gcda
|
||||
*.gcno
|
||||
*.gcov
|
||||
/coverage-untested-functions
|
||||
/cover_db/
|
||||
/cover_db_html/
|
||||
*+
|
||||
/config.mak
|
||||
/autom4te.cache
|
||||
/config.cache
|
||||
/config.log
|
||||
/config.status
|
||||
/config.mak.autogen
|
||||
/config.mak.append
|
||||
/configure
|
||||
/tags
|
||||
/TAGS
|
||||
/cscope*
|
||||
*.obj
|
||||
*.lib
|
||||
*.sln
|
||||
*.suo
|
||||
*.ncb
|
||||
*.vcproj
|
||||
*.user
|
||||
*.idb
|
||||
*.pdb
|
||||
/Debug/
|
||||
/Release/
|
||||
|
|
69
.mailmap
Normal file
69
.mailmap
Normal file
|
@ -0,0 +1,69 @@
|
|||
#
|
||||
# This list is used by git-shortlog to fix a few botched name translations
|
||||
# in the git archive, either because the author's full name was messed up
|
||||
# and/or not always written the same way, making contributions from the
|
||||
# same person appearing not to be so.
|
||||
#
|
||||
|
||||
Alex Bennée <kernel-hacker@bennee.com>
|
||||
Alexander Gavrilov <angavrilov@gmail.com>
|
||||
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
|
||||
Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
|
||||
Chris Shoemaker <c.shoemaker@cox.net>
|
||||
Dana L. How <danahow@gmail.com>
|
||||
Dana L. How <how@deathvalley.cswitch.com>
|
||||
Daniel Barkalow <barkalow@iabervon.org>
|
||||
David D. Kilzer <ddkilzer@kilzer.net>
|
||||
David Kågedal <davidk@lysator.liu.se>
|
||||
David S. Miller <davem@davemloft.net>
|
||||
Deskin Miller <deskinm@umich.edu>
|
||||
Dirk Süsserott <newsletter@dirk.my1.cc>
|
||||
Fredrik Kuivinen <freku045@student.liu.se>
|
||||
H. Peter Anvin <hpa@bonde.sc.orionmulti.com>
|
||||
H. Peter Anvin <hpa@tazenda.sc.orionmulti.com>
|
||||
H. Peter Anvin <hpa@trantor.hos.anvin.org>
|
||||
Horst H. von Brand <vonbrand@inf.utfsm.cl>
|
||||
İsmail Dönmez <ismail@pardus.org.tr>
|
||||
Jay Soffian <jaysoffian+git@gmail.com>
|
||||
Joachim Berdal Haga <cjhaga@fys.uio.no>
|
||||
Jon Loeliger <jdl@freescale.com>
|
||||
Jon Seymour <jon@blackcubes.dyndns.org>
|
||||
Jonathan Nieder <jrnieder@uchicago.edu>
|
||||
Junio C Hamano <junio@twinsun.com>
|
||||
Karl Hasselström <kha@treskal.com>
|
||||
Kent Engstrom <kent@lysator.liu.se>
|
||||
Lars Doelle <lars.doelle@on-line ! de>
|
||||
Lars Doelle <lars.doelle@on-line.de>
|
||||
Li Hong <leehong@pku.edu.cn>
|
||||
Lukas Sandström <lukass@etek.chalmers.se>
|
||||
Martin Langhoff <martin@laptop.org>
|
||||
Michael Coleman <tutufan@gmail.com>
|
||||
Michael J Gruber <git@drmicha.warpmail.net> <michaeljgruber+gmane@fastmail.fm>
|
||||
Michael W. Olson <mwolson@gnu.org>
|
||||
Michele Ballabio <barra_cuda@katamail.com>
|
||||
Nanako Shiraishi <nanako3@bluebottle.com>
|
||||
Nanako Shiraishi <nanako3@lavabit.com>
|
||||
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
|
||||
<nico@fluxnic.net> <nico@cam.org>
|
||||
Philippe Bruhat <book@cpan.org>
|
||||
Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk>
|
||||
René Scharfe <rene.scharfe@lsrfire.ath.cx>
|
||||
Robert Fitzsimons <robfitz@273k.net>
|
||||
Sam Vilain <sam@vilain.net>
|
||||
Santi Béjar <sbejar@gmail.com>
|
||||
Sean Estabrooks <seanlkml@sympatico.ca>
|
||||
Shawn O. Pearce <spearce@spearce.org>
|
||||
Steven Grimm <koreth@midwinter.com>
|
||||
Theodore Ts'o <tytso@mit.edu>
|
||||
Tony Luck <tony.luck@intel.com>
|
||||
Uwe Kleine-König <Uwe_Zeisberger@digi.com>
|
||||
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
|
||||
Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
|
||||
Uwe Kleine-König <uzeisberger@io.fsforth.de>
|
||||
Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de>
|
||||
Ville Skyttä <scop@xemacs.org>
|
||||
Vitaly "_Vi" Shukela <public_vi@tut.by>
|
||||
William Pursell <bill.pursell@gmail.com>
|
||||
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
|
||||
anonymous <linux@horizon.com>
|
||||
anonymous <linux@horizon.net>
|
25
COPYING
25
COPYING
|
@ -22,8 +22,8 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
@ -36,7 +36,7 @@ software--to make sure the software is free for all its users. This
|
|||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
|
@ -76,7 +76,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
|
@ -131,7 +131,7 @@ above, provided that you also meet all of these conditions:
|
|||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
|
@ -189,7 +189,7 @@ access to copy from a designated place, then offering equivalent
|
|||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
|
@ -246,7 +246,7 @@ impose that choice.
|
|||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
|
@ -299,7 +299,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
|
@ -324,10 +324,9 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
@ -357,5 +356,5 @@ necessary. Here is a sample; alter the names:
|
|||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
|
|
1
Documentation/.gitattributes
vendored
Normal file
1
Documentation/.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.txt whitespace
|
11
Documentation/.gitignore
vendored
11
Documentation/.gitignore
vendored
|
@ -1,7 +1,12 @@
|
|||
*.xml
|
||||
*.html
|
||||
*.1
|
||||
*.7
|
||||
*.[1-8]
|
||||
*.made
|
||||
*.texi
|
||||
*.pdf
|
||||
git.info
|
||||
gitman.info
|
||||
howto-index.txt
|
||||
doc.dep
|
||||
README
|
||||
cmds-*.txt
|
||||
manpage-base-url.xsl
|
||||
|
|
197
Documentation/CodingGuidelines
Normal file
197
Documentation/CodingGuidelines
Normal file
|
@ -0,0 +1,197 @@
|
|||
Like other projects, we also have some guidelines to keep to the
|
||||
code. For git in general, three rough rules are:
|
||||
|
||||
- Most importantly, we never say "It's in POSIX; we'll happily
|
||||
ignore your needs should your system not conform to it."
|
||||
We live in the real world.
|
||||
|
||||
- However, we often say "Let's stay away from that construct,
|
||||
it's not even in POSIX".
|
||||
|
||||
- In spite of the above two rules, we sometimes say "Although
|
||||
this is not in POSIX, it (is so convenient | makes the code
|
||||
much more readable | has other good characteristics) and
|
||||
practically all the platforms we care about support it, so
|
||||
let's use it".
|
||||
|
||||
Again, we live in the real world, and it is sometimes a
|
||||
judgement call, the decision based more on real world
|
||||
constraints people face than what the paper standard says.
|
||||
|
||||
|
||||
As for more concrete guidelines, just imitate the existing code
|
||||
(this is a good guideline, no matter which project you are
|
||||
contributing to). It is always preferable to match the _local_
|
||||
convention. New code added to git suite is expected to match
|
||||
the overall style of existing code. Modifications to existing
|
||||
code is expected to match the style the surrounding code already
|
||||
uses (even if it doesn't match the overall style of existing code).
|
||||
|
||||
But if you must have a list of rules, here they are.
|
||||
|
||||
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
|
||||
properly nests. It should have been the way Bourne spelled
|
||||
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
|
||||
colon'ed "unset or null" form.
|
||||
|
||||
- We use ${parameter#word} and its [#%] siblings, and their
|
||||
doubled "longest matching" form.
|
||||
|
||||
- No "Substring Expansion" ${parameter:offset:length}.
|
||||
|
||||
- No shell arrays.
|
||||
|
||||
- No strlen ${#parameter}.
|
||||
|
||||
- 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 prefer "test" over "[ ... ]".
|
||||
|
||||
- We do not write the noiseword "function" in front of shell
|
||||
functions.
|
||||
|
||||
- As to use of grep, stick to a subset of BRE (namely, no \{m,n\},
|
||||
[::], [==], nor [..]) for portability.
|
||||
|
||||
- We do not use \{m,n\};
|
||||
|
||||
- We do not use -E;
|
||||
|
||||
- We do not use ? nor + (which are \{0,1\} and \{1,\}
|
||||
respectively in BRE) but that goes without saying as these
|
||||
are ERE elements not BRE (note that \? and \+ are not even part
|
||||
of BRE -- making them accessible from BRE is a GNU extension).
|
||||
|
||||
For C programs:
|
||||
|
||||
- We use tabs to indent, and interpret tabs as taking up to
|
||||
8 spaces.
|
||||
|
||||
- We try to keep to at most 80 characters per line.
|
||||
|
||||
- When declaring pointers, the star sides with the variable
|
||||
name, i.e. "char *string", not "char* string" or
|
||||
"char * string". This makes it easier to understand code
|
||||
like "char *string, c;".
|
||||
|
||||
- We avoid using braces unnecessarily. I.e.
|
||||
|
||||
if (bla) {
|
||||
x = 1;
|
||||
}
|
||||
|
||||
is frowned upon. A gray area is when the statement extends
|
||||
over a few lines, and/or you have a lengthy comment atop of
|
||||
it. Also, like in the Linux kernel, if there is a long list
|
||||
of "else if" statements, it can make sense to add braces to
|
||||
single line blocks.
|
||||
|
||||
- We try to avoid assignments inside if().
|
||||
|
||||
- Try to make your code understandable. You may put comments
|
||||
in, but comments invariably tend to stale out when the code
|
||||
they were describing changes. Often splitting a function
|
||||
into two makes the intention of the code much clearer.
|
||||
|
||||
- Double negation is often harder to understand than no negation
|
||||
at all.
|
||||
|
||||
- Some clever tricks, like using the !! operator with arithmetic
|
||||
constructs, can be extremely confusing to others. Avoid them,
|
||||
unless there is a compelling reason to use them.
|
||||
|
||||
- Use the API. No, really. We have a strbuf (variable length
|
||||
string), several arrays with the ALLOC_GROW() macro, a
|
||||
string_list for sorted string lists, a hash map (mapping struct
|
||||
objects) named "struct decorate", amongst other things.
|
||||
|
||||
- When you come up with an API, document it.
|
||||
|
||||
- The first #include in C files, except in platform specific
|
||||
compat/ implementations, should be git-compat-util.h or another
|
||||
header file that includes it, such as cache.h or builtin.h.
|
||||
|
||||
- If you are planning a new command, consider writing it in shell
|
||||
or perl first, so that changes in semantics can be easily
|
||||
changed and discussed. Many git commands started out like
|
||||
that, and a few are still scripts.
|
||||
|
||||
- Avoid introducing a new dependency into git. This means you
|
||||
usually should stay away from scripting languages not already
|
||||
used in the git core command set (unless your command is clearly
|
||||
separate from it, such as an importer to convert random-scm-X
|
||||
repositories to git).
|
||||
|
||||
- When we pass <string, length> pair to functions, we should try to
|
||||
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.
|
|
@ -1,36 +1,124 @@
|
|||
MAN1_TXT= \
|
||||
$(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
|
||||
$(wildcard git-*.txt)) \
|
||||
gitk.txt
|
||||
MAN7_TXT=git.txt
|
||||
gitk.txt git.txt
|
||||
MAN5_TXT=gitattributes.txt gitignore.txt gitmodules.txt githooks.txt \
|
||||
gitrepository-layout.txt
|
||||
MAN7_TXT=gitcli.txt gittutorial.txt gittutorial-2.txt \
|
||||
gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \
|
||||
gitdiffcore.txt gitnamespaces.txt gitrevisions.txt gitworkflows.txt
|
||||
|
||||
DOC_HTML=$(patsubst %.txt,%.html,$(MAN1_TXT) $(MAN7_TXT))
|
||||
MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
|
||||
MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
|
||||
MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
|
||||
|
||||
ARTICLES = tutorial
|
||||
ARTICLES += core-tutorial
|
||||
ARTICLES += cvs-migration
|
||||
ARTICLES += diffcore
|
||||
ARTICLES += howto-index
|
||||
ARTICLES += repository-layout
|
||||
ARTICLES += hooks
|
||||
DOC_HTML=$(MAN_HTML)
|
||||
|
||||
ARTICLES = howto-index
|
||||
ARTICLES += everyday
|
||||
ARTICLES += git-tools
|
||||
ARTICLES += git-bisect-lk2009
|
||||
# with their own formatting rules.
|
||||
SP_ARTICLES = glossary howto/revert-branch-rebase
|
||||
SP_ARTICLES = howto/revert-branch-rebase howto/using-merge-subtree user-manual
|
||||
API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
|
||||
SP_ARTICLES += $(API_DOCS)
|
||||
SP_ARTICLES += technical/api-index
|
||||
|
||||
DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
|
||||
|
||||
DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
|
||||
DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
|
||||
DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
|
||||
|
||||
prefix?=$(HOME)
|
||||
bin=$(prefix)/bin
|
||||
mandir=$(prefix)/man
|
||||
man1=$(mandir)/man1
|
||||
man7=$(mandir)/man7
|
||||
bindir?=$(prefix)/bin
|
||||
htmldir?=$(prefix)/share/doc/git-doc
|
||||
pdfdir?=$(prefix)/share/doc/git-doc
|
||||
mandir?=$(prefix)/share/man
|
||||
man1dir=$(mandir)/man1
|
||||
man5dir=$(mandir)/man5
|
||||
man7dir=$(mandir)/man7
|
||||
# DESTDIR=
|
||||
|
||||
ASCIIDOC=asciidoc
|
||||
ASCIIDOC_EXTRA =
|
||||
MANPAGE_XSL = manpage-normal.xsl
|
||||
XMLTO_EXTRA =
|
||||
INSTALL?=install
|
||||
RM ?= rm -f
|
||||
MAN_REPO = ../../git-manpages
|
||||
HTML_REPO = ../../git-htmldocs
|
||||
|
||||
infodir?=$(prefix)/share/info
|
||||
MAKEINFO=makeinfo
|
||||
INSTALL_INFO=install-info
|
||||
DOCBOOK2X_TEXI=docbook2x-texi
|
||||
DBLATEX=dblatex
|
||||
ifndef PERL_PATH
|
||||
PERL_PATH = /usr/bin/perl
|
||||
endif
|
||||
|
||||
-include ../config.mak.autogen
|
||||
-include ../config.mak
|
||||
|
||||
#
|
||||
# For asciidoc ...
|
||||
# -7.1.2, set ASCIIDOC7
|
||||
# 8.0-, no extra settings are needed
|
||||
#
|
||||
|
||||
#
|
||||
# For docbook-xsl ...
|
||||
# -1.68.1, no extra settings are needed?
|
||||
# 1.69.0, set ASCIIDOC_ROFF?
|
||||
# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
|
||||
# 1.71.1, set ASCIIDOC_ROFF?
|
||||
# 1.72.0, set DOCBOOK_XSL_172.
|
||||
# 1.73.0-, no extra settings are needed
|
||||
#
|
||||
|
||||
ifndef ASCIIDOC7
|
||||
ASCIIDOC_EXTRA += -a asciidoc7compatible -a no-inline-literal
|
||||
endif
|
||||
ifdef DOCBOOK_XSL_172
|
||||
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
|
||||
MANPAGE_XSL = manpage-1.72.xsl
|
||||
else
|
||||
ifndef ASCIIDOC_ROFF
|
||||
# docbook-xsl after 1.72 needs the regular XSL, but will not
|
||||
# pass-thru raw roff codes from asciidoc.conf, so turn them off.
|
||||
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
|
||||
endif
|
||||
endif
|
||||
ifdef MAN_BOLD_LITERAL
|
||||
XMLTO_EXTRA += -m manpage-bold-literal.xsl
|
||||
endif
|
||||
ifdef DOCBOOK_SUPPRESS_SP
|
||||
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
||||
endif
|
||||
|
||||
# Newer DocBook stylesheet emits warning cruft in the output when
|
||||
# this is not set, and if set it shows an absolute link. Older
|
||||
# stylesheets simply ignore this parameter.
|
||||
#
|
||||
# Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/
|
||||
# or similar.
|
||||
ifndef MAN_BASE_URL
|
||||
MAN_BASE_URL = file://$(htmldir)/
|
||||
endif
|
||||
XMLTO_EXTRA += -m manpage-base-url.xsl
|
||||
|
||||
# If your target system uses GNU groff, it may try to render
|
||||
# apostrophes as a "pretty" apostrophe using unicode. This breaks
|
||||
# cut&paste, so you should set GNU_ROFF to force them to be ASCII
|
||||
# apostrophes. Unfortunately does not work with non-GNU roff.
|
||||
ifdef GNU_ROFF
|
||||
XMLTO_EXTRA += -m manpage-quote-apos.xsl
|
||||
endif
|
||||
|
||||
SHELL_PATH ?= $(SHELL)
|
||||
# Shell quote;
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||
|
||||
#
|
||||
# Please note that there is a minor bug in asciidoc.
|
||||
|
@ -41,70 +129,221 @@ INSTALL?=install
|
|||
# yourself - yes, all 6 characters of it!
|
||||
#
|
||||
|
||||
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
|
||||
QUIET_SUBDIR1 =
|
||||
|
||||
ifneq ($(findstring $(MAKEFLAGS),w),w)
|
||||
PRINT_DIR = --no-print-directory
|
||||
else # "make -w"
|
||||
NO_SUBDIR = :
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
||||
ifndef V
|
||||
QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
|
||||
QUIET_XMLTO = @echo ' ' XMLTO $@;
|
||||
QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
|
||||
QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
|
||||
QUIET_DBLATEX = @echo ' ' DBLATEX $@;
|
||||
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
|
||||
QUIET_GEN = @echo ' ' GEN $@;
|
||||
QUIET_STDERR = 2> /dev/null
|
||||
QUIET_SUBDIR0 = +@subdir=
|
||||
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
|
||||
$(MAKE) $(PRINT_DIR) -C $$subdir
|
||||
export V
|
||||
endif
|
||||
endif
|
||||
|
||||
all: html man
|
||||
|
||||
html: $(DOC_HTML)
|
||||
|
||||
$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
|
||||
|
||||
man: man1 man7
|
||||
man: man1 man5 man7
|
||||
man1: $(DOC_MAN1)
|
||||
man5: $(DOC_MAN5)
|
||||
man7: $(DOC_MAN7)
|
||||
|
||||
install: man
|
||||
$(INSTALL) -d -m755 $(DESTDIR)/$(man1) $(DESTDIR)/$(man7)
|
||||
$(INSTALL) $(DOC_MAN1) $(DESTDIR)/$(man1)
|
||||
$(INSTALL) $(DOC_MAN7) $(DESTDIR)/$(man7)
|
||||
info: git.info gitman.info
|
||||
|
||||
pdf: user-manual.pdf
|
||||
|
||||
install: install-man
|
||||
|
||||
install-man: man
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
|
||||
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
|
||||
$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
|
||||
$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
|
||||
|
||||
install-info: info
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
|
||||
$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
|
||||
if test -r $(DESTDIR)$(infodir)/dir; then \
|
||||
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
|
||||
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
|
||||
else \
|
||||
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
|
||||
fi
|
||||
|
||||
install-pdf: pdf
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
|
||||
$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)
|
||||
|
||||
install-html: html
|
||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
||||
|
||||
../GIT-VERSION-FILE: FORCE
|
||||
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
|
||||
|
||||
-include ../GIT-VERSION-FILE
|
||||
|
||||
#
|
||||
# Determine "include::" file references in asciidoc files.
|
||||
#
|
||||
doc.dep : $(wildcard *.txt) build-docdep.perl
|
||||
rm -f $@+ $@
|
||||
perl ./build-docdep.perl >$@+
|
||||
$(QUIET_GEN)$(RM) $@+ $@ && \
|
||||
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
|
||||
mv $@+ $@
|
||||
|
||||
-include doc.dep
|
||||
|
||||
git.7: README
|
||||
cmds_txt = cmds-ancillaryinterrogators.txt \
|
||||
cmds-ancillarymanipulators.txt \
|
||||
cmds-mainporcelain.txt \
|
||||
cmds-plumbinginterrogators.txt \
|
||||
cmds-plumbingmanipulators.txt \
|
||||
cmds-synchingrepositories.txt \
|
||||
cmds-synchelpers.txt \
|
||||
cmds-purehelpers.txt \
|
||||
cmds-foreignscminterface.txt
|
||||
|
||||
README: ../README
|
||||
cp $< $@
|
||||
$(cmds_txt): cmd-list.made
|
||||
|
||||
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
|
||||
$(QUIET_GEN)$(RM) $@ && \
|
||||
$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
|
||||
date >$@
|
||||
|
||||
clean:
|
||||
rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html doc.dep README
|
||||
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
|
||||
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
|
||||
$(RM) *.pdf
|
||||
$(RM) howto-index.txt howto/*.html doc.dep
|
||||
$(RM) technical/api-*.html technical/api-index.txt
|
||||
$(RM) $(cmds_txt) *.made
|
||||
$(RM) manpage-base-url.xsl
|
||||
|
||||
%.html : %.txt
|
||||
asciidoc -b xhtml11 -d manpage -f asciidoc.conf $<
|
||||
$(MAN_HTML): %.html : %.txt
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
%.1 %.7 : %.xml
|
||||
xmlto man $<
|
||||
manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||
sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||
|
||||
%.1 %.5 %.7 : %.xml manpage-base-url.xsl
|
||||
$(QUIET_XMLTO)$(RM) $@ && \
|
||||
xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||
|
||||
%.xml : %.txt
|
||||
asciidoc -b docbook -d manpage -f asciidoc.conf $<
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
git.html: git.txt README
|
||||
user-manual.xml: user-manual.txt user-manual.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
glossary.html : glossary.txt sort_glossary.pl
|
||||
cat $< | \
|
||||
perl sort_glossary.pl | \
|
||||
asciidoc -b xhtml11 - > glossary.html
|
||||
technical/api-index.txt: technical/api-index-skel.txt \
|
||||
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
||||
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
|
||||
|
||||
$(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) $*.txt
|
||||
|
||||
XSLT = docbook.xsl
|
||||
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
|
||||
|
||||
user-manual.html: user-manual.xml $(XSLT)
|
||||
$(QUIET_XSLTPROC)$(RM) $@+ $@ && \
|
||||
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
|
||||
mv $@+ $@
|
||||
|
||||
git.info: user-manual.texi
|
||||
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
|
||||
|
||||
user-manual.texi: user-manual.xml
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
|
||||
$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
|
||||
rm $@++ && \
|
||||
mv $@+ $@
|
||||
|
||||
user-manual.pdf: user-manual.xml
|
||||
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
|
||||
$(DBLATEX) -o $@+ -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
|
||||
mv $@+ $@
|
||||
|
||||
gitman.texi: $(MAN_XML) cat-texi.perl
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
|
||||
--to-stdout $(xml) &&) true) > $@++ && \
|
||||
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
|
||||
rm $@++ && \
|
||||
mv $@+ $@
|
||||
|
||||
gitman.info: gitman.texi
|
||||
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
|
||||
|
||||
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
|
||||
rm -f $@+ $@
|
||||
sh ./howto-index.sh $(wildcard howto/*.txt) >$@+
|
||||
$(QUIET_GEN)$(RM) $@+ $@ && \
|
||||
'$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
|
||||
asciidoc -b xhtml11 $*.txt
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 $*.txt
|
||||
|
||||
WEBDOC_DEST = /pub/software/scm/git/docs
|
||||
|
||||
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
|
||||
rm -f $@+ $@
|
||||
sed -e '1,/^$$/d' $? | asciidoc -b xhtml11 - >$@+
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
sed -e '1,/^$$/d' $< | $(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 - >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
install-webdoc : html
|
||||
sh ./install-webdoc.sh $(WEBDOC_DEST)
|
||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
|
||||
|
||||
# You must have a clone of git-htmldocs and git-manpages repositories
|
||||
# next to the git repository itself for the following to work.
|
||||
|
||||
quick-install: quick-install-man
|
||||
|
||||
require-manrepo::
|
||||
@if test ! -d $(MAN_REPO); \
|
||||
then echo "git-manpages repository must exist at $(MAN_REPO)"; exit 1; fi
|
||||
|
||||
quick-install-man: require-manrepo
|
||||
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir)
|
||||
|
||||
require-htmlrepo::
|
||||
@if test ! -d $(HTML_REPO); \
|
||||
then echo "git-htmldocs repository must exist at $(HTML_REPO)"; exit 1; fi
|
||||
|
||||
quick-install-html: require-htmlrepo
|
||||
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(htmldir)
|
||||
|
||||
.PHONY: FORCE
|
||||
|
|
42
Documentation/RelNotes/1.5.0.1.txt
Normal file
42
Documentation/RelNotes/1.5.0.1.txt
Normal file
|
@ -0,0 +1,42 @@
|
|||
GIT v1.5.0.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0
|
||||
------------------
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- Clarifications and corrections to 1.5.0 release notes.
|
||||
|
||||
- The main documentation did not link to git-remote documentation.
|
||||
|
||||
- Clarified introductory text of git-rebase documentation.
|
||||
|
||||
- Converted remaining mentions of update-index on Porcelain
|
||||
documents to git-add/git-rm.
|
||||
|
||||
- Some i18n.* configuration variables were incorrectly
|
||||
described as core.*; fixed.
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-add and git-update-index on a filesystem on which
|
||||
executable bits are unreliable incorrectly reused st_mode
|
||||
bits even when the path changed between symlink and regular
|
||||
file.
|
||||
|
||||
- git-daemon marks the listening sockets with FD_CLOEXEC so
|
||||
that it won't be leaked into the children.
|
||||
|
||||
- segfault from git-blame when the mandatory pathname
|
||||
parameter was missing was fixed; usage() message is given
|
||||
instead.
|
||||
|
||||
- git-rev-list did not read $GIT_DIR/config file, which means
|
||||
that did not honor i18n.logoutputencoding correctly.
|
||||
|
||||
* Tweaks
|
||||
|
||||
- sliding mmap() inefficiently mmaped the same region of a
|
||||
packfile with an access pattern that used objects in the
|
||||
reverse order. This has been made more efficient.
|
65
Documentation/RelNotes/1.5.0.2.txt
Normal file
65
Documentation/RelNotes/1.5.0.2.txt
Normal file
|
@ -0,0 +1,65 @@
|
|||
GIT v1.5.0.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.1
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- Automated merge conflict handling when changes to symbolic
|
||||
links conflicted were completely broken. The merge-resolve
|
||||
strategy created a regular file with conflict markers in it
|
||||
in place of the symbolic link. The default strategy,
|
||||
merge-recursive was even more broken. It removed the path
|
||||
that was pointed at by the symbolic link. Both of these
|
||||
problems have been fixed.
|
||||
|
||||
- 'git diff maint master next' did not correctly give combined
|
||||
diff across three trees.
|
||||
|
||||
- 'git fast-import' portability fix for Solaris.
|
||||
|
||||
- 'git show-ref --verify' without arguments did not error out
|
||||
but segfaulted.
|
||||
|
||||
- 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
|
||||
slashes after a/ and b/.
|
||||
|
||||
- 'git format-patch' produced too long filenames if the commit
|
||||
message had too long line at the beginning.
|
||||
|
||||
- Running 'make all' and then without changing anything
|
||||
running 'make install' still rebuilt some files. This
|
||||
was inconvenient when building as yourself and then
|
||||
installing as root (especially problematic when the source
|
||||
directory is on NFS and root is mapped to nobody).
|
||||
|
||||
- 'git-rerere' failed to deal with two unconflicted paths that
|
||||
sorted next to each other.
|
||||
|
||||
- 'git-rerere' attempted to open(2) a symlink and failed if
|
||||
there was a conflict. Since a conflicting change to a
|
||||
symlink would not benefit from rerere anyway, the command
|
||||
now ignores conflicting changes to symlinks.
|
||||
|
||||
- 'git-repack' did not like to pass more than 64 arguments
|
||||
internally to underlying 'rev-list' logic, which made it
|
||||
impossible to repack after accumulating many (small) packs
|
||||
in the repository.
|
||||
|
||||
- 'git-diff' to review the combined diff during a conflicted
|
||||
merge were not reading the working tree version correctly
|
||||
when changes to a symbolic link conflicted. It should have
|
||||
read the data using readlink(2) but read from the regular
|
||||
file the symbolic link pointed at.
|
||||
|
||||
- 'git-remote' did not like period in a remote's name.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- added and clarified core.bare, core.legacyheaders configurations.
|
||||
|
||||
- updated "git-clone --depth" documentation.
|
||||
|
||||
|
||||
* Assorted git-gui fixes.
|
58
Documentation/RelNotes/1.5.0.3.txt
Normal file
58
Documentation/RelNotes/1.5.0.3.txt
Normal file
|
@ -0,0 +1,58 @@
|
|||
GIT v1.5.0.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.2
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- 'git.el' honors the commit coding system from the configuration.
|
||||
|
||||
- 'blameview' in contrib/ correctly digs deeper when a line is
|
||||
clicked.
|
||||
|
||||
- 'http-push' correctly makes sure the remote side has leading
|
||||
path. Earlier it started in the middle of the path, and
|
||||
incorrectly.
|
||||
|
||||
- 'git-merge' did not exit with non-zero status when the
|
||||
working tree was dirty and cannot fast forward. It does
|
||||
now.
|
||||
|
||||
- 'cvsexportcommit' does not lose yet-to-be-used message file.
|
||||
|
||||
- int-vs-size_t typefix when running combined diff on files
|
||||
over 2GB long.
|
||||
|
||||
- 'git apply --whitespace=strip' should not touch unmodified
|
||||
lines.
|
||||
|
||||
- 'git-mailinfo' choke when a logical header line was too long.
|
||||
|
||||
- 'git show A..B' did not error out. Negative ref ("not A" in
|
||||
this example) does not make sense for the purpose of the
|
||||
command, so now it errors out.
|
||||
|
||||
- 'git fmt-merge-msg --file' without file parameter did not
|
||||
correctly error out.
|
||||
|
||||
- 'git archimport' barfed upon encountering a commit without
|
||||
summary.
|
||||
|
||||
- 'git index-pack' did not protect itself from getting a short
|
||||
read out of pread(2).
|
||||
|
||||
- 'git http-push' had a few buffer overruns.
|
||||
|
||||
- Build dependency fixes to rebuild fetch.o when other headers
|
||||
change.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- user-manual updates.
|
||||
|
||||
- Options to 'git remote add' were described insufficiently.
|
||||
|
||||
- Configuration format.suffix was not documented.
|
||||
|
||||
- Other formatting and spelling fixes.
|
22
Documentation/RelNotes/1.5.0.4.txt
Normal file
22
Documentation/RelNotes/1.5.0.4.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
GIT v1.5.0.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.3
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git.el does not add duplicate sign-off lines.
|
||||
|
||||
- git-commit shows the full stat of the resulting commit, not
|
||||
just about the files in the current directory, when run from
|
||||
a subdirectory.
|
||||
|
||||
- "git-checkout -m '@{8 hours ago}'" had a funny failure from
|
||||
eval; fixed.
|
||||
|
||||
- git-gui updates.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
* User manual updates
|
26
Documentation/RelNotes/1.5.0.5.txt
Normal file
26
Documentation/RelNotes/1.5.0.5.txt
Normal file
|
@ -0,0 +1,26 @@
|
|||
GIT v1.5.0.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.3
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-merge (hence git-pull) did not refuse fast-forwarding
|
||||
when the working tree had local changes that would have
|
||||
conflicted with it.
|
||||
|
||||
- git.el does not add duplicate sign-off lines.
|
||||
|
||||
- git-commit shows the full stat of the resulting commit, not
|
||||
just about the files in the current directory, when run from
|
||||
a subdirectory.
|
||||
|
||||
- "git-checkout -m '@{8 hours ago}'" had a funny failure from
|
||||
eval; fixed.
|
||||
|
||||
- git-gui updates.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
* User manual updates
|
21
Documentation/RelNotes/1.5.0.6.txt
Normal file
21
Documentation/RelNotes/1.5.0.6.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
GIT v1.5.0.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.5
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- a handful small fixes to gitweb.
|
||||
|
||||
- build procedure for user-manual is fixed not to require locally
|
||||
installed stylesheets.
|
||||
|
||||
- "git commit $paths" on paths whose earlier contents were
|
||||
already updated in the index were failing out.
|
||||
|
||||
* Documentation
|
||||
|
||||
- user-manual has better cross references.
|
||||
|
||||
- gitweb installation/deployment procedure is now documented.
|
18
Documentation/RelNotes/1.5.0.7.txt
Normal file
18
Documentation/RelNotes/1.5.0.7.txt
Normal file
|
@ -0,0 +1,18 @@
|
|||
GIT v1.5.0.7 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.6
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-upload-pack failed to close unused pipe ends, resulting
|
||||
in many zombies to hang around.
|
||||
|
||||
- git-rerere was recording the contents of earlier hunks
|
||||
duplicated in later hunks. This prevented resolving the same
|
||||
conflict when performing the same merge the other way around.
|
||||
|
||||
* Documentation
|
||||
|
||||
- a few documentation fixes from Debian package maintainer.
|
469
Documentation/RelNotes/1.5.0.txt
Normal file
469
Documentation/RelNotes/1.5.0.txt
Normal file
|
@ -0,0 +1,469 @@
|
|||
GIT v1.5.0 Release Notes
|
||||
========================
|
||||
|
||||
Old news
|
||||
--------
|
||||
|
||||
This section is for people who are upgrading from ancient
|
||||
versions of git. Although all of the changes in this section
|
||||
happened before the current v1.4.4 release, they are summarized
|
||||
here in the v1.5.0 release notes for people who skipped earlier
|
||||
versions.
|
||||
|
||||
As of git v1.5.0 there are some optional features that changes
|
||||
the repository to allow data to be stored and transferred more
|
||||
efficiently. These features are not enabled by default, as they
|
||||
will make the repository unusable with older versions of git.
|
||||
Specifically, the available options are:
|
||||
|
||||
- There is a configuration variable core.legacyheaders that
|
||||
changes the format of loose objects so that they are more
|
||||
efficient to pack and to send out of the repository over git
|
||||
native protocol, since v1.4.2. However, loose objects
|
||||
written in the new format cannot be read by git older than
|
||||
that version; people fetching from your repository using
|
||||
older clients over dumb transports (e.g. http) using older
|
||||
versions of git will also be affected.
|
||||
|
||||
To let git use the new loose object format, you have to
|
||||
set core.legacyheaders to false.
|
||||
|
||||
- Since v1.4.3, configuration repack.usedeltabaseoffset allows
|
||||
packfile to be created in more space efficient format, which
|
||||
cannot be read by git older than that version.
|
||||
|
||||
To let git use the new format for packfiles, you have to
|
||||
set repack.usedeltabaseoffset to true.
|
||||
|
||||
The above two new features are not enabled by default and you
|
||||
have to explicitly ask for them, because they make repositories
|
||||
unreadable by older versions of git, and in v1.5.0 we still do
|
||||
not enable them by default for the same reason. We will change
|
||||
this default probably 1 year after 1.4.2's release, when it is
|
||||
reasonable to expect everybody to have new enough version of
|
||||
git.
|
||||
|
||||
- 'git pack-refs' appeared in v1.4.4; this command allows tags
|
||||
to be accessed much more efficiently than the traditional
|
||||
'one-file-per-tag' format. Older git-native clients can
|
||||
still fetch from a repository that packed and pruned refs
|
||||
(the server side needs to run the up-to-date version of git),
|
||||
but older dumb transports cannot. Packing of refs is done by
|
||||
an explicit user action, either by use of "git pack-refs
|
||||
--prune" command or by use of "git gc" command.
|
||||
|
||||
- 'git -p' to paginate anything -- many commands do pagination
|
||||
by default on a tty. Introduced between v1.4.1 and v1.4.2;
|
||||
this may surprise old timers.
|
||||
|
||||
- 'git archive' superseded 'git tar-tree' in v1.4.3;
|
||||
|
||||
- 'git cvsserver' was new invention in v1.3.0;
|
||||
|
||||
- 'git repo-config', 'git grep', 'git rebase' and 'gitk' were
|
||||
seriously enhanced during v1.4.0 timeperiod.
|
||||
|
||||
- 'gitweb' became part of git.git during v1.4.0 timeperiod and
|
||||
seriously modified since then.
|
||||
|
||||
- reflog is an v1.4.0 invention. This allows you to name a
|
||||
revision that a branch used to be at (e.g. "git diff
|
||||
master@{yesterday} master" allows you to see changes since
|
||||
yesterday's tip of the branch).
|
||||
|
||||
|
||||
Updates in v1.5.0 since v1.4.4 series
|
||||
-------------------------------------
|
||||
|
||||
* Index manipulation
|
||||
|
||||
- git-add is to add contents to the index (aka "staging area"
|
||||
for the next commit), whether the file the contents happen to
|
||||
be is an existing one or a newly created one.
|
||||
|
||||
- git-add without any argument does not add everything
|
||||
anymore. Use 'git-add .' instead. Also you can add
|
||||
otherwise ignored files with an -f option.
|
||||
|
||||
- git-add tries to be more friendly to users by offering an
|
||||
interactive mode ("git-add -i").
|
||||
|
||||
- git-commit <path> used to refuse to commit if <path> was
|
||||
different between HEAD and the index (i.e. update-index was
|
||||
used on it earlier). This check was removed.
|
||||
|
||||
- git-rm is much saner and safer. It is used to remove paths
|
||||
from both the index file and the working tree, and makes sure
|
||||
you are not losing any local modification before doing so.
|
||||
|
||||
- git-reset <tree> <paths>... can be used to revert index
|
||||
entries for selected paths.
|
||||
|
||||
- git-update-index is much less visible. Many suggestions to
|
||||
use the command in git output and documentation have now been
|
||||
replaced by simpler commands such as "git add" or "git rm".
|
||||
|
||||
|
||||
* Repository layout and objects transfer
|
||||
|
||||
- The data for origin repository is stored in the configuration
|
||||
file $GIT_DIR/config, not in $GIT_DIR/remotes/, for newly
|
||||
created clones. The latter is still supported and there is
|
||||
no need to convert your existing repository if you are
|
||||
already comfortable with your workflow with the layout.
|
||||
|
||||
- git-clone always uses what is known as "separate remote"
|
||||
layout for a newly created repository with a working tree.
|
||||
|
||||
A repository with the separate remote layout starts with only
|
||||
one default branch, 'master', to be used for your own
|
||||
development. Unlike the traditional layout that copied all
|
||||
the upstream branches into your branch namespace (while
|
||||
renaming their 'master' to your 'origin'), the new layout
|
||||
puts upstream branches into local "remote-tracking branches"
|
||||
with their own namespace. These can be referenced with names
|
||||
such as "origin/$upstream_branch_name" and are stored in
|
||||
.git/refs/remotes rather than .git/refs/heads where normal
|
||||
branches are stored.
|
||||
|
||||
This layout keeps your own branch namespace less cluttered,
|
||||
avoids name collision with your upstream, makes it possible
|
||||
to automatically track new branches created at the remote
|
||||
after you clone from it, and makes it easier to interact with
|
||||
more than one remote repository (you can use "git remote" to
|
||||
add other repositories to track). There might be some
|
||||
surprises:
|
||||
|
||||
* 'git branch' does not show the remote tracking branches.
|
||||
It only lists your own branches. Use '-r' option to view
|
||||
the tracking branches.
|
||||
|
||||
* If you are forking off of a branch obtained from the
|
||||
upstream, you would have done something like 'git branch
|
||||
my-next next', because traditional layout dropped the
|
||||
tracking branch 'next' into your own branch namespace.
|
||||
With the separate remote layout, you say 'git branch next
|
||||
origin/next', which allows you to use the matching name
|
||||
'next' for your own branch. It also allows you to track a
|
||||
remote other than 'origin' (i.e. where you initially cloned
|
||||
from) and fork off of a branch from there the same way
|
||||
(e.g. "git branch mingw j6t/master").
|
||||
|
||||
Repositories initialized with the traditional layout continue
|
||||
to work.
|
||||
|
||||
- New branches that appear on the origin side after a clone is
|
||||
made are also tracked automatically. This is done with an
|
||||
wildcard refspec "refs/heads/*:refs/remotes/origin/*", which
|
||||
older git does not understand, so if you clone with 1.5.0,
|
||||
you would need to downgrade remote.*.fetch in the
|
||||
configuration file to specify each branch you are interested
|
||||
in individually if you plan to fetch into the repository with
|
||||
older versions of git (but why would you?).
|
||||
|
||||
- Similarly, wildcard refspec "refs/heads/*:refs/remotes/me/*"
|
||||
can be given to "git-push" command to update the tracking
|
||||
branches that is used to track the repository you are pushing
|
||||
from on the remote side.
|
||||
|
||||
- git-branch and git-show-branch know remote tracking branches
|
||||
(use the command line switch "-r" to list only tracked branches).
|
||||
|
||||
- git-push can now be used to delete a remote branch or a tag.
|
||||
This requires the updated git on the remote side (use "git
|
||||
push <remote> :refs/heads/<branch>" to delete "branch").
|
||||
|
||||
- git-push more aggressively keeps the transferred objects
|
||||
packed. Earlier we recommended to monitor amount of loose
|
||||
objects and repack regularly, but you should repack when you
|
||||
accumulated too many small packs this way as well. Updated
|
||||
git-count-objects helps you with this.
|
||||
|
||||
- git-fetch also more aggressively keeps the transferred objects
|
||||
packed. This behavior of git-push and git-fetch can be
|
||||
tweaked with a single configuration transfer.unpacklimit (but
|
||||
usually there should not be any need for a user to tweak it).
|
||||
|
||||
- A new command, git-remote, can help you manage your remote
|
||||
tracking branch definitions.
|
||||
|
||||
- You may need to specify explicit paths for upload-pack and/or
|
||||
receive-pack due to your ssh daemon configuration on the
|
||||
other end. This can now be done via remote.*.uploadpack and
|
||||
remote.*.receivepack configuration.
|
||||
|
||||
|
||||
* Bare repositories
|
||||
|
||||
- Certain commands change their behavior in a bare repository
|
||||
(i.e. a repository without associated working tree). We use
|
||||
a fairly conservative heuristic (if $GIT_DIR is ".git", or
|
||||
ends with "/.git", the repository is not bare) to decide if a
|
||||
repository is bare, but "core.bare" configuration variable
|
||||
can be used to override the heuristic when it misidentifies
|
||||
your repository.
|
||||
|
||||
- git-fetch used to complain updating the current branch but
|
||||
this is now allowed for a bare repository. So is the use of
|
||||
'git-branch -f' to update the current branch.
|
||||
|
||||
- Porcelain-ish commands that require a working tree refuses to
|
||||
work in a bare repository.
|
||||
|
||||
|
||||
* Reflog
|
||||
|
||||
- Reflog records the history from the view point of the local
|
||||
repository. In other words, regardless of the real history,
|
||||
the reflog shows the history as seen by one particular
|
||||
repository (this enables you to ask "what was the current
|
||||
revision in _this_ repository, yesterday at 1pm?"). This
|
||||
facility is enabled by default for repositories with working
|
||||
trees, and can be accessed with the "branch@{time}" and
|
||||
"branch@{Nth}" notation.
|
||||
|
||||
- "git show-branch" learned showing the reflog data with the
|
||||
new -g option. "git log" has -g option to view reflog
|
||||
entries in a more verbose manner.
|
||||
|
||||
- git-branch knows how to rename branches and moves existing
|
||||
reflog data from the old branch to the new one.
|
||||
|
||||
- In addition to the reflog support in v1.4.4 series, HEAD
|
||||
reference maintains its own log. "HEAD@{5.minutes.ago}"
|
||||
means the commit you were at 5 minutes ago, which takes
|
||||
branch switching into account. If you want to know where the
|
||||
tip of your current branch was at 5 minutes ago, you need to
|
||||
explicitly say its name (e.g. "master@{5.minutes.ago}") or
|
||||
omit the refname altogether i.e. "@{5.minutes.ago}".
|
||||
|
||||
- The commits referred to by reflog entries are now protected
|
||||
against pruning. The new command "git reflog expire" can be
|
||||
used to truncate older reflog entries and entries that refer
|
||||
to commits that have been pruned away previously with older
|
||||
versions of git.
|
||||
|
||||
Existing repositories that have been using reflog may get
|
||||
complaints from fsck-objects and may not be able to run
|
||||
git-repack, if you had run git-prune from older git; please
|
||||
run "git reflog expire --stale-fix --all" first to remove
|
||||
reflog entries that refer to commits that are no longer in
|
||||
the repository when that happens.
|
||||
|
||||
|
||||
* Crufts removal
|
||||
|
||||
- We used to say "old commits are retrievable using reflog and
|
||||
'master@{yesterday}' syntax as long as you haven't run
|
||||
git-prune". We no longer have to say the latter half of the
|
||||
above sentence, as git-prune does not remove things reachable
|
||||
from reflog entries.
|
||||
|
||||
- There is a toplevel garbage collector script, 'git-gc', that
|
||||
runs periodic cleanup functions, including 'git-repack -a -d',
|
||||
'git-reflog expire', 'git-pack-refs --prune', and 'git-rerere
|
||||
gc'.
|
||||
|
||||
- The output from fsck ("fsck-objects" is called just "fsck"
|
||||
now, but the old name continues to work) was needlessly
|
||||
alarming in that it warned missing objects that are reachable
|
||||
only from dangling objects. This has been corrected and the
|
||||
output is much more useful.
|
||||
|
||||
|
||||
* Detached HEAD
|
||||
|
||||
- You can use 'git-checkout' to check out an arbitrary revision
|
||||
or a tag as well, instead of named branches. This will
|
||||
dissociate your HEAD from the branch you are currently on.
|
||||
|
||||
A typical use of this feature is to "look around". E.g.
|
||||
|
||||
$ git checkout v2.6.16
|
||||
... compile, test, etc.
|
||||
$ git checkout v2.6.17
|
||||
... compile, test, etc.
|
||||
|
||||
- After detaching your HEAD, you can go back to an existing
|
||||
branch with usual "git checkout $branch". Also you can
|
||||
start a new branch using "git checkout -b $newbranch" to
|
||||
start a new branch at that commit.
|
||||
|
||||
- You can even pull from other repositories, make merges and
|
||||
commits while your HEAD is detached. Also you can use "git
|
||||
reset" to jump to arbitrary commit, while still keeping your
|
||||
HEAD detached.
|
||||
|
||||
Remember that a detached state is volatile, i.e. it will be forgotten
|
||||
as soon as you move away from it with the checkout or reset command,
|
||||
unless a branch is created from it as mentioned above. It is also
|
||||
possible to rescue a lost detached state from the HEAD reflog.
|
||||
|
||||
|
||||
* Packed refs
|
||||
|
||||
- Repositories with hundreds of tags have been paying large
|
||||
overhead, both in storage and in runtime, due to the
|
||||
traditional one-ref-per-file format. A new command,
|
||||
git-pack-refs, can be used to "pack" them in more efficient
|
||||
representation (you can let git-gc do this for you).
|
||||
|
||||
- Clones and fetches over dumb transports are now aware of
|
||||
packed refs and can download from repositories that use
|
||||
them.
|
||||
|
||||
|
||||
* Configuration
|
||||
|
||||
- configuration related to color setting are consolidated under
|
||||
color.* namespace (older diff.color.*, status.color.* are
|
||||
still supported).
|
||||
|
||||
- 'git-repo-config' command is accessible as 'git-config' now.
|
||||
|
||||
|
||||
* Updated features
|
||||
|
||||
- git-describe uses better criteria to pick a base ref. It
|
||||
used to pick the one with the newest timestamp, but now it
|
||||
picks the one that is topologically the closest (that is,
|
||||
among ancestors of commit C, the ref T that has the shortest
|
||||
output from "git-rev-list T..C" is chosen).
|
||||
|
||||
- git-describe gives the number of commits since the base ref
|
||||
between the refname and the hash suffix. E.g. the commit one
|
||||
before v2.6.20-rc6 in the kernel repository is:
|
||||
|
||||
v2.6.20-rc5-306-ga21b069
|
||||
|
||||
which tells you that its object name begins with a21b069,
|
||||
v2.6.20-rc5 is an ancestor of it (meaning, the commit
|
||||
contains everything -rc5 has), and there are 306 commits
|
||||
since v2.6.20-rc5.
|
||||
|
||||
- git-describe with --abbrev=0 can be used to show only the
|
||||
name of the base ref.
|
||||
|
||||
- git-blame learned a new option, --incremental, that tells it
|
||||
to output the blames as they are assigned. A sample script
|
||||
to use it is also included as contrib/blameview.
|
||||
|
||||
- git-blame starts annotating from the working tree by default.
|
||||
|
||||
|
||||
* Less external dependency
|
||||
|
||||
- We no longer require the "merge" program from the RCS suite.
|
||||
All 3-way file-level merges are now done internally.
|
||||
|
||||
- The original implementation of git-merge-recursive which was
|
||||
in Python has been removed; we have a C implementation of it
|
||||
now.
|
||||
|
||||
- git-shortlog is no longer a Perl script. It no longer
|
||||
requires output piped from git-log; it can accept revision
|
||||
parameters directly on the command line.
|
||||
|
||||
|
||||
* I18n
|
||||
|
||||
- We have always encouraged the commit message to be encoded in
|
||||
UTF-8, but the users are allowed to use legacy encoding as
|
||||
appropriate for their projects. This will continue to be the
|
||||
case. However, a non UTF-8 commit encoding _must_ be
|
||||
explicitly set with i18n.commitencoding in the repository
|
||||
where a commit is made; otherwise git-commit-tree will
|
||||
complain if the log message does not look like a valid UTF-8
|
||||
string.
|
||||
|
||||
- The value of i18n.commitencoding in the originating
|
||||
repository is recorded in the commit object on the "encoding"
|
||||
header, if it is not UTF-8. git-log and friends notice this,
|
||||
and reencodes the message to the log output encoding when
|
||||
displaying, if they are different. The log output encoding
|
||||
is determined by "git log --encoding=<encoding>",
|
||||
i18n.logoutputencoding configuration, or i18n.commitencoding
|
||||
configuration, in the decreasing order of preference, and
|
||||
defaults to UTF-8.
|
||||
|
||||
- Tools for e-mailed patch application now default to -u
|
||||
behavior; i.e. it always re-codes from the e-mailed encoding
|
||||
to the encoding specified with i18n.commitencoding. This
|
||||
unfortunately forces projects that have happily been using a
|
||||
legacy encoding without setting i18n.commitencoding to set
|
||||
the configuration, but taken with other improvement, please
|
||||
excuse us for this very minor one-time inconvenience.
|
||||
|
||||
|
||||
* e-mailed patches
|
||||
|
||||
- See the above I18n section.
|
||||
|
||||
- git-format-patch now enables --binary without being asked.
|
||||
git-am does _not_ default to it, as sending binary patch via
|
||||
e-mail is unusual and is harder to review than textual
|
||||
patches and it is prudent to require the person who is
|
||||
applying the patch to explicitly ask for it.
|
||||
|
||||
- The default suffix for git-format-patch output is now ".patch",
|
||||
not ".txt". This can be changed with --suffix=.txt option,
|
||||
or setting the config variable "format.suffix" to ".txt".
|
||||
|
||||
|
||||
* Foreign SCM interfaces
|
||||
|
||||
- git-svn now requires the Perl SVN:: libraries, the
|
||||
command-line backend was too slow and limited.
|
||||
|
||||
- the 'commit' subcommand of git-svn has been renamed to
|
||||
'set-tree', and 'dcommit' is the recommended replacement for
|
||||
day-to-day work.
|
||||
|
||||
- git fast-import backend.
|
||||
|
||||
|
||||
* User support
|
||||
|
||||
- Quite a lot of documentation updates.
|
||||
|
||||
- Bash completion scripts have been updated heavily.
|
||||
|
||||
- Better error messages for often used Porcelainish commands.
|
||||
|
||||
- Git GUI. This is a simple Tk based graphical interface for
|
||||
common Git operations.
|
||||
|
||||
|
||||
* Sliding mmap
|
||||
|
||||
- We used to assume that we can mmap the whole packfile while
|
||||
in use, but with a large project this consumes huge virtual
|
||||
memory space and truly huge ones would not fit in the
|
||||
userland address space on 32-bit platforms. We now mmap huge
|
||||
packfile in pieces to avoid this problem.
|
||||
|
||||
|
||||
* Shallow clones
|
||||
|
||||
- There is a partial support for 'shallow' repositories that
|
||||
keeps only recent history. A 'shallow clone' is created by
|
||||
specifying how deep that truncated history should be
|
||||
(e.g. "git clone --depth 5 git://some.where/repo.git").
|
||||
|
||||
Currently a shallow repository has number of limitations:
|
||||
|
||||
- Cloning and fetching _from_ a shallow clone are not
|
||||
supported (nor tested -- so they might work by accident but
|
||||
they are not expected to).
|
||||
|
||||
- Pushing from nor into a shallow clone are not expected to
|
||||
work.
|
||||
|
||||
- Merging inside a shallow repository would work as long as a
|
||||
merge base is found in the recent history, but otherwise it
|
||||
will be like merging unrelated histories and may result in
|
||||
huge conflicts.
|
||||
|
||||
but this would be more than adequate for people who want to
|
||||
look at near the tip of a big project with a deep history and
|
||||
send patches in e-mail format.
|
65
Documentation/RelNotes/1.5.1.1.txt
Normal file
65
Documentation/RelNotes/1.5.1.1.txt
Normal file
|
@ -0,0 +1,65 @@
|
|||
GIT v1.5.1.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1
|
||||
------------------
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- The --left-right option of rev-list and friends is documented.
|
||||
|
||||
- The documentation for cvsimport has been majorly improved.
|
||||
|
||||
- "git-show-ref --exclude-existing" was documented.
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- The implementation of -p option in "git cvsexportcommit" had
|
||||
the meaning of -C (context reduction) option wrong, and
|
||||
loosened the context requirements when it was told to be
|
||||
strict.
|
||||
|
||||
- "git cvsserver" did not behave like the real cvsserver when
|
||||
client side removed a file from the working tree without
|
||||
doing anything else on the path. In such a case, it should
|
||||
restore it from the checked out revision.
|
||||
|
||||
- "git fsck" issued an alarming error message on detached
|
||||
HEAD. It is not an error since at least 1.5.0.
|
||||
|
||||
- "git send-email" produced of References header of unbounded length;
|
||||
fixed this with line-folding.
|
||||
|
||||
- "git archive" to download from remote site should not
|
||||
require you to be in a git repository, but it incorrectly
|
||||
did.
|
||||
|
||||
- "git apply" ignored -p<n> for "diff --git" formatted
|
||||
patches.
|
||||
|
||||
- "git rerere" recorded a conflict that had one side empty
|
||||
(the other side adds) incorrectly; this made merging in the
|
||||
other direction fail to use previously recorded resolution.
|
||||
|
||||
- t4200 test was broken where "wc -l" pads its output with
|
||||
spaces.
|
||||
|
||||
- "git branch -m old new" to rename branch did not work
|
||||
without a configuration file in ".git/config".
|
||||
|
||||
- The sample hook for notification e-mail was misnamed.
|
||||
|
||||
- gitweb did not show type-changing patch correctly in the
|
||||
blobdiff view.
|
||||
|
||||
- git-svn did not error out with incorrect command line options.
|
||||
|
||||
- git-svn fell into an infinite loop when insanely long commit
|
||||
message was found.
|
||||
|
||||
- git-svn dcommit and rebase was confused by patches that were
|
||||
merged from another branch that is managed by git-svn.
|
||||
|
||||
- git-svn used to get confused when globbing remote branch/tag
|
||||
spec (e.g. "branches = proj/branches/*:refs/remotes/origin/*")
|
||||
is used and there was a plain file that matched the glob.
|
50
Documentation/RelNotes/1.5.1.2.txt
Normal file
50
Documentation/RelNotes/1.5.1.2.txt
Normal file
|
@ -0,0 +1,50 @@
|
|||
GIT v1.5.1.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1.1
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "git clone" over http from a repository that has lost the
|
||||
loose refs by running "git pack-refs" were broken (a code to
|
||||
deal with this was added to "git fetch" in v1.5.0, but it
|
||||
was missing from "git clone").
|
||||
|
||||
- "git diff a/ b/" incorrectly fell in "diff between two
|
||||
filesystem objects" codepath, when the user most likely
|
||||
wanted to limit the extent of output to two tracked
|
||||
directories.
|
||||
|
||||
- git-quiltimport had the same bug as we fixed for
|
||||
git-applymbox in v1.5.1.1 -- it gave an alarming "did not
|
||||
have any patch" message (but did not actually fail and was
|
||||
harmless).
|
||||
|
||||
- various git-svn fixes.
|
||||
|
||||
- Sample update hook incorrectly always refused requests to
|
||||
delete branches through push.
|
||||
|
||||
- git-blame on a very long working tree path had buffer
|
||||
overrun problem.
|
||||
|
||||
- git-apply did not like to be fed two patches in a row that created
|
||||
and then modified the same file.
|
||||
|
||||
- git-svn was confused when a non-project was stored directly under
|
||||
trunk/, branches/ and tags/.
|
||||
|
||||
- git-svn wants the Error.pm module that was at least as new
|
||||
as what we ship as part of git; install ours in our private
|
||||
installation location if the one on the system is older.
|
||||
|
||||
- An earlier update to command line integer parameter parser was
|
||||
botched and made 'update-index --cacheinfo' completely useless.
|
||||
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- Various documentation updates from J. Bruce Fields, Frank
|
||||
Lichtenheld, Alex Riesen and others. Andrew Ruder started a
|
||||
war on undocumented options.
|
45
Documentation/RelNotes/1.5.1.3.txt
Normal file
45
Documentation/RelNotes/1.5.1.3.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
GIT v1.5.1.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1.2
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-add tried to optimize by finding common leading
|
||||
directories across its arguments but botched, causing very
|
||||
confused behaviour.
|
||||
|
||||
- unofficial rpm.spec file shipped with git was letting
|
||||
ETC_GITCONFIG set to /usr/etc/gitconfig. Tweak the official
|
||||
Makefile to make it harder for distro people to make the
|
||||
same mistake, by setting the variable to /etc/gitconfig if
|
||||
prefix is set to /usr.
|
||||
|
||||
- git-svn inconsistently stripped away username from the URL
|
||||
only when svnsync_props was in use.
|
||||
|
||||
- git-svn got confused when handling symlinks on Mac OS.
|
||||
|
||||
- git-send-email was not quoting recipient names that have
|
||||
period '.' in them. Also it did not allow overriding
|
||||
envelope sender, which made it impossible to send patches to
|
||||
certain subscriber-only lists.
|
||||
|
||||
- built-in write_tree() routine had a sequence that renamed a
|
||||
file that is still open, which some systems did not like.
|
||||
|
||||
- when memory is very tight, sliding mmap code to read
|
||||
packfiles incorrectly closed the fd that was still being
|
||||
used to read the pack.
|
||||
|
||||
- import-tars contributed front-end for fastimport was passing
|
||||
wrong directory modes without checking.
|
||||
|
||||
- git-fastimport trusted its input too much and allowed to
|
||||
create corrupt tree objects with entries without a name.
|
||||
|
||||
- git-fetch needlessly barfed when too long reflog action
|
||||
description was given by the caller.
|
||||
|
||||
Also contains various documentation updates.
|
30
Documentation/RelNotes/1.5.1.4.txt
Normal file
30
Documentation/RelNotes/1.5.1.4.txt
Normal file
|
@ -0,0 +1,30 @@
|
|||
GIT v1.5.1.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1.3
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "git-http-fetch" did not work around a bug in libcurl
|
||||
earlier than 7.16 (curl_multi_remove_handle() was broken).
|
||||
|
||||
- "git cvsserver" handles a file that was once removed and
|
||||
then added again correctly.
|
||||
|
||||
- import-tars script (in contrib/) handles GNU tar archives
|
||||
that contain pathnames longer than 100 bytes (long-link
|
||||
extension) correctly.
|
||||
|
||||
- xdelta test program did not build correctly.
|
||||
|
||||
- gitweb sometimes tried incorrectly to apply function to
|
||||
decode utf8 twice, resulting in corrupt output.
|
||||
|
||||
- "git blame -C" mishandled text at the end of a group of
|
||||
lines.
|
||||
|
||||
- "git log/rev-list --boundary" did not produce output
|
||||
correctly without --left-right option.
|
||||
|
||||
- Many documentation updates.
|
42
Documentation/RelNotes/1.5.1.5.txt
Normal file
42
Documentation/RelNotes/1.5.1.5.txt
Normal file
|
@ -0,0 +1,42 @@
|
|||
GIT v1.5.1.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1.4
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-send-email did not understand aliases file for mutt, which
|
||||
allows leading whitespaces.
|
||||
|
||||
- git-format-patch emitted Content-Type and Content-Transfer-Encoding
|
||||
headers for non ASCII contents, but failed to add MIME-Version.
|
||||
|
||||
- git-name-rev had a buffer overrun with a deep history.
|
||||
|
||||
- contributed script import-tars did not get the directory in
|
||||
tar archives interpreted correctly.
|
||||
|
||||
- git-svn was reported to segfault for many people on list and
|
||||
#git; hopefully this has been fixed.
|
||||
|
||||
- "git-svn clone" does not try to minimize the URL
|
||||
(i.e. connect to higher level hierarchy) by default, as this
|
||||
can prevent clone to fail if only part of the repository
|
||||
(e.g. 'trunk') is open to public.
|
||||
|
||||
- "git checkout branch^0" did not detach the head when you are
|
||||
already on 'branch'; backported the fix from the 'master'.
|
||||
|
||||
- "git-config section.var" did not correctly work when
|
||||
existing configuration file had both [section] and [section "name"]
|
||||
next to each other.
|
||||
|
||||
- "git clone ../other-directory" was fooled if the current
|
||||
directory $PWD points at is a symbolic link.
|
||||
|
||||
- (build) tree_entry_extract() function was both static inline
|
||||
and extern, which caused trouble compiling with Forte12
|
||||
compilers on Sun.
|
||||
|
||||
- Many many documentation fixes and updates.
|
45
Documentation/RelNotes/1.5.1.6.txt
Normal file
45
Documentation/RelNotes/1.5.1.6.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
GIT v1.5.1.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.1.4
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-send-email did not understand aliases file for mutt, which
|
||||
allows leading whitespaces.
|
||||
|
||||
- git-format-patch emitted Content-Type and Content-Transfer-Encoding
|
||||
headers for non ASCII contents, but failed to add MIME-Version.
|
||||
|
||||
- git-name-rev had a buffer overrun with a deep history.
|
||||
|
||||
- contributed script import-tars did not get the directory in
|
||||
tar archives interpreted correctly.
|
||||
|
||||
- git-svn was reported to segfault for many people on list and
|
||||
#git; hopefully this has been fixed.
|
||||
|
||||
- git-svn also had a bug to crash svnserve by sending a bad
|
||||
sequence of requests.
|
||||
|
||||
- "git-svn clone" does not try to minimize the URL
|
||||
(i.e. connect to higher level hierarchy) by default, as this
|
||||
can prevent clone to fail if only part of the repository
|
||||
(e.g. 'trunk') is open to public.
|
||||
|
||||
- "git checkout branch^0" did not detach the head when you are
|
||||
already on 'branch'; backported the fix from the 'master'.
|
||||
|
||||
- "git-config section.var" did not correctly work when
|
||||
existing configuration file had both [section] and [section "name"]
|
||||
next to each other.
|
||||
|
||||
- "git clone ../other-directory" was fooled if the current
|
||||
directory $PWD points at is a symbolic link.
|
||||
|
||||
- (build) tree_entry_extract() function was both static inline
|
||||
and extern, which caused trouble compiling with Forte12
|
||||
compilers on Sun.
|
||||
|
||||
- Many many documentation fixes and updates.
|
371
Documentation/RelNotes/1.5.1.txt
Normal file
371
Documentation/RelNotes/1.5.1.txt
Normal file
|
@ -0,0 +1,371 @@
|
|||
GIT v1.5.1 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.5.0
|
||||
--------------------
|
||||
|
||||
* Deprecated commands and options.
|
||||
|
||||
- git-diff-stages and git-resolve have been removed.
|
||||
|
||||
* New commands and options.
|
||||
|
||||
- "git log" and friends take --reverse, which instructs them
|
||||
to give their output in the order opposite from their usual.
|
||||
They typically output from new to old, but with this option
|
||||
their output would read from old to new. "git shortlog"
|
||||
usually lists older commits first, but with this option,
|
||||
they are shown from new to old.
|
||||
|
||||
- "git log --pretty=format:<string>" to allow more flexible
|
||||
custom log output.
|
||||
|
||||
- "git diff" learned --ignore-space-at-eol. This is a weaker
|
||||
form of --ignore-space-change.
|
||||
|
||||
- "git diff --no-index pathA pathB" can be used as diff
|
||||
replacement with git specific enhancements.
|
||||
|
||||
- "git diff --no-index" can read from '-' (standard input).
|
||||
|
||||
- "git diff" also learned --exit-code to exit with non-zero
|
||||
status when it found differences. In the future we might
|
||||
want to make this the default but that would be a rather big
|
||||
backward incompatible change; it will stay as an option for
|
||||
now.
|
||||
|
||||
- "git diff --quiet" is --exit-code with output turned off,
|
||||
meant for scripted use to quickly determine if there is any
|
||||
tree-level difference.
|
||||
|
||||
- Textual patch generation with "git diff" without -w/-b
|
||||
option has been significantly optimized. "git blame" got
|
||||
faster because of the same change.
|
||||
|
||||
- "git log" and "git rev-list" has been optimized
|
||||
significantly when they are used with pathspecs.
|
||||
|
||||
- "git branch --track" can be used to set up configuration
|
||||
variables to help it easier to base your work on branches
|
||||
you track from a remote site.
|
||||
|
||||
- "git format-patch --attach" now emits attachments. Use
|
||||
--inline to get an inlined multipart/mixed.
|
||||
|
||||
- "git name-rev" learned --refs=<pattern>, to limit the tags
|
||||
used for naming the given revisions only to the ones
|
||||
matching the given pattern.
|
||||
|
||||
- "git remote update" is to run "git fetch" for defined remotes
|
||||
to update tracking branches.
|
||||
|
||||
- "git cvsimport" can now take '-d' to talk with a CVS
|
||||
repository different from what are recorded in CVS/Root
|
||||
(overriding it with environment CVSROOT does not work).
|
||||
|
||||
- "git bundle" can help sneaker-netting your changes between
|
||||
repositories.
|
||||
|
||||
- "git mergetool" can help 3-way file-level conflict
|
||||
resolution with your favorite graphical merge tools.
|
||||
|
||||
- A new configuration "core.symlinks" can be used to disable
|
||||
symlinks on filesystems that do not support them; they are
|
||||
checked out as regular files instead.
|
||||
|
||||
- You can name a commit object with its first line of the
|
||||
message. The syntax to use is ':/message text'. E.g.
|
||||
|
||||
$ git show ":/object name: introduce ':/<oneline prefix>' notation"
|
||||
|
||||
means the same thing as:
|
||||
|
||||
$ git show 28a4d940443806412effa246ecc7768a21553ec7
|
||||
|
||||
- "git bisect" learned a new command "run" that takes a script
|
||||
to run after each revision is checked out to determine if it
|
||||
is good or bad, to automate the bisection process.
|
||||
|
||||
- "git log" family learned a new traversal option --first-parent,
|
||||
which does what the name suggests.
|
||||
|
||||
|
||||
* Updated behavior of existing commands.
|
||||
|
||||
- "git-merge-recursive" used to barf when there are more than
|
||||
one common ancestors for the merge, and merging them had a
|
||||
rename/rename conflict. This has been fixed.
|
||||
|
||||
- "git fsck" does not barf on corrupt loose objects.
|
||||
|
||||
- "git rm" does not remove newly added files without -f.
|
||||
|
||||
- "git archimport" allows remapping when coming up with git
|
||||
branch names from arch names.
|
||||
|
||||
- git-svn got almost a rewrite.
|
||||
|
||||
- core.autocrlf configuration, when set to 'true', makes git
|
||||
to convert CRLF at the end of lines in text files to LF when
|
||||
reading from the filesystem, and convert in reverse when
|
||||
writing to the filesystem. The variable can be set to
|
||||
'input', in which case the conversion happens only while
|
||||
reading from the filesystem but files are written out with
|
||||
LF at the end of lines. Currently, which paths to consider
|
||||
'text' (i.e. be subjected to the autocrlf mechanism) is
|
||||
decided purely based on the contents, but the plan is to
|
||||
allow users to explicitly override this heuristic based on
|
||||
paths.
|
||||
|
||||
- The behavior of 'git-apply', when run in a subdirectory,
|
||||
without --index nor --cached were inconsistent with that of
|
||||
the command with these options. This was fixed to match the
|
||||
behavior with --index. A patch that is meant to be applied
|
||||
with -p1 from the toplevel of the project tree can be
|
||||
applied with any custom -p<n> option. A patch that is not
|
||||
relative to the toplevel needs to be applied with -p<n>
|
||||
option with or without --index (or --cached).
|
||||
|
||||
- "git diff" outputs a trailing HT when pathnames have embedded
|
||||
SP on +++/--- header lines, in order to help "GNU patch" to
|
||||
parse its output. "git apply" was already updated to accept
|
||||
this modified output format since ce74618d (Sep 22, 2006).
|
||||
|
||||
- "git cvsserver" runs hooks/update and honors its exit status.
|
||||
|
||||
- "git cvsserver" can be told to send everything with -kb.
|
||||
|
||||
- "git diff --check" also honors the --color output option.
|
||||
|
||||
- "git name-rev" used to stress the fact that a ref is a tag too
|
||||
much, by saying something like "v1.2.3^0~22". It now says
|
||||
"v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does
|
||||
not talk about an ancestor of the commit that is tagged, which
|
||||
makes sense).
|
||||
|
||||
- "git rev-list --boundary" now shows boundary markers for the
|
||||
commits omitted by --max-age and --max-count condition.
|
||||
|
||||
- The configuration mechanism now reads $(prefix)/etc/gitconfig.
|
||||
|
||||
- "git apply --verbose" shows what preimage lines were wanted
|
||||
when it couldn't find them.
|
||||
|
||||
- "git status" in a read-only repository got a bit saner.
|
||||
|
||||
- "git fetch" (hence "git clone" and "git pull") are less
|
||||
noisy when the output does not go to tty.
|
||||
|
||||
- "git fetch" between repositories with many refs were slow
|
||||
even when there are not many changes that needed
|
||||
transferring. This has been sped up by partially rewriting
|
||||
the heaviest parts in C.
|
||||
|
||||
- "git mailinfo" which splits an e-mail into a patch and the
|
||||
meta-information was rewritten, thanks to Don Zickus. It
|
||||
handles nested multipart better. The command was broken for
|
||||
a brief period on 'master' branch since 1.5.0 but the
|
||||
breakage is fixed now.
|
||||
|
||||
- send-email learned configurable bcc and chain-reply-to.
|
||||
|
||||
- "git remote show $remote" also talks about branches that
|
||||
would be pushed if you run "git push remote".
|
||||
|
||||
- Using objects from packs is now seriously optimized by clever
|
||||
use of a cache. This should be most noticeable in git-log
|
||||
family of commands that involve reading many tree objects.
|
||||
In addition, traversing revisions while filtering changes
|
||||
with pathspecs is made faster by terminating the comparison
|
||||
between the trees as early as possible.
|
||||
|
||||
|
||||
* Hooks
|
||||
|
||||
- The part to send out notification e-mails was removed from
|
||||
the sample update hook, as it was not an appropriate place
|
||||
to do so. The proper place to do this is the new post-receive
|
||||
hook. An example hook has been added to contrib/hooks/.
|
||||
|
||||
|
||||
* Others
|
||||
|
||||
- git-revert, git-gc and git-cherry-pick are now built-ins.
|
||||
|
||||
Fixes since v1.5.0
|
||||
------------------
|
||||
|
||||
These are all in v1.5.0.x series.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- Clarifications and corrections to 1.5.0 release notes.
|
||||
|
||||
- The main documentation did not link to git-remote documentation.
|
||||
|
||||
- Clarified introductory text of git-rebase documentation.
|
||||
|
||||
- Converted remaining mentions of update-index on Porcelain
|
||||
documents to git-add/git-rm.
|
||||
|
||||
- Some i18n.* configuration variables were incorrectly
|
||||
described as core.*; fixed.
|
||||
|
||||
- added and clarified core.bare, core.legacyheaders configurations.
|
||||
|
||||
- updated "git-clone --depth" documentation.
|
||||
|
||||
- user-manual updates.
|
||||
|
||||
- Options to 'git remote add' were described insufficiently.
|
||||
|
||||
- Configuration format.suffix was not documented.
|
||||
|
||||
- Other formatting and spelling fixes.
|
||||
|
||||
- user-manual has better cross references.
|
||||
|
||||
- gitweb installation/deployment procedure is now documented.
|
||||
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- git-upload-pack closes unused pipe ends; earlier this caused
|
||||
many zombies to hang around.
|
||||
|
||||
- git-rerere was recording the contents of earlier hunks
|
||||
duplicated in later hunks. This prevented resolving the same
|
||||
conflict when performing the same merge the other way around.
|
||||
|
||||
- git-add and git-update-index on a filesystem on which
|
||||
executable bits are unreliable incorrectly reused st_mode
|
||||
bits even when the path changed between symlink and regular
|
||||
file.
|
||||
|
||||
- git-daemon marks the listening sockets with FD_CLOEXEC so
|
||||
that it won't be leaked into the children.
|
||||
|
||||
- segfault from git-blame when the mandatory pathname
|
||||
parameter was missing was fixed; usage() message is given
|
||||
instead.
|
||||
|
||||
- git-rev-list did not read $GIT_DIR/config file, which means
|
||||
that did not honor i18n.logoutputencoding correctly.
|
||||
|
||||
- Automated merge conflict handling when changes to symbolic
|
||||
links conflicted were completely broken. The merge-resolve
|
||||
strategy created a regular file with conflict markers in it
|
||||
in place of the symbolic link. The default strategy,
|
||||
merge-recursive was even more broken. It removed the path
|
||||
that was pointed at by the symbolic link. Both of these
|
||||
problems have been fixed.
|
||||
|
||||
- 'git diff maint master next' did not correctly give combined
|
||||
diff across three trees.
|
||||
|
||||
- 'git fast-import' portability fix for Solaris.
|
||||
|
||||
- 'git show-ref --verify' without arguments did not error out
|
||||
but segfaulted.
|
||||
|
||||
- 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
|
||||
slashes after a/ and b/.
|
||||
|
||||
- 'git format-patch' produced too long filenames if the commit
|
||||
message had too long line at the beginning.
|
||||
|
||||
- Running 'make all' and then without changing anything
|
||||
running 'make install' still rebuilt some files. This
|
||||
was inconvenient when building as yourself and then
|
||||
installing as root (especially problematic when the source
|
||||
directory is on NFS and root is mapped to nobody).
|
||||
|
||||
- 'git-rerere' failed to deal with two unconflicted paths that
|
||||
sorted next to each other.
|
||||
|
||||
- 'git-rerere' attempted to open(2) a symlink and failed if
|
||||
there was a conflict. Since a conflicting change to a
|
||||
symlink would not benefit from rerere anyway, the command
|
||||
now ignores conflicting changes to symlinks.
|
||||
|
||||
- 'git-repack' did not like to pass more than 64 arguments
|
||||
internally to underlying 'rev-list' logic, which made it
|
||||
impossible to repack after accumulating many (small) packs
|
||||
in the repository.
|
||||
|
||||
- 'git-diff' to review the combined diff during a conflicted
|
||||
merge were not reading the working tree version correctly
|
||||
when changes to a symbolic link conflicted. It should have
|
||||
read the data using readlink(2) but read from the regular
|
||||
file the symbolic link pointed at.
|
||||
|
||||
- 'git-remote' did not like period in a remote's name.
|
||||
|
||||
- 'git.el' honors the commit coding system from the configuration.
|
||||
|
||||
- 'blameview' in contrib/ correctly digs deeper when a line is
|
||||
clicked.
|
||||
|
||||
- 'http-push' correctly makes sure the remote side has leading
|
||||
path. Earlier it started in the middle of the path, and
|
||||
incorrectly.
|
||||
|
||||
- 'git-merge' did not exit with non-zero status when the
|
||||
working tree was dirty and cannot fast forward. It does
|
||||
now.
|
||||
|
||||
- 'cvsexportcommit' does not lose yet-to-be-used message file.
|
||||
|
||||
- int-vs-size_t typefix when running combined diff on files
|
||||
over 2GB long.
|
||||
|
||||
- 'git apply --whitespace=strip' should not touch unmodified
|
||||
lines.
|
||||
|
||||
- 'git-mailinfo' choke when a logical header line was too long.
|
||||
|
||||
- 'git show A..B' did not error out. Negative ref ("not A" in
|
||||
this example) does not make sense for the purpose of the
|
||||
command, so now it errors out.
|
||||
|
||||
- 'git fmt-merge-msg --file' without file parameter did not
|
||||
correctly error out.
|
||||
|
||||
- 'git archimport' barfed upon encountering a commit without
|
||||
summary.
|
||||
|
||||
- 'git index-pack' did not protect itself from getting a short
|
||||
read out of pread(2).
|
||||
|
||||
- 'git http-push' had a few buffer overruns.
|
||||
|
||||
- Build dependency fixes to rebuild fetch.o when other headers
|
||||
change.
|
||||
|
||||
- git.el does not add duplicate sign-off lines.
|
||||
|
||||
- git-commit shows the full stat of the resulting commit, not
|
||||
just about the files in the current directory, when run from
|
||||
a subdirectory.
|
||||
|
||||
- "git-checkout -m '@{8 hours ago}'" had a funny failure from
|
||||
eval; fixed.
|
||||
|
||||
- git-merge (hence git-pull) did not refuse fast-forwarding
|
||||
when the working tree had local changes that would have
|
||||
conflicted with it.
|
||||
|
||||
- a handful small fixes to gitweb.
|
||||
|
||||
- build procedure for user-manual is fixed not to require locally
|
||||
installed stylesheets.
|
||||
|
||||
- "git commit $paths" on paths whose earlier contents were
|
||||
already updated in the index were failing out.
|
||||
|
||||
|
||||
* Tweaks
|
||||
|
||||
- sliding mmap() inefficiently mmaped the same region of a
|
||||
packfile with an access pattern that used objects in the
|
||||
reverse order. This has been made more efficient.
|
53
Documentation/RelNotes/1.5.2.1.txt
Normal file
53
Documentation/RelNotes/1.5.2.1.txt
Normal file
|
@ -0,0 +1,53 @@
|
|||
GIT v1.5.2.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.2
|
||||
------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- Temporary files that are used when invoking external diff
|
||||
programs did not tolerate a long TMPDIR.
|
||||
|
||||
- git-daemon did not notice when it could not write into its
|
||||
pid file.
|
||||
|
||||
- git-status did not honor core.excludesFile configuration like
|
||||
git-add did.
|
||||
|
||||
- git-annotate did not work from a subdirectory while
|
||||
git-blame did.
|
||||
|
||||
- git-cvsserver should have disabled access to a repository
|
||||
with "gitcvs.pserver.enabled = false" set even when
|
||||
"gitcvs.enabled = true" was set at the same time. It
|
||||
didn't.
|
||||
|
||||
- git-cvsimport did not work correctly in a repository with
|
||||
its branch heads were packed with pack-refs.
|
||||
|
||||
- ident unexpansion to squash "$Id: xxx $" that is in the
|
||||
repository copy removed incorrect number of bytes.
|
||||
|
||||
- git-svn misbehaved when the subversion repository did not
|
||||
provide MD5 checksums for files.
|
||||
|
||||
- git rebase (and git am) misbehaved on commits that have '\n'
|
||||
(literally backslash and en, not a linefeed) in the title.
|
||||
|
||||
- code to decode base85 used in binary patches had one error
|
||||
return codepath wrong.
|
||||
|
||||
- RFC2047 Q encoding output by git-format-patch used '_' for a
|
||||
space, which is not understood by some programs. It uses =20
|
||||
which is safer.
|
||||
|
||||
- git-fastimport --import-marks was broken; fixed.
|
||||
|
||||
- A lot of documentation updates, clarifications and fixes.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.5.2-65-g996e2d6
|
||||
echo O=`git describe refs/heads/maint`
|
||||
git shortlog --no-merges $O..refs/heads/maint
|
61
Documentation/RelNotes/1.5.2.2.txt
Normal file
61
Documentation/RelNotes/1.5.2.2.txt
Normal file
|
@ -0,0 +1,61 @@
|
|||
GIT v1.5.2.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.2.1
|
||||
--------------------
|
||||
|
||||
* Usability fix
|
||||
|
||||
- git-gui is shipped with its updated blame interface. It is
|
||||
rumored that the older one was not just unusable but was
|
||||
active health hazard, but this one is actually pretty.
|
||||
Please see for yourself.
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "git checkout fubar" was utterly confused when there is a
|
||||
branch fubar and a tag fubar at the same time. It correctly
|
||||
checks out the branch fubar now.
|
||||
|
||||
- "git clone /path/foo" to clone a local /path/foo.git
|
||||
repository left an incorrect configuration.
|
||||
|
||||
- "git send-email" correctly unquotes RFC 2047 quoted names in
|
||||
the patch-email before using their values.
|
||||
|
||||
- We did not accept number of seconds since epoch older than
|
||||
year 2000 as a valid timestamp. We now interpret positive
|
||||
integers more than 8 digits as such, which allows us to
|
||||
express timestamps more recent than March 1973.
|
||||
|
||||
- git-cvsimport did not work when you have GIT_DIR to point
|
||||
your repository at a nonstandard location.
|
||||
|
||||
- Some systems (notably, Solaris) lack hstrerror() to make
|
||||
h_errno human readable; prepare a replacement
|
||||
implementation.
|
||||
|
||||
- .gitignore file listed git-core.spec but what we generate is
|
||||
git.spec, and nobody noticed for a long time.
|
||||
|
||||
- "git-merge-recursive" does not try to run file level merge
|
||||
on binary files.
|
||||
|
||||
- "git-branch --track" did not create tracking configuration
|
||||
correctly when the branch name had slash in it.
|
||||
|
||||
- The email address of the user specified with user.email
|
||||
configuration was overridden by EMAIL environment variable.
|
||||
|
||||
- The tree parser did not warn about tree entries with
|
||||
nonsense file modes, and assumed they must be blobs.
|
||||
|
||||
- "git log -z" without any other request to generate diff still
|
||||
invoked the diff machinery, wasting cycles.
|
||||
|
||||
* Documentation
|
||||
|
||||
- Many updates to fix stale or missing documentation.
|
||||
|
||||
- Although our documentation was primarily meant to be formatted
|
||||
with AsciiDoc7, formatting with AsciiDoc8 is supported better.
|
27
Documentation/RelNotes/1.5.2.3.txt
Normal file
27
Documentation/RelNotes/1.5.2.3.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
GIT v1.5.2.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.2.2
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- Version 2 pack index format was introduced in version 1.5.2
|
||||
to support pack files that has offset that cannot be
|
||||
represented in 32-bit. The runtime code to validate such
|
||||
an index mishandled such an index for an empty pack.
|
||||
|
||||
- Commit walkers (most notably, fetch over http protocol)
|
||||
tried to traverse commit objects contained in trees (aka
|
||||
subproject); they shouldn't.
|
||||
|
||||
- A build option NO_R_TO_GCC_LINKER was not explained in Makefile
|
||||
comment correctly.
|
||||
|
||||
* Documentation Fixes and Updates
|
||||
|
||||
- git-config --regexp was not documented properly.
|
||||
|
||||
- git-repack -a was not documented properly.
|
||||
|
||||
- git-remote -n was not documented properly.
|
28
Documentation/RelNotes/1.5.2.4.txt
Normal file
28
Documentation/RelNotes/1.5.2.4.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
GIT v1.5.2.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.2.3
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "git-gui" bugfixes, including a handful fixes to run it
|
||||
better on Cygwin/MSYS.
|
||||
|
||||
- "git checkout" failed to switch back and forth between
|
||||
branches, one of which has "frotz -> xyzzy" symlink and
|
||||
file "xyzzy/filfre", while the other one has a file
|
||||
"frotz/filfre".
|
||||
|
||||
- "git prune" used to segfault upon seeing a commit that is
|
||||
referred to by a tree object (aka "subproject").
|
||||
|
||||
- "git diff --name-status --no-index" mishandled an added file.
|
||||
|
||||
- "git apply --reverse --whitespace=warn" still complained
|
||||
about whitespaces that a forward application would have
|
||||
introduced.
|
||||
|
||||
* Documentation Fixes and Updates
|
||||
|
||||
- A handful documentation updates.
|
30
Documentation/RelNotes/1.5.2.5.txt
Normal file
30
Documentation/RelNotes/1.5.2.5.txt
Normal file
|
@ -0,0 +1,30 @@
|
|||
GIT v1.5.2.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.2.4
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "git add -u" had a serious data corruption problem in one
|
||||
special case (when the changes to a subdirectory's files
|
||||
consist only deletion of files).
|
||||
|
||||
- "git add -u <path>" did not work from a subdirectory.
|
||||
|
||||
- "git apply" left an empty directory after all its files are
|
||||
renamed away.
|
||||
|
||||
- "git $anycmd foo/bar", when there is a file 'foo' in the
|
||||
working tree, complained that "git $anycmd foo/bar --" form
|
||||
should be used to disambiguate between revs and files,
|
||||
which was completely bogus.
|
||||
|
||||
- "git checkout-index" and other commands that checks out
|
||||
files to the work tree tried unlink(2) on directories,
|
||||
which is a sane thing to do on sane systems, but not on
|
||||
Solaris when you are root.
|
||||
|
||||
* Documentation Fixes and Updates
|
||||
|
||||
- A handful documentation fixes.
|
197
Documentation/RelNotes/1.5.2.txt
Normal file
197
Documentation/RelNotes/1.5.2.txt
Normal file
|
@ -0,0 +1,197 @@
|
|||
GIT v1.5.2 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.5.1
|
||||
--------------------
|
||||
|
||||
* Plumbing level superproject support.
|
||||
|
||||
You can include a subdirectory that has an independent git
|
||||
repository in your index and tree objects of your project
|
||||
("superproject"). This plumbing (i.e. "core") level
|
||||
superproject support explicitly excludes recursive behaviour.
|
||||
|
||||
The "subproject" entries in the index and trees of a superproject
|
||||
are incompatible with older versions of git. Experimenting with
|
||||
the plumbing level support is encouraged, but be warned that
|
||||
unless everybody in your project updates to this release or
|
||||
later, using this feature would make your project
|
||||
inaccessible by people with older versions of git.
|
||||
|
||||
* Plumbing level gitattributes support.
|
||||
|
||||
The gitattributes mechanism allows you to add 'attributes' to
|
||||
paths in your project, and affect the way certain git
|
||||
operations work. Currently you can influence if a path is
|
||||
considered a binary or text (the former would be treated by
|
||||
'git diff' not to produce textual output; the latter can go
|
||||
through the line endings conversion process in repositories
|
||||
with core.autocrlf set), expand and unexpand '$Id$' keyword
|
||||
with blob object name, specify a custom 3-way merge driver,
|
||||
and specify a custom diff driver. You can also apply
|
||||
arbitrary filter to contents on check-in/check-out codepath
|
||||
but this feature is an extremely sharp-edged razor and needs
|
||||
to be handled with caution (do not use it unless you
|
||||
understand the earlier mailing list discussion on keyword
|
||||
expansion). These conversions apply when checking files in
|
||||
or out, and exporting via git-archive.
|
||||
|
||||
* The packfile format now optionally supports 64-bit index.
|
||||
|
||||
This release supports the "version 2" format of the .idx
|
||||
file. This is automatically enabled when a huge packfile
|
||||
needs more than 32-bit to express offsets of objects in the
|
||||
pack.
|
||||
|
||||
* Comes with an updated git-gui 0.7.1
|
||||
|
||||
* Updated gitweb:
|
||||
|
||||
- can show combined diff for merges;
|
||||
- uses font size of user's preference, not hardcoded in pixels;
|
||||
- can now 'grep';
|
||||
|
||||
* New commands and options.
|
||||
|
||||
- "git bisect start" can optionally take a single bad commit and
|
||||
zero or more good commits on the command line.
|
||||
|
||||
- "git shortlog" can optionally be told to wrap its output.
|
||||
|
||||
- "subtree" merge strategy allows another project to be merged in as
|
||||
your subdirectory.
|
||||
|
||||
- "git format-patch" learned a new --subject-prefix=<string>
|
||||
option, to override the built-in "[PATCH]".
|
||||
|
||||
- "git add -u" is a quick way to do the first stage of "git
|
||||
commit -a" (i.e. update the index to match the working
|
||||
tree); it obviously does not make a commit.
|
||||
|
||||
- "git clean" honors a new configuration, "clean.requireforce". When
|
||||
set to true, this makes "git clean" a no-op, preventing you
|
||||
from losing files by typing "git clean" when you meant to
|
||||
say "make clean". You can still say "git clean -f" to
|
||||
override this.
|
||||
|
||||
- "git log" family of commands learned --date={local,relative,default}
|
||||
option. --date=relative is synonym to the --relative-date.
|
||||
--date=local gives the timestamp in local timezone.
|
||||
|
||||
* Updated behavior of existing commands.
|
||||
|
||||
- When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set
|
||||
but $EMAIL is set, the latter is used as a substitute.
|
||||
|
||||
- "git diff --stat" shows size of preimage and postimage blobs
|
||||
for binary contents. Earlier it only said "Bin".
|
||||
|
||||
- "git lost-found" shows stuff that are unreachable except
|
||||
from reflogs.
|
||||
|
||||
- "git checkout branch^0" now detaches HEAD at the tip commit
|
||||
on the named branch, instead of just switching to the
|
||||
branch (use "git checkout branch" to switch to the branch,
|
||||
as before).
|
||||
|
||||
- "git bisect next" can be used after giving only a bad commit
|
||||
without giving a good one (this starts bisection half-way to
|
||||
the root commit). We used to refuse to operate without a
|
||||
good and a bad commit.
|
||||
|
||||
- "git push", when pushing into more than one repository, does
|
||||
not stop at the first error.
|
||||
|
||||
- "git archive" does not insist you to give --format parameter
|
||||
anymore; it defaults to "tar".
|
||||
|
||||
- "git cvsserver" can use backends other than sqlite.
|
||||
|
||||
- "gitview" (in contrib/ section) learned to better support
|
||||
"git-annotate".
|
||||
|
||||
- "git diff $commit1:$path2 $commit2:$path2" can now report
|
||||
mode changes between the two blobs.
|
||||
|
||||
- Local "git fetch" from a repository whose object store is
|
||||
one of the alternates (e.g. fetching from the origin in a
|
||||
repository created with "git clone -l -s") avoids
|
||||
downloading objects unnecessarily.
|
||||
|
||||
- "git blame" uses .mailmap to canonicalize the author name
|
||||
just like "git shortlog" does.
|
||||
|
||||
- "git pack-objects" pays attention to pack.depth
|
||||
configuration variable.
|
||||
|
||||
- "git cherry-pick" and "git revert" does not use .msg file in
|
||||
the working tree to prepare commit message; instead it uses
|
||||
$GIT_DIR/MERGE_MSG as other commands do.
|
||||
|
||||
* Builds
|
||||
|
||||
- git-p4import has never been installed; now there is an
|
||||
installation option to do so.
|
||||
|
||||
- gitk and git-gui can be configured out.
|
||||
|
||||
- Generated documentation pages automatically get version
|
||||
information from GIT_VERSION.
|
||||
|
||||
- Parallel build with "make -j" descending into subdirectory
|
||||
was fixed.
|
||||
|
||||
* Performance Tweaks
|
||||
|
||||
- Optimized "git-rev-list --bisect" (hence "git-bisect").
|
||||
|
||||
- Optimized "git-add $path" in a large directory, most of
|
||||
whose contents are ignored.
|
||||
|
||||
- Optimized "git-diff-tree" for reduced memory footprint.
|
||||
|
||||
- The recursive merge strategy updated a worktree file that
|
||||
was changed identically in two branches, when one of them
|
||||
renamed it. We do not do that when there is no rename, so
|
||||
match that behaviour. This avoids excessive rebuilds.
|
||||
|
||||
- The default pack depth has been increased to 50, as the
|
||||
recent addition of delta_base_cache makes deeper delta chains
|
||||
much less expensive to access. Depending on the project, it was
|
||||
reported that this reduces the resulting pack file by 10%
|
||||
or so.
|
||||
|
||||
|
||||
Fixes since v1.5.1
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.1 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- Switching branches with "git checkout" refused to work when
|
||||
a path changes from a file to a directory between the
|
||||
current branch and the new branch, in order not to lose
|
||||
possible local changes in the directory that is being turned
|
||||
into a file with the switch. We now allow such a branch
|
||||
switch after making sure that there is no locally modified
|
||||
file nor un-ignored file in the directory. This has not
|
||||
been backported to 1.5.1.x series, as it is rather an
|
||||
intrusive change.
|
||||
|
||||
- Merging branches that have a file in one and a directory in
|
||||
another at the same path used to get quite confused. We
|
||||
handle such a case a bit more carefully, even though that is
|
||||
still left as a conflict for the user to sort out. This
|
||||
will not be backported to 1.5.1.x series, as it is rather an
|
||||
intrusive change.
|
||||
|
||||
- git-fetch had trouble with a remote with insanely large number
|
||||
of refs.
|
||||
|
||||
- "git clean -d -X" now does not remove non-excluded directories.
|
||||
|
||||
- rebasing (without -m) a series that changes a symlink to a directory
|
||||
in the middle of a path confused git-apply greatly and refused to
|
||||
operate.
|
10
Documentation/RelNotes/1.5.3.1.txt
Normal file
10
Documentation/RelNotes/1.5.3.1.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.3.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3
|
||||
------------------
|
||||
|
||||
This is solely to fix the generated RPM's dependencies. We used
|
||||
to have git-p4 package but we do not anymore. As suggested on
|
||||
the mailing list, this release makes git-core "Obsolete" git-p4,
|
||||
so that yum update would not complain.
|
58
Documentation/RelNotes/1.5.3.2.txt
Normal file
58
Documentation/RelNotes/1.5.3.2.txt
Normal file
|
@ -0,0 +1,58 @@
|
|||
GIT v1.5.3.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.1
|
||||
--------------------
|
||||
|
||||
* git-push sent thin packs by default, which was not good for
|
||||
the public distribution server (no point in saving transfer
|
||||
while pushing; no point in making the resulting pack less
|
||||
optimum).
|
||||
|
||||
* git-svn sometimes terminated with "Malformed network data" when
|
||||
talking over svn:// protocol.
|
||||
|
||||
* git-send-email re-issued the same message-id about 10% of the
|
||||
time if you fired off 30 messages within a single second.
|
||||
|
||||
* git-stash was not terminating the log message of commits it
|
||||
internally creates with LF.
|
||||
|
||||
* git-apply failed to check the size of the patch hunk when its
|
||||
beginning part matched the remainder of the preimage exactly,
|
||||
even though the preimage recorded in the hunk was much larger
|
||||
(therefore the patch should not have applied), leading to a
|
||||
segfault.
|
||||
|
||||
* "git rm foo && git commit foo" complained that 'foo' needs to
|
||||
be added first, instead of committing the removal, which was a
|
||||
nonsense.
|
||||
|
||||
* git grep -c said "/dev/null: 0".
|
||||
|
||||
* git-add -u failed to recognize a blob whose type changed
|
||||
between the index and the work tree.
|
||||
|
||||
* The limit to rename detection has been tightened a lot to
|
||||
reduce performance problems with a huge change.
|
||||
|
||||
* cvsimport and svnimport barfed when the input tried to move
|
||||
a tag.
|
||||
|
||||
* "git apply -pN" did not chop the right number of directories.
|
||||
|
||||
* "git svnimport" did not like SVN tags with funny characters in them.
|
||||
|
||||
* git-gui 0.8.3, with assorted fixes, including:
|
||||
|
||||
- font-chooser on X11 was unusable with large number of fonts;
|
||||
- a diff that contained a deleted symlink made it barf;
|
||||
- an untracked symbolic link to a directory made it fart;
|
||||
- a file with % in its name made it vomit;
|
||||
|
||||
|
||||
Documentation updates
|
||||
---------------------
|
||||
|
||||
User manual has been somewhat restructured. I think the new
|
||||
organization is much easier to read.
|
31
Documentation/RelNotes/1.5.3.3.txt
Normal file
31
Documentation/RelNotes/1.5.3.3.txt
Normal file
|
@ -0,0 +1,31 @@
|
|||
GIT v1.5.3.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.2
|
||||
--------------------
|
||||
|
||||
* git-quiltimport did not like it when a patch described in the
|
||||
series file does not exist.
|
||||
|
||||
* p4 importer missed executable bit in some cases.
|
||||
|
||||
* The default shell on some FreeBSD did not execute the
|
||||
argument parsing code correctly and made git unusable.
|
||||
|
||||
* git-svn incorrectly spawned pager even when the user
|
||||
explicitly asked not to.
|
||||
|
||||
* sample post-receive hook overquoted the envelope sender
|
||||
value.
|
||||
|
||||
* git-am got confused when the patch contained a change that is
|
||||
only about type and not contents.
|
||||
|
||||
* git-mergetool did not show our and their version of the
|
||||
conflicted file when started from a subdirectory of the
|
||||
project.
|
||||
|
||||
* git-mergetool did not pass correct options when invoking diff3.
|
||||
|
||||
* git-log sometimes invoked underlying "diff" machinery
|
||||
unnecessarily.
|
35
Documentation/RelNotes/1.5.3.4.txt
Normal file
35
Documentation/RelNotes/1.5.3.4.txt
Normal file
|
@ -0,0 +1,35 @@
|
|||
GIT v1.5.3.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.3
|
||||
--------------------
|
||||
|
||||
* Change to "git-ls-files" in v1.5.3.3 that was introduced to support
|
||||
partial commit of removal better had a segfaulting bug, which was
|
||||
diagnosed and fixed by Keith and Carl.
|
||||
|
||||
* Performance improvements for rename detection has been backported
|
||||
from the 'master' branch.
|
||||
|
||||
* "git-for-each-ref --format='%(numparent)'" was not working
|
||||
correctly at all, and --format='%(parent)' was not working for
|
||||
merge commits.
|
||||
|
||||
* Sample "post-receive-hook" incorrectly sent out push
|
||||
notification e-mails marked as "From: " the committer of the
|
||||
commit that happened to be at the tip of the branch that was
|
||||
pushed, not from the person who pushed.
|
||||
|
||||
* "git-remote" did not exit non-zero status upon error.
|
||||
|
||||
* "git-add -i" did not respond very well to EOF from tty nor
|
||||
bogus input.
|
||||
|
||||
* "git-rebase -i" squash subcommand incorrectly made the
|
||||
author of later commit the author of resulting commit,
|
||||
instead of taking from the first one in the squashed series.
|
||||
|
||||
* "git-stash apply --index" was not documented.
|
||||
|
||||
* autoconfiguration learned that "ar" command is found as "gas" on
|
||||
some systems.
|
94
Documentation/RelNotes/1.5.3.5.txt
Normal file
94
Documentation/RelNotes/1.5.3.5.txt
Normal file
|
@ -0,0 +1,94 @@
|
|||
GIT v1.5.3.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.4
|
||||
--------------------
|
||||
|
||||
* Comes with git-gui 0.8.4.
|
||||
|
||||
* "git-config" silently ignored options after --list; now it will
|
||||
error out with a usage message.
|
||||
|
||||
* "git-config --file" failed if the argument used a relative path
|
||||
as it changed directories before opening the file.
|
||||
|
||||
* "git-config --file" now displays a proper error message if it
|
||||
cannot read the file specified on the command line.
|
||||
|
||||
* "git-config", "git-diff", "git-apply" failed if run from a
|
||||
subdirectory with relative GIT_DIR and GIT_WORK_TREE set.
|
||||
|
||||
* "git-blame" crashed if run during a merge conflict.
|
||||
|
||||
* "git-add -i" did not handle single line hunks correctly.
|
||||
|
||||
* "git-rebase -i" and "git-stash apply" failed if external diff
|
||||
drivers were used for one or more files in a commit. They now
|
||||
avoid calling the external diff drivers.
|
||||
|
||||
* "git-log --follow" did not work unless diff generation (e.g. -p)
|
||||
was also requested.
|
||||
|
||||
* "git-log --follow -B" did not work at all. Fixed.
|
||||
|
||||
* "git-log -M -B" did not correctly handle cases of very large files
|
||||
being renamed and replaced by very small files in the same commit.
|
||||
|
||||
* "git-log" printed extra newlines between commits when a diff
|
||||
was generated internally (e.g. -S or --follow) but not displayed.
|
||||
|
||||
* "git-push" error message is more helpful when pushing to a
|
||||
repository with no matching refs and none specified.
|
||||
|
||||
* "git-push" now respects + (force push) on wildcard refspecs,
|
||||
matching the behavior of git-fetch.
|
||||
|
||||
* "git-filter-branch" now updates the working directory when it
|
||||
has finished filtering the current branch.
|
||||
|
||||
* "git-instaweb" no longer fails on Mac OS X.
|
||||
|
||||
* "git-cvsexportcommit" didn't always create new parent directories
|
||||
before trying to create new child directories. Fixed.
|
||||
|
||||
* "git-fetch" printed a scary (but bogus) error message while
|
||||
fetching a tag that pointed to a tree or blob. The error did
|
||||
not impact correctness, only user perception. The bogus error
|
||||
is no longer printed.
|
||||
|
||||
* "git-ls-files --ignored" did not properly descend into non-ignored
|
||||
directories that themselves contained ignored files if d_type
|
||||
was not supported by the filesystem. This bug impacted systems
|
||||
such as AFS. Fixed.
|
||||
|
||||
* Git segfaulted when reading an invalid .gitattributes file. Fixed.
|
||||
|
||||
* post-receive-email example hook was fixed for non-fast-forward
|
||||
updates.
|
||||
|
||||
* Documentation updates for supported (but previously undocumented)
|
||||
options of "git-archive" and "git-reflog".
|
||||
|
||||
* "make clean" no longer deletes the configure script that ships
|
||||
with the git tarball, making multiple architecture builds easier.
|
||||
|
||||
* "git-remote show origin" spewed a warning message from Perl
|
||||
when no remote is defined for the current branch via
|
||||
branch.<name>.remote configuration settings.
|
||||
|
||||
* Building with NO_PERL_MAKEMAKER excessively rebuilt contents
|
||||
of perl/ subdirectory by rewriting perl.mak.
|
||||
|
||||
* http.sslVerify configuration settings were not used in scripted
|
||||
Porcelains.
|
||||
|
||||
* "git-add" leaked a bit of memory while scanning for files to add.
|
||||
|
||||
* A few workarounds to squelch false warnings from recent gcc have
|
||||
been added.
|
||||
|
||||
* "git-send-pack $remote frotz" segfaulted when there is nothing
|
||||
named 'frotz' on the local end.
|
||||
|
||||
* "git-rebase --interactive" did not handle its "--strategy" option
|
||||
properly.
|
48
Documentation/RelNotes/1.5.3.6.txt
Normal file
48
Documentation/RelNotes/1.5.3.6.txt
Normal file
|
@ -0,0 +1,48 @@
|
|||
GIT v1.5.3.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.5
|
||||
--------------------
|
||||
|
||||
* git-cvsexportcommit handles root commits better.
|
||||
|
||||
* git-svn dcommit used to clobber when sending a series of
|
||||
patches.
|
||||
|
||||
* git-svn dcommit failed after attempting to rebase when
|
||||
started with a dirty index; now it stops upfront.
|
||||
|
||||
* git-grep sometimes refused to work when your index was
|
||||
unmerged.
|
||||
|
||||
* "git-grep -A1 -B2" acted as if it was told to run "git -A1 -B21".
|
||||
|
||||
* git-hash-object did not honor configuration variables, such as
|
||||
core.compression.
|
||||
|
||||
* git-index-pack choked on a huge pack on 32-bit machines, even when
|
||||
large file offsets are supported.
|
||||
|
||||
* atom feeds from git-web said "10" for the month of November.
|
||||
|
||||
* a memory leak in commit walker was plugged.
|
||||
|
||||
* When git-send-email inserted the original author's From:
|
||||
address in body, it did not mark the message with
|
||||
Content-type: as needed.
|
||||
|
||||
* git-revert and git-cherry-pick incorrectly refused to start
|
||||
when the work tree was dirty.
|
||||
|
||||
* git-clean did not honor core.excludesfile configuration.
|
||||
|
||||
* git-add mishandled ".gitignore" files when applying them to
|
||||
subdirectories.
|
||||
|
||||
* While importing a too branchy history, git-fastimport did not
|
||||
honor delta depth limit properly.
|
||||
|
||||
* Support for zlib implementations that lack ZLIB_VERNUM and definition
|
||||
of deflateBound() has been added.
|
||||
|
||||
* Quite a lot of documentation clarifications.
|
45
Documentation/RelNotes/1.5.3.7.txt
Normal file
45
Documentation/RelNotes/1.5.3.7.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
GIT v1.5.3.7 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.6
|
||||
--------------------
|
||||
|
||||
* git-send-email added 8-bit contents to the payload without
|
||||
marking it as 8-bit in a CTE header.
|
||||
|
||||
* "git-bundle create a.bndl HEAD" dereferenced the symref and
|
||||
did not record the ref as 'HEAD'; this prevented a bundle
|
||||
from being used as a normal source of git-clone.
|
||||
|
||||
* The code to reject nonsense command line of the form
|
||||
"git-commit -a paths..." and "git-commit --interactive
|
||||
paths..." were broken.
|
||||
|
||||
* Adding a signature that is not ASCII-only to an original
|
||||
commit that is ASCII-only would make the result non-ASCII.
|
||||
"git-format-patch -s" did not mark such a message correctly
|
||||
with MIME encoding header.
|
||||
|
||||
* git-add sometimes did not mark the resulting index entry
|
||||
stat-clean. This affected only cases when adding the
|
||||
contents with the same length as the previously staged
|
||||
contents, and the previous staging made the index entry
|
||||
"racily clean".
|
||||
|
||||
* git-commit did not honor GIT_INDEX_FILE the user had in the
|
||||
environment.
|
||||
|
||||
* When checking out a revision, git-checkout did not report where the
|
||||
updated HEAD is if you happened to have a file called HEAD in the
|
||||
work tree.
|
||||
|
||||
* "git-rev-list --objects" mishandled a tree that points at a
|
||||
submodule.
|
||||
|
||||
* "git cvsimport" was not ready for packed refs that "git gc" can
|
||||
produce and gave incorrect results.
|
||||
|
||||
* Many scripted Porcelains were confused when you happened to have a
|
||||
file called "HEAD" in your work tree.
|
||||
|
||||
Also it contains updates to the user manual and documentation.
|
25
Documentation/RelNotes/1.5.3.8.txt
Normal file
25
Documentation/RelNotes/1.5.3.8.txt
Normal file
|
@ -0,0 +1,25 @@
|
|||
GIT v1.5.3.8 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.3.7
|
||||
--------------------
|
||||
|
||||
* Some documentation used "email.com" as an example domain.
|
||||
|
||||
* git-svn fix to handle funky branch and project names going over
|
||||
http/https correctly.
|
||||
|
||||
* git-svn fix to tone down a needlessly alarming warning message.
|
||||
|
||||
* git-clone did not correctly report errors while fetching over http.
|
||||
|
||||
* git-send-email added redundant Message-Id: header to the outgoing
|
||||
e-mail when the patch text already had one.
|
||||
|
||||
* a read-beyond-end-of-buffer bug in configuration file updater was fixed.
|
||||
|
||||
* git-grep used to show the same hit repeatedly for unmerged paths.
|
||||
|
||||
* After amending the patch title in "git-am -i", the command did not
|
||||
report the patch it applied with the updated title.
|
||||
|
366
Documentation/RelNotes/1.5.3.txt
Normal file
366
Documentation/RelNotes/1.5.3.txt
Normal file
|
@ -0,0 +1,366 @@
|
|||
GIT v1.5.3 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.5.2
|
||||
--------------------
|
||||
|
||||
* The commit walkers other than http are officially deprecated,
|
||||
but still supported for now.
|
||||
|
||||
* The submodule support has Porcelain layer.
|
||||
|
||||
Note that the current submodule support is minimal and this is
|
||||
deliberately so. A design decision we made is that operations
|
||||
at the supermodule level do not recurse into submodules by
|
||||
default. The expectation is that later we would add a
|
||||
mechanism to tell git which submodules the user is interested
|
||||
in, and this information might be used to determine the
|
||||
recursive behaviour of certain commands (e.g. "git checkout"
|
||||
and "git diff"), but currently we haven't agreed on what that
|
||||
mechanism should look like. Therefore, if you use submodules,
|
||||
you would probably need "git submodule update" on the
|
||||
submodules you care about after running a "git checkout" at
|
||||
the supermodule level.
|
||||
|
||||
* There are a handful pack-objects changes to help you cope better
|
||||
with repositories with pathologically large blobs in them.
|
||||
|
||||
* For people who need to import from Perforce, a front-end for
|
||||
fast-import is in contrib/fast-import/.
|
||||
|
||||
* Comes with git-gui 0.8.2.
|
||||
|
||||
* Comes with updated gitk.
|
||||
|
||||
* New commands and options.
|
||||
|
||||
- "git log --date=<format>" can use more formats: iso8601, rfc2822.
|
||||
|
||||
- The hunk header output from "git diff" family can be customized
|
||||
with the attributes mechanism. See gitattributes(5) for details.
|
||||
|
||||
- "git stash" allows you to quickly save away your work in
|
||||
progress and replay it later on an updated state.
|
||||
|
||||
- "git rebase" learned an "interactive" mode that let you
|
||||
pick and reorder which commits to rebuild.
|
||||
|
||||
- "git fsck" can save its findings in $GIT_DIR/lost-found, without a
|
||||
separate invocation of "git lost-found" command. The blobs stored by
|
||||
lost-found are stored in plain format to allow you to grep in them.
|
||||
|
||||
- $GIT_WORK_TREE environment variable can be used together with
|
||||
$GIT_DIR to work in a subdirectory of a working tree that is
|
||||
not located at "$GIT_DIR/..".
|
||||
|
||||
- Giving "--file=<file>" option to "git config" is the same as
|
||||
running the command with GIT_CONFIG=<file> environment.
|
||||
|
||||
- "git log" learned a new option "--follow", to follow
|
||||
renaming history of a single file.
|
||||
|
||||
- "git filter-branch" lets you rewrite the revision history of
|
||||
specified branches. You can specify a number of filters to
|
||||
modify the commits, files and trees.
|
||||
|
||||
- "git cvsserver" learned new options (--base-path, --export-all,
|
||||
--strict-paths) inspired by "git daemon".
|
||||
|
||||
- "git daemon --base-path-relaxed" can help migrating a repository URL
|
||||
that did not use to use --base-path to use --base-path.
|
||||
|
||||
- "git commit" can use "-t templatefile" option and commit.template
|
||||
configuration variable to prime the commit message given to you in the
|
||||
editor.
|
||||
|
||||
- "git submodule" command helps you manage the projects from
|
||||
the superproject that contain them.
|
||||
|
||||
- In addition to core.compression configuration option,
|
||||
core.loosecompression and pack.compression options can
|
||||
independently tweak zlib compression levels used for loose
|
||||
and packed objects.
|
||||
|
||||
- "git ls-tree -l" shows size of blobs pointed at by the
|
||||
tree entries, similar to "/bin/ls -l".
|
||||
|
||||
- "git rev-list" learned --regexp-ignore-case and
|
||||
--extended-regexp options to tweak its matching logic used
|
||||
for --grep filtering.
|
||||
|
||||
- "git describe --contains" is a handier way to call more
|
||||
obscure command "git name-rev --tags".
|
||||
|
||||
- "git gc --aggressive" tells the command to spend more cycles
|
||||
to optimize the repository harder.
|
||||
|
||||
- "git repack" learned a "window-memory" limit which
|
||||
dynamically reduces the window size to stay within the
|
||||
specified memory usage.
|
||||
|
||||
- "git repack" can be told to split resulting packs to avoid
|
||||
exceeding limit specified with "--max-pack-size".
|
||||
|
||||
- "git fsck" gained --verbose option. This is really really
|
||||
verbose but it might help you identify exact commit that is
|
||||
corrupt in your repository.
|
||||
|
||||
- "git format-patch" learned --numbered-files option. This
|
||||
may be useful for MH users.
|
||||
|
||||
- "git format-patch" learned format.subjectprefix configuration
|
||||
variable, which serves the same purpose as "--subject-prefix"
|
||||
option.
|
||||
|
||||
- "git tag -n -l" shows tag annotations while listing tags.
|
||||
|
||||
- "git cvsimport" can optionally use the separate-remote layout.
|
||||
|
||||
- "git blame" can be told to see through commits that change
|
||||
whitespaces and indentation levels with "-w" option.
|
||||
|
||||
- "git send-email" can be told not to thread the messages when
|
||||
sending out more than one patches.
|
||||
|
||||
- "git send-email" can also be told how to find whom to cc the
|
||||
message to for each message via --cc-cmd.
|
||||
|
||||
- "git config" learned NUL terminated output format via -z to
|
||||
help scripts.
|
||||
|
||||
- "git add" learned "--refresh <paths>..." option to selectively refresh
|
||||
the cached stat information.
|
||||
|
||||
- "git init -q" makes the command quieter.
|
||||
|
||||
- "git -p command" now has a cousin of opposite sex, "git --no-pager
|
||||
command".
|
||||
|
||||
* Updated behavior of existing commands.
|
||||
|
||||
- "gitweb" can offer multiple snapshot formats.
|
||||
|
||||
***NOTE*** Unfortunately, this changes the format of the
|
||||
$feature{snapshot}{default} entry in the per-site
|
||||
configuration file 'gitweb_config.perl'. It used to be a
|
||||
three-element tuple that describe a single format; with the
|
||||
new configuration item format, you only have to say the name
|
||||
of the format ('tgz', 'tbz2' or 'zip'). Please update the
|
||||
your configuration file accordingly.
|
||||
|
||||
- "git clone" uses -l (hardlink files under .git) by default when
|
||||
cloning locally.
|
||||
|
||||
- URL used for "git clone" and friends can specify nonstandard SSH port
|
||||
by using ssh://host:port/path/to/repo syntax.
|
||||
|
||||
- "git bundle create" can now create a bundle without negative refs,
|
||||
i.e. "everything since the beginning up to certain points".
|
||||
|
||||
- "git diff" (but not the plumbing level "git diff-tree") now
|
||||
recursively descends into trees by default.
|
||||
|
||||
- "git diff" does not show differences that come only from
|
||||
stat-dirtiness in the form of "diff --git" header anymore.
|
||||
It runs "update-index --refresh" silently as needed.
|
||||
|
||||
- "git tag -l" used to match tags by globbing its parameter as if it
|
||||
has wildcard '*' on both ends, which made "git tag -l gui" to match
|
||||
tag 'gitgui-0.7.0'; this was very annoying. You now have to add
|
||||
asterisk on the sides you want to wildcard yourself.
|
||||
|
||||
- The editor to use with many interactive commands can be
|
||||
overridden with GIT_EDITOR environment variable, or if it
|
||||
does not exist, with core.editor configuration variable. As
|
||||
before, if you have neither, environment variables VISUAL
|
||||
and EDITOR are consulted in this order, and then finally we
|
||||
fall back on "vi".
|
||||
|
||||
- "git rm --cached" does not complain when removing a newly
|
||||
added file from the index anymore.
|
||||
|
||||
- Options to "git log" to affect how --grep/--author options look for
|
||||
given strings now have shorter abbreviations. -i is for ignore case,
|
||||
and -E is for extended regexp.
|
||||
|
||||
- "git log" learned --log-size to show the number of bytes in
|
||||
the log message part of the output to help qgit.
|
||||
|
||||
- "git log --name-status" does not require you to give "-r" anymore.
|
||||
As a general rule, Porcelain commands should recurse when showing
|
||||
diff.
|
||||
|
||||
- "git format-patch --root A" can be used to format everything
|
||||
since the beginning up to A. This was supported with
|
||||
"git format-patch --root A A" for a long time, but was not
|
||||
properly documented.
|
||||
|
||||
- "git svn dcommit" retains local merge information.
|
||||
|
||||
- "git svnimport" allows an empty string to be specified as the
|
||||
trunk/ directory. This is necessary to suck data from a SVN
|
||||
repository that doe not have trunk/ branches/ and tags/ organization
|
||||
at all.
|
||||
|
||||
- "git config" to set values also honors type flags like --bool
|
||||
and --int.
|
||||
|
||||
- core.quotepath configuration can be used to make textual git
|
||||
output to emit most of the characters in the path literally.
|
||||
|
||||
- "git mergetool" chooses its backend more wisely, taking
|
||||
notice of its environment such as use of X, Gnome/KDE, etc.
|
||||
|
||||
- "gitweb" shows merge commits a lot nicer than before. The
|
||||
default view uses more compact --cc format, while the UI
|
||||
allows to choose normal diff with any parent.
|
||||
|
||||
- snapshot files "gitweb" creates from a repository at
|
||||
$path/$project/.git are more useful. We use $project part
|
||||
in the filename, which we used to discard.
|
||||
|
||||
- "git cvsimport" creates lightweight tags; there is no
|
||||
interesting information we can record in an annotated tag,
|
||||
and the handcrafted ones the old code created was not
|
||||
properly formed anyway.
|
||||
|
||||
- "git push" pretends that you immediately fetched back from
|
||||
the remote by updating corresponding remote tracking
|
||||
branches if you have any.
|
||||
|
||||
- The diffstat given after a merge (or a pull) honors the
|
||||
color.diff configuration.
|
||||
|
||||
- "git commit --amend" is now compatible with various message source
|
||||
options such as -m/-C/-c/-F.
|
||||
|
||||
- "git apply --whitespace=strip" removes blank lines added at
|
||||
the end of the file.
|
||||
|
||||
- "git fetch" over git native protocols with "-v" option shows
|
||||
connection status, and the IP address of the other end, to
|
||||
help diagnosing problems.
|
||||
|
||||
- We used to have core.legacyheaders configuration, when
|
||||
set to false, allowed git to write loose objects in a format
|
||||
that mimics the format used by objects stored in packs. It
|
||||
turns out that this was not so useful. Although we will
|
||||
continue to read objects written in that format, we do not
|
||||
honor that configuration anymore and create loose objects in
|
||||
the legacy/traditional format.
|
||||
|
||||
- "--find-copies-harder" option to diff family can now be
|
||||
spelled as "-C -C" for brevity.
|
||||
|
||||
- "git mailsplit" (hence "git am") can read from Maildir
|
||||
formatted mailboxes.
|
||||
|
||||
- "git cvsserver" does not barf upon seeing "cvs login"
|
||||
request.
|
||||
|
||||
- "pack-objects" honors "delta" attribute set in
|
||||
.gitattributes. It does not attempt to deltify blobs that
|
||||
come from paths with delta attribute set to false.
|
||||
|
||||
- "new-workdir" script (in contrib) can now be used with a
|
||||
bare repository.
|
||||
|
||||
- "git mergetool" learned to use gvimdiff.
|
||||
|
||||
- "gitview" (in contrib) has a better blame interface.
|
||||
|
||||
- "git log" and friends did not handle a commit log message
|
||||
that is larger than 16kB; they do now.
|
||||
|
||||
- "--pretty=oneline" output format for "git log" and friends
|
||||
deals with "malformed" commit log messages that have more
|
||||
than one lines in the first paragraph better. We used to
|
||||
show the first line, cutting the title at mid-sentence; we
|
||||
concatenate them into a single line and treat the result as
|
||||
"oneline".
|
||||
|
||||
- "git p4import" has been demoted to contrib status. For
|
||||
a superior option, checkout the "git p4" front end to
|
||||
"git fast-import" (also in contrib). The man page and p4
|
||||
rpm have been removed as well.
|
||||
|
||||
- "git mailinfo" (hence "am") now tries to see if the message
|
||||
is in utf-8 first, instead of assuming iso-8859-1, if
|
||||
incoming e-mail does not say what encoding it is in.
|
||||
|
||||
* Builds
|
||||
|
||||
- old-style function definitions (most notably, a function
|
||||
without parameter defined with "func()", not "func(void)")
|
||||
have been eradicated.
|
||||
|
||||
- "git tag" and "git verify-tag" have been rewritten in C.
|
||||
|
||||
* Performance Tweaks
|
||||
|
||||
- "git pack-objects" avoids re-deltification cost by caching
|
||||
small enough delta results it creates while looking for the
|
||||
best delta candidates.
|
||||
|
||||
- "git pack-objects" learned a new heuristic to prefer delta
|
||||
that is shallower in depth over the smallest delta
|
||||
possible. This improves both overall packfile access
|
||||
performance and packfile density.
|
||||
|
||||
- diff-delta code that is used for packing has been improved
|
||||
to work better on big files.
|
||||
|
||||
- when there are more than one pack files in the repository,
|
||||
the runtime used to try finding an object always from the
|
||||
newest packfile; it now tries the same packfile as we found
|
||||
the object requested the last time, which exploits the
|
||||
locality of references.
|
||||
|
||||
- verifying pack contents done by "git fsck --full" got boost
|
||||
by carefully choosing the order to verify objects in them.
|
||||
|
||||
- "git read-tree -m" to read into an already populated index
|
||||
has been optimized vastly. The effect of this can be seen
|
||||
when switching branches that have differences in only a
|
||||
handful paths.
|
||||
|
||||
- "git add paths..." and "git commit paths..." has also been
|
||||
heavily optimized.
|
||||
|
||||
Fixes since v1.5.2
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.2 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- "gitweb" had trouble handling non UTF-8 text with older
|
||||
Encode.pm Perl module.
|
||||
|
||||
- "git svn" misparsed the data from the commits in the repository when
|
||||
the user had "color.diff = true" in the configuration. This has been
|
||||
fixed.
|
||||
|
||||
- There was a case where "git svn dcommit" clobbered changes made on the
|
||||
SVN side while committing multiple changes.
|
||||
|
||||
- "git-write-tree" had a bad interaction with racy-git avoidance and
|
||||
gitattributes mechanisms.
|
||||
|
||||
- "git --bare command" overrode existing GIT_DIR setting and always
|
||||
made it treat the current working directory as GIT_DIR.
|
||||
|
||||
- "git ls-files --error-unmatch" does not complain if you give the
|
||||
same path pattern twice by mistake.
|
||||
|
||||
- "git init" autodetected core.filemode but not core.symlinks, which
|
||||
made a new directory created automatically by "git clone" cumbersome
|
||||
to use on filesystems that require these configurations to be set.
|
||||
|
||||
- "git log" family of commands behaved differently when run as "git
|
||||
log" (no pathspec) and as "git log --" (again, no pathspec). This
|
||||
inconsistency was introduced somewhere in v1.3.0 series but now has
|
||||
been corrected.
|
||||
|
||||
- "git rebase -m" incorrectly displayed commits that were skipped.
|
17
Documentation/RelNotes/1.5.4.1.txt
Normal file
17
Documentation/RelNotes/1.5.4.1.txt
Normal file
|
@ -0,0 +1,17 @@
|
|||
GIT v1.5.4.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.4
|
||||
------------------
|
||||
|
||||
* "git-commit -C $tag" used to work but rewrite in C done in
|
||||
1.5.4 broke it.
|
||||
|
||||
* An entry in the .gitattributes file that names a pattern in a
|
||||
subdirectory of the directory it is in did not match
|
||||
correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should
|
||||
match "a/b/foo.c" but it didn't).
|
||||
|
||||
* Customized color specification was parsed incorrectly when
|
||||
numeric color values are used. This was fixed in 1.5.4.1.
|
||||
|
43
Documentation/RelNotes/1.5.4.2.txt
Normal file
43
Documentation/RelNotes/1.5.4.2.txt
Normal file
|
@ -0,0 +1,43 @@
|
|||
GIT v1.5.4.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.4
|
||||
------------------
|
||||
|
||||
* The configuration parser was not prepared to see string
|
||||
valued variables misspelled as boolean and segfaulted.
|
||||
|
||||
* Temporary files left behind due to interrupted object
|
||||
transfers were not cleaned up with "git prune".
|
||||
|
||||
* "git config --unset" was confused when the unset variables
|
||||
were spelled with continuation lines in the config file.
|
||||
|
||||
* The merge message detection in "git cvsimport" did not catch
|
||||
a message that began with "Merge...".
|
||||
|
||||
* "git status" suggests "git rm --cached" for unstaging the
|
||||
earlier "git add" before the initial commit.
|
||||
|
||||
* "git status" output was incorrect during a partial commit.
|
||||
|
||||
* "git bisect" refused to start when the HEAD was detached.
|
||||
|
||||
* "git bisect" allowed a wildcard character in the commit
|
||||
message expanded while writing its log file.
|
||||
|
||||
* Manual pages were not formatted correctly with docbook xsl
|
||||
1.72; added a workaround.
|
||||
|
||||
* "git-commit -C $tag" used to work but rewrite in C done in
|
||||
1.5.4 broke it. This was fixed in 1.5.4.1.
|
||||
|
||||
* An entry in the .gitattributes file that names a pattern in a
|
||||
subdirectory of the directory it is in did not match
|
||||
correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should
|
||||
match "a/b/foo.c" but it didn't). This was fixed in 1.5.4.1.
|
||||
|
||||
* Customized color specification was parsed incorrectly when
|
||||
numeric color values are used. This was fixed in 1.5.4.1.
|
||||
|
||||
* http transport misbehaved when linked with curl-gnutls.
|
27
Documentation/RelNotes/1.5.4.3.txt
Normal file
27
Documentation/RelNotes/1.5.4.3.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
GIT v1.5.4.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.4.2
|
||||
--------------------
|
||||
|
||||
* RPM spec used to pull in everything with 'git'. This has been
|
||||
changed so that 'git' package contains just the core parts,
|
||||
and we now supply 'git-all' metapackage to slurp in everything.
|
||||
This should match end user's expectation better.
|
||||
|
||||
* When some refs failed to update, git-push reported "failure"
|
||||
which was unclear if some other refs were updated or all of
|
||||
them failed atomically (the answer is the former). Reworded
|
||||
the message to clarify this.
|
||||
|
||||
* "git clone" from a repository whose HEAD was misconfigured
|
||||
did not set up the remote properly. Now it tries to do
|
||||
better.
|
||||
|
||||
* Updated git-push documentation to clarify what "matching"
|
||||
means, in order to reduce user confusion.
|
||||
|
||||
* Updated git-add documentation to clarify "add -u" operates in
|
||||
the current subdirectory you are in, just like other commands.
|
||||
|
||||
* git-gui updates to work on OSX and Windows better.
|
66
Documentation/RelNotes/1.5.4.4.txt
Normal file
66
Documentation/RelNotes/1.5.4.4.txt
Normal file
|
@ -0,0 +1,66 @@
|
|||
GIT v1.5.4.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.4.3
|
||||
--------------------
|
||||
|
||||
* Building and installing with an overtight umask such as 077 made
|
||||
installed templates unreadable by others, while the rest of the install
|
||||
are done in a way that is friendly to umask 022.
|
||||
|
||||
* "git cvsexportcommit -w $cvsdir" misbehaved when GIT_DIR is set to a
|
||||
relative directory.
|
||||
|
||||
* "git http-push" had an invalid memory access that could lead it to
|
||||
segfault.
|
||||
|
||||
* When "git rebase -i" gave control back to the user for a commit that is
|
||||
marked to be edited, it just said "modify it with commit --amend",
|
||||
without saying what to do to continue after modifying it. Give an
|
||||
explicit instruction to run "rebase --continue" to be more helpful.
|
||||
|
||||
* "git send-email" in 1.5.4.3 issued a bogus empty In-Reply-To: header.
|
||||
|
||||
* "git bisect" showed mysterious "won't bisect on seeked tree" error message.
|
||||
This was leftover from Cogito days to prevent "bisect" starting from a
|
||||
cg-seeked state. We still keep the Cogito safety, but running "git bisect
|
||||
start" when another bisect was in effect will clean up and start over.
|
||||
|
||||
* "git push" with an explicit PATH to receive-pack did not quite work if
|
||||
receive-pack was not on usual PATH. We earlier fixed the same issue
|
||||
with "git fetch" and upload-pack, but somehow forgot to do so in the
|
||||
other direction.
|
||||
|
||||
* git-gui's info dialog was not displayed correctly when the user tries
|
||||
to commit nothing (i.e. without staging anything).
|
||||
|
||||
* "git revert" did not properly fail when attempting to run with a
|
||||
dirty index.
|
||||
|
||||
* "git merge --no-commit --no-ff <other>" incorrectly made commits.
|
||||
|
||||
* "git merge --squash --no-ff <other>", which is a nonsense combination
|
||||
of options, was not rejected.
|
||||
|
||||
* "git ls-remote" and "git remote show" against an empty repository
|
||||
failed, instead of just giving an empty result (regression).
|
||||
|
||||
* "git fast-import" did not handle a renamed path whose name needs to be
|
||||
quoted, due to a bug in unquote_c_style() function.
|
||||
|
||||
* "git cvsexportcommit" was confused when multiple files with the same
|
||||
basename needed to be pushed out in the same commit.
|
||||
|
||||
* "git daemon" did not send early errors to syslog.
|
||||
|
||||
* "git log --merge" did not work well with --left-right option.
|
||||
|
||||
* "git svn" prompted for client cert password every time it accessed the
|
||||
server.
|
||||
|
||||
* The reset command in "git fast-import" data stream was documented to
|
||||
end with an optional LF, but it actually required one.
|
||||
|
||||
* "git svn dcommit/rebase" did not honor --rewrite-root option.
|
||||
|
||||
Also included are a handful documentation updates.
|
56
Documentation/RelNotes/1.5.4.5.txt
Normal file
56
Documentation/RelNotes/1.5.4.5.txt
Normal file
|
@ -0,0 +1,56 @@
|
|||
GIT v1.5.4.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.4.4
|
||||
--------------------
|
||||
|
||||
* "git fetch there" when the URL information came from the Cogito style
|
||||
branches/there file did not update refs/heads/there (regression in
|
||||
1.5.4).
|
||||
|
||||
* Bogus refspec configuration such as "remote.there.fetch = =" were not
|
||||
detected as errors (regression in 1.5.4).
|
||||
|
||||
* You couldn't specify a custom editor whose path contains a whitespace
|
||||
via GIT_EDITOR (and core.editor).
|
||||
|
||||
* The subdirectory filter to "git filter-branch" mishandled a history
|
||||
where the subdirectory becomes empty and then later becomes non-empty.
|
||||
|
||||
* "git shortlog" gave an empty line if the original commit message was
|
||||
malformed (e.g. a botched import from foreign SCM). Now it finds the
|
||||
first non-empty line and uses it for better information.
|
||||
|
||||
* When the user fails to give a revision parameter to "git svn", an error
|
||||
from the Perl interpreter was issued because the script lacked proper
|
||||
error checking.
|
||||
|
||||
* After "git rebase" stopped due to conflicts, if the user played with
|
||||
"git reset" and friends, "git rebase --abort" failed to go back to the
|
||||
correct commit.
|
||||
|
||||
* Additional work trees prepared with git-new-workdir (in contrib/) did
|
||||
not share git-svn metadata directory .git/svn with the original.
|
||||
|
||||
* "git-merge-recursive" did not mark addition of the same path with
|
||||
different filemodes correctly as a conflict.
|
||||
|
||||
* "gitweb" gave malformed URL when pathinfo stype paths are in use.
|
||||
|
||||
* "-n" stands for "--no-tags" again for "git fetch".
|
||||
|
||||
* "git format-patch" did not detect the need to add 8-bit MIME header
|
||||
when the user used format.header configuration.
|
||||
|
||||
* "rev~" revision specifier used to mean "rev", which was inconsistent
|
||||
with how "rev^" worked. Now "rev~" is the same as "rev~1" (hence it
|
||||
also is the same as "rev^1"), and "rev~0" is the same as "rev^0"
|
||||
(i.e. it has to be a commit).
|
||||
|
||||
* "git quiltimport" did not grok empty lines, lines in "file -pNNN"
|
||||
format to specify the prefix levels and lines with trailing comments.
|
||||
|
||||
* "git rebase -m" triggered pre-commit verification, which made
|
||||
"rebase --continue" impossible.
|
||||
|
||||
As usual, it also comes with many documentation fixes and clarifications.
|
43
Documentation/RelNotes/1.5.4.6.txt
Normal file
43
Documentation/RelNotes/1.5.4.6.txt
Normal file
|
@ -0,0 +1,43 @@
|
|||
GIT v1.5.4.6 Release Notes
|
||||
==========================
|
||||
|
||||
I personally do not think there is any reason anybody should want to
|
||||
run v1.5.4.X series these days, because 'master' version is always
|
||||
more stable than any tagged released version of git.
|
||||
|
||||
This is primarily to futureproof "git-shell" to accept requests
|
||||
without a dash between "git" and subcommand name (e.g. "git
|
||||
upload-pack") which the newer client will start to make sometime in
|
||||
the future.
|
||||
|
||||
Fixes since v1.5.4.5
|
||||
--------------------
|
||||
|
||||
* Command line option "-n" to "git-repack" was not correctly parsed.
|
||||
|
||||
* Error messages from "git-apply" when the patchfile cannot be opened
|
||||
have been improved.
|
||||
|
||||
* Error messages from "git-bisect" when given nonsense revisions have
|
||||
been improved.
|
||||
|
||||
* reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not
|
||||
stop parsing at the closing "}".
|
||||
|
||||
* "git rev-parse --symbolic-full-name ^master^2" printed solitary "^",
|
||||
but it should print nothing.
|
||||
|
||||
* "git apply" did not enforce "match at the beginning" correctly.
|
||||
|
||||
* a path specification "a/b" in .gitattributes file should not match
|
||||
"sub/a/b", but it did.
|
||||
|
||||
* "git log --date-order --topo-order" did not override the earlier
|
||||
date-order with topo-order as expected.
|
||||
|
||||
* "git fast-export" did not export octopus merges correctly.
|
||||
|
||||
* "git archive --prefix=$path/" mishandled gitattributes.
|
||||
|
||||
As usual, it also comes with many documentation fixes and clarifications.
|
||||
|
10
Documentation/RelNotes/1.5.4.7.txt
Normal file
10
Documentation/RelNotes/1.5.4.7.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.4.7 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.4.7
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
377
Documentation/RelNotes/1.5.4.txt
Normal file
377
Documentation/RelNotes/1.5.4.txt
Normal file
|
@ -0,0 +1,377 @@
|
|||
GIT v1.5.4 Release Notes
|
||||
========================
|
||||
|
||||
Removal
|
||||
-------
|
||||
|
||||
* "git svnimport" was removed in favor of "git svn". It is still there
|
||||
in the source tree (contrib/examples) but unsupported.
|
||||
|
||||
* As git-commit and git-status have been rewritten, "git runstatus"
|
||||
helper script lost all its users and has been removed.
|
||||
|
||||
|
||||
Temporarily disabled
|
||||
--------------------
|
||||
|
||||
* "git http-push" is known not to work well with cURL library older
|
||||
than 7.16, and we had reports of repository corruption. It is
|
||||
disabled on such platforms for now. Unfortunately, 1.5.3.8 shares
|
||||
the same issue. In other words, this does not mean you will be
|
||||
fine if you stick to an older git release. For now, please do not
|
||||
use http-push from older git with cURL older than 7.16 if you
|
||||
value your data. A proper fix will hopefully materialize in
|
||||
later versions.
|
||||
|
||||
|
||||
Deprecation notices
|
||||
-------------------
|
||||
|
||||
* From v1.6.0, git will by default install dashed form of commands
|
||||
(e.g. "git-commit") outside of users' normal $PATH, and will install
|
||||
only selected commands ("git" itself, and "gitk") in $PATH. This
|
||||
implies:
|
||||
|
||||
- Using dashed forms of git commands (e.g. "git-commit") from the
|
||||
command line has been informally deprecated since early 2006, but
|
||||
now it officially is, and will be removed in the future. Use
|
||||
dash-less forms (e.g. "git commit") instead.
|
||||
|
||||
- Using dashed forms from your scripts, without first prepending the
|
||||
return value from "git --exec-path" to the scripts' PATH, has been
|
||||
informally deprecated since early 2006, but now it officially is.
|
||||
|
||||
- Use of dashed forms with "PATH=$(git --exec-path):$PATH; export
|
||||
PATH" early in your script is not deprecated with this change.
|
||||
|
||||
Users are strongly encouraged to adjust their habits and scripts now
|
||||
to prepare for this change.
|
||||
|
||||
* The post-receive hook was introduced in March 2007 to supersede
|
||||
the post-update hook, primarily to overcome the command line length
|
||||
limitation of the latter. Use of post-update hook will be deprecated
|
||||
in future versions of git, starting from v1.6.0.
|
||||
|
||||
* "git lost-found" was deprecated in favor of "git fsck"'s --lost-found
|
||||
option, and will be removed in the future.
|
||||
|
||||
* "git peek-remote" is deprecated, as "git ls-remote" was written in C
|
||||
and works for all transports; "git peek-remote" will be removed in
|
||||
the future.
|
||||
|
||||
* "git repo-config" which was an old name for "git config" command
|
||||
has been supported without being advertised for a long time. The
|
||||
next feature release will remove it.
|
||||
|
||||
* From v1.6.0, the repack.usedeltabaseoffset config option will default
|
||||
to true, which will give denser packfiles (i.e. more efficient storage).
|
||||
The downside is that git older than version 1.4.4 will not be able
|
||||
to directly use a repository packed using this setting.
|
||||
|
||||
* From v1.6.0, the pack.indexversion config option will default to 2,
|
||||
which is slightly more efficient, and makes repacking more immune to
|
||||
data corruptions. Git older than version 1.5.2 may revert to version 1
|
||||
of the pack index with a manual "git index-pack" to be able to directly
|
||||
access corresponding pack files.
|
||||
|
||||
|
||||
Updates since v1.5.3
|
||||
--------------------
|
||||
|
||||
* Comes with much improved gitk, with i18n.
|
||||
|
||||
* Comes with git-gui 0.9.2 with i18n.
|
||||
|
||||
* gitk is now merged as a subdirectory of git.git project, in
|
||||
preparation for its i18n.
|
||||
|
||||
* progress displays from many commands are a lot nicer to the eye.
|
||||
Transfer commands show throughput data.
|
||||
|
||||
* many commands that pay attention to per-directory .gitignore now do
|
||||
so lazily, which makes the usual case go much faster.
|
||||
|
||||
* Output processing for '--pretty=format:<user format>' has been
|
||||
optimized.
|
||||
|
||||
* Rename detection of diff family while detecting exact matches has
|
||||
been greatly optimized.
|
||||
|
||||
* Rename detection of diff family tries to make more natural looking
|
||||
pairing. Earlier, if multiple identical rename sources were
|
||||
found in the preimage, the source used was picked pretty much at random.
|
||||
|
||||
* Value "true" for color.diff and color.status configuration used to
|
||||
mean "always" (even when the output is not going to a terminal).
|
||||
This has been corrected to mean the same thing as "auto".
|
||||
|
||||
* "git diff" Porcelain now respects diff.external configuration, which
|
||||
is another way to specify GIT_EXTERNAL_DIFF.
|
||||
|
||||
* "git diff" can be told to use different prefixes other than
|
||||
"a/" and "b/" e.g. "git diff --src-prefix=l/ --dst-prefix=k/".
|
||||
|
||||
* "git diff" sometimes did not quote paths with funny
|
||||
characters properly.
|
||||
|
||||
* "git log" (and any revision traversal commands) misbehaved
|
||||
when --diff-filter is given but was not asked to actually
|
||||
produce diff.
|
||||
|
||||
* HTTP proxy can be specified per remote repository using
|
||||
remote.*.httpproxy configuration, or global http.proxy configuration
|
||||
variable.
|
||||
|
||||
* Various Perforce importer updates.
|
||||
|
||||
* Example update and post-receive hooks have been improved.
|
||||
|
||||
* Any command that wants to take a commit object name can now use
|
||||
":/string" syntax to name a commit.
|
||||
|
||||
* "git reset" is now built-in and its output can be squelched with -q.
|
||||
|
||||
* "git reset --hard" does not make any sense in a bare
|
||||
repository, but did not error out; fixed.
|
||||
|
||||
* "git send-email" can optionally talk over ssmtp and use SMTP-AUTH.
|
||||
|
||||
* "git rebase" learned --whitespace option.
|
||||
|
||||
* In "git rebase", when you decide not to replay a particular change
|
||||
after the command stopped with a conflict, you can say "git rebase
|
||||
--skip" without first running "git reset --hard", as the command now
|
||||
runs it for you.
|
||||
|
||||
* "git rebase --interactive" mode can now work on detached HEAD.
|
||||
|
||||
* Other minor to serious bugs in "git rebase -i" have been fixed.
|
||||
|
||||
* "git rebase" now detaches head during its operation, so after a
|
||||
successful "git rebase" operation, the reflog entry branch@{1} for
|
||||
the current branch points at the commit before the rebase was
|
||||
started.
|
||||
|
||||
* "git rebase -i" also triggers rerere to help your repeated merges.
|
||||
|
||||
* "git merge" can call the "post-merge" hook.
|
||||
|
||||
* "git pack-objects" can optionally run deltification with multiple
|
||||
threads.
|
||||
|
||||
* "git archive" can optionally substitute keywords in files marked with
|
||||
export-subst attribute.
|
||||
|
||||
* "git cherry-pick" made a misguided attempt to repeat the original
|
||||
command line in the generated log message, when told to cherry-pick a
|
||||
commit by naming a tag that points at it. It does not anymore.
|
||||
|
||||
* "git for-each-ref" learned %(xxxdate:<date-format>) syntax to show the
|
||||
various date fields in different formats.
|
||||
|
||||
* "git gc --auto" is a low-impact way to automatically run a variant of
|
||||
"git repack" that does not lose unreferenced objects (read: safer
|
||||
than the usual one) after the user accumulates too many loose
|
||||
objects.
|
||||
|
||||
* "git clean" has been rewritten in C.
|
||||
|
||||
* You need to explicitly set clean.requireForce to "false" to allow
|
||||
"git clean" without -f to do any damage (lack of the configuration
|
||||
variable used to mean "do not require -f option to lose untracked
|
||||
files", but we now use the safer default).
|
||||
|
||||
* The kinds of whitespace errors "git diff" and "git apply" notice (and
|
||||
fix) can be controlled via 'core.whitespace' configuration variable
|
||||
and 'whitespace' attribute in .gitattributes file.
|
||||
|
||||
* "git push" learned --dry-run option to show what would happen if a
|
||||
push is run.
|
||||
|
||||
* "git push" does not update a tracking ref on the local side when the
|
||||
remote refused to update the corresponding ref.
|
||||
|
||||
* "git push" learned --mirror option. This is to push the local refs
|
||||
one-to-one to the remote, and deletes refs from the remote that do
|
||||
not exist anymore in the repository on the pushing side.
|
||||
|
||||
* "git push" can remove a corrupt ref at the remote site with the usual
|
||||
":ref" refspec.
|
||||
|
||||
* "git remote" knows --mirror mode. This is to set up configuration to
|
||||
push into a remote repository to store local branch heads to the same
|
||||
branch on the remote side, and remove branch heads locally removed
|
||||
from local repository at the same time. Suitable for pushing into a
|
||||
back-up repository.
|
||||
|
||||
* "git remote" learned "rm" subcommand.
|
||||
|
||||
* "git cvsserver" can be run via "git shell". Also, "cvs" is
|
||||
recognized as a synonym for "git cvsserver", so that CVS users
|
||||
can be switched to git just by changing their login shell.
|
||||
|
||||
* "git cvsserver" acts more like receive-pack by running post-receive
|
||||
and post-update hooks.
|
||||
|
||||
* "git am" and "git rebase" are far less verbose.
|
||||
|
||||
* "git pull" learned to pass --[no-]ff option to underlying "git
|
||||
merge".
|
||||
|
||||
* "git pull --rebase" is a different way to integrate what you fetched
|
||||
into your current branch.
|
||||
|
||||
* "git fast-export" produces data-stream that can be fed to fast-import
|
||||
to reproduce the history recorded in a git repository.
|
||||
|
||||
* "git add -i" takes pathspecs to limit the set of files to work on.
|
||||
|
||||
* "git add -p" is a short-hand to go directly to the selective patch
|
||||
subcommand in the interactive command loop and to exit when done.
|
||||
|
||||
* "git add -i" UI has been colorized. The interactive prompt
|
||||
and menu can be colored by setting color.interactive
|
||||
configuration. The diff output (including the hunk picker)
|
||||
are colored with color.diff configuration.
|
||||
|
||||
* "git commit --allow-empty" allows you to create a single-parent
|
||||
commit that records the same tree as its parent, overriding the usual
|
||||
safety valve.
|
||||
|
||||
* "git commit --amend" can amend a merge that does not change the tree
|
||||
from its first parent.
|
||||
|
||||
* "git commit" used to unconditionally strip comment lines that
|
||||
began with '#' and removed excess blank lines. This behavior has
|
||||
been made configurable.
|
||||
|
||||
* "git commit" has been rewritten in C.
|
||||
|
||||
* "git stash random-text" does not create a new stash anymore. It was
|
||||
a UI mistake. Use "git stash save random-text", or "git stash"
|
||||
(without extra args) for that.
|
||||
|
||||
* "git stash clear extra-text" does not clear the whole stash
|
||||
anymore. It is tempting to expect "git stash clear stash@{2}"
|
||||
to drop only a single named stash entry, and it is rude to
|
||||
discard everything when that is asked (but not provided).
|
||||
|
||||
* "git prune --expire <time>" can exempt young loose objects from
|
||||
getting pruned.
|
||||
|
||||
* "git branch --contains <commit>" can list branches that are
|
||||
descendants of a given commit.
|
||||
|
||||
* "git log" learned --early-output option to help interactive GUI
|
||||
implementations.
|
||||
|
||||
* "git bisect" learned "skip" action to mark untestable commits.
|
||||
|
||||
* "git bisect visualize" learned a shorter synonym "git bisect view".
|
||||
|
||||
* "git bisect visualize" runs "git log" in a non-windowed
|
||||
environments. It also can be told what command to run (e.g. "git
|
||||
bisect visualize tig").
|
||||
|
||||
* "git format-patch" learned "format.numbered" configuration variable
|
||||
to automatically turn --numbered option on when more than one commits
|
||||
are formatted.
|
||||
|
||||
* "git ls-files" learned "--exclude-standard" to use the canned set of
|
||||
exclude files.
|
||||
|
||||
* "git tag -a -f existing" begins the editor session using the existing
|
||||
annotation message.
|
||||
|
||||
* "git tag -m one -m bar" (multiple -m options) behaves similarly to
|
||||
"git commit"; the parameters to -m options are formatted as separate
|
||||
paragraphs.
|
||||
|
||||
* The format "git show" outputs an annotated tag has been updated to
|
||||
include "Tagger: " and "Date: " lines from the tag itself. Strictly
|
||||
speaking this is a backward incompatible change, but this is a
|
||||
reasonable usability fix and people's scripts shouldn't have been
|
||||
relying on the exact output from "git show" Porcelain anyway.
|
||||
|
||||
* "git cvsimport" did not notice errors from underlying "cvsps"
|
||||
and produced a corrupt import silently.
|
||||
|
||||
* "git cvsexportcommit" learned -w option to specify and switch to the
|
||||
CVS working directory.
|
||||
|
||||
* "git checkout" from a subdirectory learned to use "../path" to allow
|
||||
checking out a path outside the current directory without cd'ing up.
|
||||
|
||||
* "git checkout" from and to detached HEAD leaves a bit more
|
||||
information in the reflog.
|
||||
|
||||
* "git send-email --dry-run" shows full headers for easier diagnosis.
|
||||
|
||||
* "git merge-ours" is now built-in.
|
||||
|
||||
* "git svn" learned "info" and "show-externals" subcommands.
|
||||
|
||||
* "git svn" run from a subdirectory failed to read settings from the
|
||||
.git/config.
|
||||
|
||||
* "git svn" learned --use-log-author option, which picks up more
|
||||
descriptive name from From: and Signed-off-by: lines in the commit
|
||||
message.
|
||||
|
||||
* "git svn" wasted way too much disk to record revision mappings
|
||||
between svn and git; a new representation that is much more compact
|
||||
for this information has been introduced to correct this.
|
||||
|
||||
* "git svn" left temporary index files it used without cleaning them
|
||||
up; this was corrected.
|
||||
|
||||
* "git status" from a subdirectory now shows relative paths, which
|
||||
makes copy-and-pasting for git-checkout/git-add/git-rm easier. The
|
||||
traditional behavior to show the full path relative to the top of
|
||||
the work tree can be had by setting status.relativepaths
|
||||
configuration variable to false.
|
||||
|
||||
* "git blame" kept text for each annotated revision in core needlessly;
|
||||
this has been corrected.
|
||||
|
||||
* "git shortlog" learned to default to HEAD when the standard input is
|
||||
a terminal and the user did not give any revision parameter.
|
||||
|
||||
* "git shortlog" learned "-e" option to show e-mail addresses as well as
|
||||
authors' names.
|
||||
|
||||
* "git help" learned "-w" option to show documentation in browsers.
|
||||
|
||||
* In addition there are quite a few internal clean-ups. Notably:
|
||||
|
||||
- many fork/exec have been replaced with run-command API,
|
||||
brought from the msysgit effort.
|
||||
|
||||
- introduction and more use of the option parser API.
|
||||
|
||||
- enhancement and more use of the strbuf API.
|
||||
|
||||
* Makefile tweaks to support HP-UX is in.
|
||||
|
||||
Fixes since v1.5.3
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.3 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance
|
||||
series.
|
||||
|
||||
* The way "git diff --check" behaves is much more consistent with the way
|
||||
"git apply --whitespace=warn" works.
|
||||
|
||||
* "git svn" talking with the SVN over HTTP will correctly quote branch
|
||||
and project names.
|
||||
|
||||
* "git config" did not work correctly on platforms that define
|
||||
REG_NOMATCH to an even number.
|
||||
|
||||
* Recent versions of AsciiDoc 8 has a change to break our
|
||||
documentation; a workaround has been implemented.
|
||||
|
||||
* "git diff --color-words" colored context lines in a wrong color.
|
44
Documentation/RelNotes/1.5.5.1.txt
Normal file
44
Documentation/RelNotes/1.5.5.1.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
GIT v1.5.5.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.5
|
||||
------------------
|
||||
|
||||
* "git archive --prefix=$path/" mishandled gitattributes.
|
||||
|
||||
* "git fetch -v" that fetches into FETCH_HEAD did not report the summary
|
||||
the same way as done for updating the tracking refs.
|
||||
|
||||
* "git svn" misbehaved when the configuration file customized the "git
|
||||
log" output format using format.pretty.
|
||||
|
||||
* "git submodule status" leaked an unnecessary error message.
|
||||
|
||||
* "git log --date-order --topo-order" did not override the earlier
|
||||
date-order with topo-order as expected.
|
||||
|
||||
* "git bisect good $this" did not check the validity of the revision
|
||||
given properly.
|
||||
|
||||
* "url.<there>.insteadOf" did not work correctly.
|
||||
|
||||
* "git clean" ran inside subdirectory behaved as if the directory was
|
||||
explicitly specified for removal by the end user from the top level.
|
||||
|
||||
* "git bisect" from a detached head leaked an unnecessary error message.
|
||||
|
||||
* "git bisect good $a $b" when $a is Ok but $b is bogus should have
|
||||
atomically failed before marking $a as good.
|
||||
|
||||
* "git fmt-merge-msg" did not clean up leading empty lines from commit
|
||||
log messages like "git log" family does.
|
||||
|
||||
* "git am" recorded a commit with empty Subject: line without
|
||||
complaining.
|
||||
|
||||
* when given a commit log message whose first paragraph consists of
|
||||
multiple lines, "git rebase" squashed it into a single line.
|
||||
|
||||
* "git remote add $bogus_name $url" did not complain properly.
|
||||
|
||||
Also comes with various documentation updates.
|
27
Documentation/RelNotes/1.5.5.2.txt
Normal file
27
Documentation/RelNotes/1.5.5.2.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
GIT v1.5.5.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.5.1
|
||||
--------------------
|
||||
|
||||
* "git repack -n" was mistakenly made no-op earlier.
|
||||
|
||||
* "git imap-send" wanted to always have imap.host even when use of
|
||||
imap.tunnel made it unnecessary.
|
||||
|
||||
* reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not
|
||||
stop parsing at the closing "}".
|
||||
|
||||
* "git rev-parse --symbolic-full-name ^master^2" printed solitary "^",
|
||||
but it should print nothing.
|
||||
|
||||
* "git commit" did not detect when it failed to write tree objects.
|
||||
|
||||
* "git fetch" sometimes transferred too many objects unnecessarily.
|
||||
|
||||
* a path specification "a/b" in .gitattributes file should not match
|
||||
"sub/a/b".
|
||||
|
||||
* various gitweb fixes.
|
||||
|
||||
Also comes with various documentation updates.
|
12
Documentation/RelNotes/1.5.5.3.txt
Normal file
12
Documentation/RelNotes/1.5.5.3.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
GIT v1.5.5.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.5.2
|
||||
--------------------
|
||||
|
||||
* "git send-email --compose" did not notice that non-ascii contents
|
||||
needed some MIME magic.
|
||||
|
||||
* "git fast-export" did not export octopus merges correctly.
|
||||
|
||||
Also comes with various documentation updates.
|
7
Documentation/RelNotes/1.5.5.4.txt
Normal file
7
Documentation/RelNotes/1.5.5.4.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
GIT v1.5.5.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.5.4
|
||||
--------------------
|
||||
|
||||
* "git name-rev --all" used to segfault.
|
11
Documentation/RelNotes/1.5.5.5.txt
Normal file
11
Documentation/RelNotes/1.5.5.5.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
GIT v1.5.5.5 Release Notes
|
||||
==========================
|
||||
|
||||
I personally do not think there is any reason anybody should want to
|
||||
run v1.5.5.X series these days, because 'master' version is always
|
||||
more stable than any tagged released version of git.
|
||||
|
||||
This is primarily to futureproof "git-shell" to accept requests
|
||||
without a dash between "git" and subcommand name (e.g. "git
|
||||
upload-pack") which the newer client will start to make sometime in
|
||||
the future.
|
10
Documentation/RelNotes/1.5.5.6.txt
Normal file
10
Documentation/RelNotes/1.5.5.6.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.5.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.5.5
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
207
Documentation/RelNotes/1.5.5.txt
Normal file
207
Documentation/RelNotes/1.5.5.txt
Normal file
|
@ -0,0 +1,207 @@
|
|||
GIT v1.5.5 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.5.4
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* Comes with git-gui 0.10.1
|
||||
|
||||
(portability)
|
||||
|
||||
* We shouldn't ask for BSD group ownership semantics by setting g+s bit
|
||||
on directories on older BSD systems that refuses chmod() by non root
|
||||
users. BSD semantics is the default there anyway.
|
||||
|
||||
* Bunch of portability improvement patches coming from an effort to port
|
||||
to Solaris has been applied.
|
||||
|
||||
(performance)
|
||||
|
||||
* On platforms with suboptimal qsort(3) implementation, there
|
||||
is an option to use more reasonable substitute we ship with
|
||||
our software.
|
||||
|
||||
* New configuration variable "pack.packsizelimit" can be used
|
||||
in place of command line option --max-pack-size.
|
||||
|
||||
* "git fetch" over the native git protocol used to make a
|
||||
connection to find out the set of current remote refs and
|
||||
another to actually download the pack data. We now use only
|
||||
one connection for these tasks.
|
||||
|
||||
* "git commit" does not run lstat(2) more than necessary
|
||||
anymore.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* Bash completion script (in contrib) are aware of more commands and
|
||||
options.
|
||||
|
||||
* You can be warned when core.autocrlf conversion is applied in
|
||||
such a way that results in an irreversible conversion.
|
||||
|
||||
* A catch-all "color.ui" configuration variable can be used to
|
||||
enable coloring of all color-capable commands, instead of
|
||||
individual ones such as "color.status" and "color.branch".
|
||||
|
||||
* The commands refused to take absolute pathnames where they
|
||||
require pathnames relative to the work tree or the current
|
||||
subdirectory. They now can take absolute pathnames in such a
|
||||
case as long as the pathnames do not refer outside of the
|
||||
work tree. E.g. "git add $(pwd)/foo" now works.
|
||||
|
||||
* Error messages used to be sent to stderr, only to get hidden,
|
||||
when $PAGER was in use. They now are sent to stdout along
|
||||
with the command output to be shown in the $PAGER.
|
||||
|
||||
* A pattern "foo/" in .gitignore file now matches a directory
|
||||
"foo". Pattern "foo" also matches as before.
|
||||
|
||||
* bash completion's prompt helper function can talk about
|
||||
operation in-progress (e.g. merge, rebase, etc.).
|
||||
|
||||
* Configuration variables "url.<usethis>.insteadof = <otherurl>" can be
|
||||
used to tell "git-fetch" and "git-push" to use different URL than what
|
||||
is given from the command line.
|
||||
|
||||
* "git add -i" behaves better even before you make an initial commit.
|
||||
|
||||
* "git am" refused to run from a subdirectory without a good reason.
|
||||
|
||||
* After "git apply --whitespace=fix" fixes whitespace errors in a patch,
|
||||
a line before the fix can appear as a context or preimage line in a
|
||||
later patch, causing the patch not to apply. The command now knows to
|
||||
see through whitespace fixes done to context lines to successfully
|
||||
apply such a patch series.
|
||||
|
||||
* "git branch" (and "git checkout -b") to branch from a local branch can
|
||||
optionally set "branch.<name>.merge" to mark the new branch to build on
|
||||
the other local branch, when "branch.autosetupmerge" is set to
|
||||
"always", or when passing the command line option "--track" (this option
|
||||
was ignored when branching from local branches). By default, this does
|
||||
not happen when branching from a local branch.
|
||||
|
||||
* "git checkout" to switch to a branch that has "branch.<name>.merge" set
|
||||
(i.e. marked to build on another branch) reports how much the branch
|
||||
and the other branch diverged.
|
||||
|
||||
* When "git checkout" has to update a lot of paths, it used to be silent
|
||||
for 4 seconds before it showed any progress report. It is now a bit
|
||||
more impatient and starts showing progress report early.
|
||||
|
||||
* "git commit" learned a new hook "prepare-commit-msg" that can
|
||||
inspect what is going to be committed and prepare the commit
|
||||
log message template to be edited.
|
||||
|
||||
* "git cvsimport" can now take more than one -M options.
|
||||
|
||||
* "git describe" learned to limit the tags to be used for
|
||||
naming with --match option.
|
||||
|
||||
* "git describe --contains" now barfs when the named commit
|
||||
cannot be described.
|
||||
|
||||
* "git describe --exact-match" describes only commits that are tagged.
|
||||
|
||||
* "git describe --long" describes a tagged commit as $tag-0-$sha1,
|
||||
instead of just showing the exact tagname.
|
||||
|
||||
* "git describe" warns when using a tag whose name and path contradict
|
||||
with each other.
|
||||
|
||||
* "git diff" learned "--relative" option to limit and output paths
|
||||
relative to the current directory when working in a subdirectory.
|
||||
|
||||
* "git diff" learned "--dirstat" option to show birds-eye-summary of
|
||||
changes more concisely than "--diffstat".
|
||||
|
||||
* "git format-patch" learned --cover-letter option to generate a cover
|
||||
letter template.
|
||||
|
||||
* "git gc" learned --quiet option.
|
||||
|
||||
* "git gc" now automatically prunes unreachable objects that are two
|
||||
weeks old or older.
|
||||
|
||||
* "git gc --auto" can be disabled more easily by just setting gc.auto
|
||||
to zero. It also tolerates more packfiles by default.
|
||||
|
||||
* "git grep" now knows "--name-only" is a synonym for the "-l" option.
|
||||
|
||||
* "git help <alias>" now reports "'git <alias>' is alias to <what>",
|
||||
instead of saying "No manual entry for git-<alias>".
|
||||
|
||||
* "git help" can use different backends to show manual pages and this can
|
||||
be configured using "man.viewer" configuration.
|
||||
|
||||
* "gitk" does not restore window position from $HOME/.gitk anymore (it
|
||||
still restores the size).
|
||||
|
||||
* "git log --grep=<what>" learned "--fixed-strings" option to look for
|
||||
<what> without treating it as a regular expression.
|
||||
|
||||
* "git gui" learned an auto-spell checking.
|
||||
|
||||
* "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
|
||||
expected; they push the current branch (and only the current branch).
|
||||
In addition, HEAD can be written as the value of "remote.<there>.push"
|
||||
configuration variable.
|
||||
|
||||
* When the configuration variable "pack.threads" is set to 0, "git
|
||||
repack" auto detects the number of CPUs and uses that many threads.
|
||||
|
||||
* "git send-email" learned to prompt for passwords
|
||||
interactively.
|
||||
|
||||
* "git send-email" learned an easier way to suppress CC
|
||||
recipients.
|
||||
|
||||
* "git stash" learned "pop" command, that applies the latest stash and
|
||||
removes it from the stash, and "drop" command to discard the named
|
||||
stash entry.
|
||||
|
||||
* "git submodule" learned a new subcommand "summary" to show the
|
||||
symmetric difference between the HEAD version and the work tree version
|
||||
of the submodule commits.
|
||||
|
||||
* Various "git cvsimport", "git cvsexportcommit", "git cvsserver",
|
||||
"git svn" and "git p4" improvements.
|
||||
|
||||
(internal)
|
||||
|
||||
* Duplicated code between git-help and git-instaweb that
|
||||
launches user's preferred browser has been refactored.
|
||||
|
||||
* It is now easier to write test scripts that records known
|
||||
breakages.
|
||||
|
||||
* "git checkout" is rewritten in C.
|
||||
|
||||
* "git remote" is rewritten in C.
|
||||
|
||||
* Two conflict hunks that are separated by a very short span of common
|
||||
lines are now coalesced into one larger hunk, to make the result easier
|
||||
to read.
|
||||
|
||||
* Run-command API's use of file descriptors is documented clearer and
|
||||
is more consistent now.
|
||||
|
||||
* diff output can be sent to FILE * that is different from stdout. This
|
||||
will help reimplementing more things in C.
|
||||
|
||||
Fixes since v1.5.4
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.4 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
* "git-http-push" did not allow deletion of remote ref with the usual
|
||||
"push <remote> :<branch>" syntax.
|
||||
|
||||
* "git-rebase --abort" did not go back to the right location if
|
||||
"git-reset" was run during the "git-rebase" session.
|
||||
|
||||
* "git imap-send" without setting imap.host did not error out but
|
||||
segfaulted.
|
28
Documentation/RelNotes/1.5.6.1.txt
Normal file
28
Documentation/RelNotes/1.5.6.1.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
GIT v1.5.6.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.6
|
||||
------------------
|
||||
|
||||
* Last minute change broke loose object creation on AIX.
|
||||
|
||||
* (performance fix) We used to make $GIT_DIR absolute path early in the
|
||||
programs but keeping it relative to the current directory internally
|
||||
gives 1-3 per-cent performance boost.
|
||||
|
||||
* bash completion knows the new --graph option to git-log family.
|
||||
|
||||
|
||||
* git-diff -c/--cc showed unnecessary "deletion" lines at the context
|
||||
boundary.
|
||||
|
||||
* git-for-each-ref ignored %(object) and %(type) requests for tag
|
||||
objects.
|
||||
|
||||
* git-merge usage had a typo.
|
||||
|
||||
* Rebuilding of git-svn metainfo database did not take rewriteRoot
|
||||
option into account.
|
||||
|
||||
* Running "git-rebase --continue/--skip/--abort" before starting a
|
||||
rebase gave nonsense error messages.
|
40
Documentation/RelNotes/1.5.6.2.txt
Normal file
40
Documentation/RelNotes/1.5.6.2.txt
Normal file
|
@ -0,0 +1,40 @@
|
|||
GIT v1.5.6.2 Release Notes
|
||||
==========================
|
||||
|
||||
Futureproof
|
||||
-----------
|
||||
|
||||
* "git-shell" accepts requests without a dash between "git" and
|
||||
subcommand name (e.g. "git upload-pack") which the newer client will
|
||||
start to make sometime in the future.
|
||||
|
||||
Fixes since v1.5.6.1
|
||||
--------------------
|
||||
|
||||
* "git clone" from a remote that is named with url.insteadOf setting in
|
||||
$HOME/.gitconfig did not work well.
|
||||
|
||||
* "git describe --long --tags" segfaulted when the described revision was
|
||||
tagged with a lightweight tag.
|
||||
|
||||
* "git diff --check" did not report the result via its exit status
|
||||
reliably.
|
||||
|
||||
* When remote side used to have branch 'foo' and git-fetch finds that now
|
||||
it has branch 'foo/bar', it refuses to lose the existing remote tracking
|
||||
branch and its reflog. The error message has been improved to suggest
|
||||
pruning the remote if the user wants to proceed and get the latest set
|
||||
of branches from the remote, including such 'foo/bar'.
|
||||
|
||||
* "git reset file" should mean the same thing as "git reset HEAD file",
|
||||
but we required disambiguating -- even when "file" is not ambiguous.
|
||||
|
||||
* "git show" segfaulted when an annotated tag that points at another
|
||||
annotated tag was given to it.
|
||||
|
||||
* Optimization for a large import via "git-svn" introduced in v1.5.6 had a
|
||||
serious memory and temporary file leak, which made it unusable for
|
||||
moderately large import.
|
||||
|
||||
* "git-svn" mangled remote nickname used in the configuration file
|
||||
unnecessarily.
|
52
Documentation/RelNotes/1.5.6.3.txt
Normal file
52
Documentation/RelNotes/1.5.6.3.txt
Normal file
|
@ -0,0 +1,52 @@
|
|||
GIT v1.5.6.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.6.2
|
||||
--------------------
|
||||
|
||||
* Setting core.sharedrepository to traditional "true" value was supposed to make
|
||||
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
|
||||
022, making the repository unreadable by others.
|
||||
|
||||
* Setting GIT_TRACE will report spawning of external process via run_command().
|
||||
|
||||
* Using an object with very deep delta chain pinned memory needed for extracting
|
||||
intermediate base objects unnecessarily long, leading to excess memory usage.
|
||||
|
||||
* Bash completion script did not notice '--' marker on the command
|
||||
line and tried the relatively slow "ref completion" even when
|
||||
completing arguments after one.
|
||||
|
||||
* Registering a non-empty blob racily and then truncating the working
|
||||
tree file for it confused "racy-git avoidance" logic into thinking
|
||||
that the path is now unchanged.
|
||||
|
||||
* The section that describes attributes related to git-archive were placed
|
||||
in a wrong place in the gitattributes(5) manual page.
|
||||
|
||||
* "git am" was not helpful to the users when it detected that the committer
|
||||
information is not set up properly yet.
|
||||
|
||||
* "git clone" had a leftover debugging fprintf().
|
||||
|
||||
* "git clone -q" was not quiet enough as it used to and gave object count
|
||||
and progress reports.
|
||||
|
||||
* "git clone" marked downloaded packfile with .keep; this could be a
|
||||
good thing if the remote side is well packed but otherwise not,
|
||||
especially for a project that is not really big.
|
||||
|
||||
* "git daemon" used to call syslog() from a signal handler, which
|
||||
could raise signals of its own but generally is not reentrant. This
|
||||
was fixed by restructuring the code to report syslog() after the handler
|
||||
returns.
|
||||
|
||||
* When "git push" tries to remove a remote ref, and corresponding
|
||||
tracking ref is missing, we used to report error (i.e. failure to
|
||||
remove something that does not exist).
|
||||
|
||||
* "git mailinfo" (hence "git am") did not handle commit log messages in a
|
||||
MIME multipart mail correctly.
|
||||
|
||||
Contains other various documentation fixes.
|
47
Documentation/RelNotes/1.5.6.4.txt
Normal file
47
Documentation/RelNotes/1.5.6.4.txt
Normal file
|
@ -0,0 +1,47 @@
|
|||
GIT v1.5.6.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.6.3
|
||||
--------------------
|
||||
|
||||
* Various commands could overflow its internal buffer on a platform
|
||||
with small PATH_MAX value in a repository that has contents with
|
||||
long pathnames.
|
||||
|
||||
* There wasn't a way to make --pretty=format:%<> specifiers to honor
|
||||
.mailmap name rewriting for authors and committers. Now you can with
|
||||
%aN and %cN.
|
||||
|
||||
* Bash completion wasted too many cycles; this has been optimized to be
|
||||
usable again.
|
||||
|
||||
* Bash completion lost ref part when completing something like "git show
|
||||
pu:Makefile".
|
||||
|
||||
* "git-cvsserver" did not clean up its temporary working area after annotate
|
||||
request.
|
||||
|
||||
* "git-daemon" called syslog() from its signal handler, which was a
|
||||
no-no.
|
||||
|
||||
* "git-fetch" into an empty repository used to remind that the fetch will
|
||||
be huge by saying "no common commits", but this was an unnecessary
|
||||
noise; it is already known by the user anyway.
|
||||
|
||||
* "git-http-fetch" would have segfaulted when pack idx file retrieved
|
||||
from the other side was corrupt.
|
||||
|
||||
* "git-index-pack" used too much memory when dealing with a deep delta chain.
|
||||
|
||||
* "git-mailinfo" (hence "git-am") did not correctly handle in-body [PATCH]
|
||||
line to override the commit title taken from the mail Subject header.
|
||||
|
||||
* "git-rebase -i -p" lost parents that are not involved in the history
|
||||
being rewritten.
|
||||
|
||||
* "git-rm" lost track of where the index file was when GIT_DIR was
|
||||
specified as a relative path.
|
||||
|
||||
* "git-rev-list --quiet" was not quiet as advertised.
|
||||
|
||||
Contains other various documentation fixes.
|
29
Documentation/RelNotes/1.5.6.5.txt
Normal file
29
Documentation/RelNotes/1.5.6.5.txt
Normal file
|
@ -0,0 +1,29 @@
|
|||
GIT v1.5.6.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.6.4
|
||||
--------------------
|
||||
|
||||
* "git cvsimport" used to spit out "UNKNOWN LINE..." diagnostics to stdout.
|
||||
|
||||
* "git commit -F filename" and "git tag -F filename" run from subdirectories
|
||||
did not read the right file.
|
||||
|
||||
* "git init --template=" with blank "template" parameter linked files
|
||||
under root directories to .git, which was a total nonsense. Instead, it
|
||||
means "I do not want to use anything from the template directory".
|
||||
|
||||
* "git diff-tree" and other diff plumbing ignored diff.renamelimit configuration
|
||||
variable when the user explicitly asked for rename detection.
|
||||
|
||||
* "git name-rev --name-only" did not work when "--stdin" option was in effect.
|
||||
|
||||
* "git show-branch" mishandled its 8th branch.
|
||||
|
||||
* Addition of "git update-index --ignore-submodules" that happened during
|
||||
1.5.6 cycle broke "git update-index --ignore-missing".
|
||||
|
||||
* "git send-email" did not parse charset from an existing Content-type:
|
||||
header properly.
|
||||
|
||||
Contains other various documentation fixes.
|
10
Documentation/RelNotes/1.5.6.6.txt
Normal file
10
Documentation/RelNotes/1.5.6.6.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.6.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.6.5
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
115
Documentation/RelNotes/1.5.6.txt
Normal file
115
Documentation/RelNotes/1.5.6.txt
Normal file
|
@ -0,0 +1,115 @@
|
|||
GIT v1.5.6 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.5.5
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* Comes with updated gitk and git-gui.
|
||||
|
||||
(portability)
|
||||
|
||||
* git will build on AIX better than before now.
|
||||
|
||||
* core.ignorecase configuration variable can be used to work better on
|
||||
filesystems that are not case sensitive.
|
||||
|
||||
* "git init" now autodetects the case sensitivity of the filesystem and
|
||||
sets core.ignorecase accordingly.
|
||||
|
||||
* cpio is no longer used; neither "curl" binary (libcurl is still used).
|
||||
|
||||
(documentation)
|
||||
|
||||
* Many freestanding documentation pages have been converted and made
|
||||
available to "git help" (aka "man git<something>") as section 7 of
|
||||
the manual pages. This means bookmarks to some HTML documentation
|
||||
files may need to be updated (eg "tutorial.html" became
|
||||
"gittutorial.html").
|
||||
|
||||
(performance)
|
||||
|
||||
* "git clone" was rewritten in C. This will hopefully help cloning a
|
||||
repository with insane number of refs.
|
||||
|
||||
* "git rebase --onto $there $from $branch" used to switch to the tip of
|
||||
$branch only to immediately reset back to $from, smudging work tree
|
||||
files unnecessarily. This has been optimized.
|
||||
|
||||
* Object creation codepath in "git-svn" has been optimized by enhancing
|
||||
plumbing commands git-cat-file and git-hash-object.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* "git add -p" (and the "patch" subcommand of "git add -i") can choose to
|
||||
apply (or not apply) mode changes independently from contents changes.
|
||||
|
||||
* "git bisect help" gives longer and more helpful usage information.
|
||||
|
||||
* "git bisect" does not use a special branch "bisect" anymore; instead, it
|
||||
does its work on a detached HEAD.
|
||||
|
||||
* "git branch" (and "git checkout -b") can be told to set up
|
||||
branch.<name>.rebase automatically, so that later you can say "git pull"
|
||||
and magically cause "git pull --rebase" to happen.
|
||||
|
||||
* "git branch --merged" and "git branch --no-merged" can be used to list
|
||||
branches that have already been merged (or not yet merged) to the
|
||||
current branch.
|
||||
|
||||
* "git cherry-pick" and "git revert" can add a sign-off.
|
||||
|
||||
* "git commit" mentions the author identity when you are committing
|
||||
somebody else's changes.
|
||||
|
||||
* "git diff/log --dirstat" output is consistent between binary and textual
|
||||
changes.
|
||||
|
||||
* "git filter-branch" rewrites signed tags by demoting them to annotated.
|
||||
|
||||
* "git format-patch --no-binary" can produce a patch that lack binary
|
||||
changes (i.e. cannot be used to propagate the whole changes) meant only
|
||||
for reviewing.
|
||||
|
||||
* "git init --bare" is a synonym for "git --bare init" now.
|
||||
|
||||
* "git gc --auto" honors a new pre-auto-gc hook to temporarily disable it.
|
||||
|
||||
* "git log --pretty=tformat:<custom format>" gives a LF after each entry,
|
||||
instead of giving a LF between each pair of entries which is how
|
||||
"git log --pretty=format:<custom format>" works.
|
||||
|
||||
* "git log" and friends learned the "--graph" option to show the ancestry
|
||||
graph at the left margin of the output.
|
||||
|
||||
* "git log" and friends can be told to use date format that is different
|
||||
from the default via 'log.date' configuration variable.
|
||||
|
||||
* "git send-email" now can send out messages outside a git repository.
|
||||
|
||||
* "git send-email --compose" was made aware of rfc2047 quoting.
|
||||
|
||||
* "git status" can optionally include output from "git submodule
|
||||
summary".
|
||||
|
||||
* "git svn" learned --add-author-from option to propagate the authorship
|
||||
by munging the commit log message.
|
||||
|
||||
* new object creation and looking up in "git svn" has been optimized.
|
||||
|
||||
* "gitweb" can read from a system-wide configuration file.
|
||||
|
||||
(internal)
|
||||
|
||||
* "git unpack-objects" and "git receive-pack" is now more strict about
|
||||
detecting breakage in the objects they receive over the wire.
|
||||
|
||||
|
||||
Fixes since v1.5.5
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.5 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
And there are too numerous small fixes to otherwise note here ;-)
|
36
Documentation/RelNotes/1.6.0.1.txt
Normal file
36
Documentation/RelNotes/1.6.0.1.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
GIT v1.6.0.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0
|
||||
------------------
|
||||
|
||||
* "git diff --cc" did not honor content mangling specified by
|
||||
gitattributes and core.autocrlf when reading from the work tree.
|
||||
|
||||
* "git diff --check" incorrectly detected new trailing blank lines when
|
||||
whitespace check was in effect.
|
||||
|
||||
* "git for-each-ref" tried to dereference NULL when asked for '%(body)" on
|
||||
a tag with a single incomplete line as its payload.
|
||||
|
||||
* "git format-patch" peeked before the beginning of a string when
|
||||
"format.headers" variable is empty (a misconfiguration).
|
||||
|
||||
* "git help help" did not work correctly.
|
||||
|
||||
* "git mailinfo" (hence "git am") was unhappy when MIME multipart message
|
||||
contained garbage after the finishing boundary.
|
||||
|
||||
* "git mailinfo" also was unhappy when the "From: " line only had a bare
|
||||
e-mail address.
|
||||
|
||||
* "git merge" did not refresh the index correctly when a merge resulted in
|
||||
a fast-forward.
|
||||
|
||||
* "git merge" did not resolve a truly trivial merges that can be done
|
||||
without content level merges.
|
||||
|
||||
* "git svn dcommit" to a repository with URL that has embedded usernames
|
||||
did not work correctly.
|
||||
|
||||
Contains other various documentation fixes.
|
87
Documentation/RelNotes/1.6.0.2.txt
Normal file
87
Documentation/RelNotes/1.6.0.2.txt
Normal file
|
@ -0,0 +1,87 @@
|
|||
GIT v1.6.0.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0.1
|
||||
--------------------
|
||||
|
||||
* Installation on platforms that needs .exe suffix to git-* programs were
|
||||
broken in 1.6.0.1.
|
||||
|
||||
* Installation on filesystems without symbolic links support did not
|
||||
work well.
|
||||
|
||||
* In-tree documentations and test scripts now use "git foo" form to set a
|
||||
better example, instead of the "git-foo" form (which is an acceptable
|
||||
form if you have "PATH=$(git --exec-path):$PATH" in your script)
|
||||
|
||||
* Many commands did not use the correct working tree location when used
|
||||
with GIT_WORK_TREE environment settings.
|
||||
|
||||
* Some systems need to use compatibility fnmatch and regex libraries
|
||||
independent from each other; the compat/ area has been reorganized to
|
||||
allow this.
|
||||
|
||||
|
||||
* "git apply --unidiff-zero" incorrectly applied a -U0 patch that inserts
|
||||
a new line before the second line.
|
||||
|
||||
* "git blame -c" did not exactly work like "git annotate" when range
|
||||
boundaries are involved.
|
||||
|
||||
* "git checkout file" when file is still unmerged checked out contents from
|
||||
a random high order stage, which was confusing.
|
||||
|
||||
* "git clone $there $here/" with extra trailing slashes after explicit
|
||||
local directory name $here did not work as expected.
|
||||
|
||||
* "git diff" on tracked contents with CRLF line endings did not drive "less"
|
||||
intelligently when showing added or removed lines.
|
||||
|
||||
* "git diff --dirstat -M" did not add changes in subdirectories up
|
||||
correctly for renamed paths.
|
||||
|
||||
* "git diff --cumulative" did not imply "--dirstat".
|
||||
|
||||
* "git for-each-ref refs/heads/" did not work as expected.
|
||||
|
||||
* "git gui" allowed users to feed patch without any context to be applied.
|
||||
|
||||
* "git gui" botched parsing "diff" output when a line that begins with two
|
||||
dashes and a space gets removed or a line that begins with two pluses
|
||||
and a space gets added.
|
||||
|
||||
* "git gui" translation updates and i18n fixes.
|
||||
|
||||
* "git index-pack" is more careful against disk corruption while completing
|
||||
a thin pack.
|
||||
|
||||
* "git log -i --grep=pattern" did not ignore case; neither "git log -E
|
||||
--grep=pattern" triggered extended regexp.
|
||||
|
||||
* "git log --pretty="%ad" --date=short" did not use short format when
|
||||
showing the timestamp.
|
||||
|
||||
* "git log --author=author" match incorrectly matched with the
|
||||
timestamp part of "author " line in commit objects.
|
||||
|
||||
* "git log -F --author=author" did not work at all.
|
||||
|
||||
* Build procedure for "git shell" that used stub versions of some
|
||||
functions and globals was not understood by linkers on some platforms.
|
||||
|
||||
* "git stash" was fooled by a stat-dirty but otherwise unmodified paths
|
||||
and refused to work until the user refreshed the index.
|
||||
|
||||
* "git svn" was broken on Perl before 5.8 with recent fixes to reduce
|
||||
use of temporary files.
|
||||
|
||||
* "git verify-pack -v" did not work correctly when given more than one
|
||||
packfile.
|
||||
|
||||
Also contains many documentation updates.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.6.0.1-78-g3632cfc
|
||||
echo O=$(git describe maint)
|
||||
git shortlog --no-merges $O..maint
|
117
Documentation/RelNotes/1.6.0.3.txt
Normal file
117
Documentation/RelNotes/1.6.0.3.txt
Normal file
|
@ -0,0 +1,117 @@
|
|||
GIT v1.6.0.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0.2
|
||||
--------------------
|
||||
|
||||
* "git archive --format=zip" did not honor core.autocrlf while
|
||||
--format=tar did.
|
||||
|
||||
* Continuing "git rebase -i" was very confused when the user left modified
|
||||
files in the working tree while resolving conflicts.
|
||||
|
||||
* Continuing "git rebase -i" was also very confused when the user left
|
||||
some staged changes in the index after "edit".
|
||||
|
||||
* "git rebase -i" now honors the pre-rebase hook, just like the
|
||||
other rebase implementations "git rebase" and "git rebase -m".
|
||||
|
||||
* "git rebase -i" incorrectly aborted when there is no commit to replay.
|
||||
|
||||
* Behaviour of "git diff --quiet" was inconsistent with "diff --exit-code"
|
||||
with the output redirected to /dev/null.
|
||||
|
||||
* "git diff --no-index" on binary files no longer outputs a bogus
|
||||
"diff --git" header line.
|
||||
|
||||
* "git diff" hunk header patterns with multiple elements separated by LF
|
||||
were not used correctly.
|
||||
|
||||
* Hunk headers in "git diff" default to using extended regular
|
||||
expressions, fixing some of the internal patterns on non-GNU
|
||||
platforms.
|
||||
|
||||
* New config "diff.*.xfuncname" exposes extended regular expressions
|
||||
for user specified hunk header patterns.
|
||||
|
||||
* "git gc" when ejecting otherwise unreachable objects from packfiles into
|
||||
loose form leaked memory.
|
||||
|
||||
* "git index-pack" was recently broken and mishandled objects added by
|
||||
thin-pack completion processing under memory pressure.
|
||||
|
||||
* "git index-pack" was recently broken and misbehaved when run from inside
|
||||
.git/objects/pack/ directory.
|
||||
|
||||
* "git stash apply sash@{1}" was fixed to error out. Prior versions
|
||||
would have applied stash@{0} incorrectly.
|
||||
|
||||
* "git stash apply" now offers a better suggestion on how to continue
|
||||
if the working tree is currently dirty.
|
||||
|
||||
* "git for-each-ref --format=%(subject)" fixed for commits with no
|
||||
no newline in the message body.
|
||||
|
||||
* "git remote" fixed to protect printf from user input.
|
||||
|
||||
* "git remote show -v" now displays all URLs of a remote.
|
||||
|
||||
* "git checkout -b branch" was confused when branch already existed.
|
||||
|
||||
* "git checkout -q" once again suppresses the locally modified file list.
|
||||
|
||||
* "git clone -q", "git fetch -q" asks remote side to not send
|
||||
progress messages, actually making their output quiet.
|
||||
|
||||
* Cross-directory renames are no longer used when creating packs. This
|
||||
allows more graceful behavior on filesystems like sshfs.
|
||||
|
||||
* Stale temporary files under $GIT_DIR/objects/pack are now cleaned up
|
||||
automatically by "git prune".
|
||||
|
||||
* "git merge" once again removes directories after the last file has
|
||||
been removed from it during the merge.
|
||||
|
||||
* "git merge" did not allocate enough memory for the structure itself when
|
||||
enumerating the parents of the resulting commit.
|
||||
|
||||
* "git blame -C -C" no longer segfaults while trying to pass blame if
|
||||
it encounters a submodule reference.
|
||||
|
||||
* "git rm" incorrectly claimed that you have local modifications when a
|
||||
path was merely stat-dirty.
|
||||
|
||||
* "git svn" fixed to display an error message when 'set-tree' failed,
|
||||
instead of a Perl compile error.
|
||||
|
||||
* "git submodule" fixed to handle checking out a different commit
|
||||
than HEAD after initializing the submodule.
|
||||
|
||||
* The "git commit" error message when there are still unmerged
|
||||
files present was clarified to match "git write-tree".
|
||||
|
||||
* "git init" was confused when core.bare or core.sharedRepository are set
|
||||
in system or user global configuration file by mistake. When --bare or
|
||||
--shared is given from the command line, these now override such
|
||||
settings made outside the repositories.
|
||||
|
||||
* Some segfaults due to uncaught NULL pointers were fixed in multiple
|
||||
tools such as apply, reset, update-index.
|
||||
|
||||
* Solaris builds now default to OLD_ICONV=1 to avoid compile warnings;
|
||||
Solaris 8 does not define NEEDS_LIBICONV by default.
|
||||
|
||||
* "Git.pm" tests relied on unnecessarily more recent version of Perl.
|
||||
|
||||
* "gitweb" triggered undef warning on commits without log messages.
|
||||
|
||||
* "gitweb" triggered undef warnings on missing trees.
|
||||
|
||||
* "gitweb" now removes PATH_INFO from its URLs so users don't have
|
||||
to manually set the URL in the gitweb configuration.
|
||||
|
||||
* Bash completion removed support for legacy "git-fetch", "git-push"
|
||||
and "git-pull" as these are no longer installed. Dashless form
|
||||
("git fetch") is still however supported.
|
||||
|
||||
Many other documentation updates.
|
39
Documentation/RelNotes/1.6.0.4.txt
Normal file
39
Documentation/RelNotes/1.6.0.4.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
GIT v1.6.0.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0.3
|
||||
--------------------
|
||||
|
||||
* 'git add -p' said "No changes" when only binary files were changed.
|
||||
|
||||
* 'git archive' did not work correctly in bare repositories.
|
||||
|
||||
* 'git checkout -t -b newbranch' when you are on detached HEAD was broken.
|
||||
|
||||
* when we refuse to detect renames because there are too many new or
|
||||
deleted files, 'git diff' did not say how many there are.
|
||||
|
||||
* 'git push --mirror' tried and failed to push the stash; there is no
|
||||
point in sending it to begin with.
|
||||
|
||||
* 'git push' did not update the remote tracking reference if the corresponding
|
||||
ref on the remote end happened to be already up to date.
|
||||
|
||||
* 'git pull $there $branch:$current_branch' did not work when you were on
|
||||
a branch yet to be born.
|
||||
|
||||
* when giving up resolving a conflicted merge, 'git reset --hard' failed
|
||||
to remove new paths from the working tree.
|
||||
|
||||
* 'git send-email' had a small fd leak while scanning directory.
|
||||
|
||||
* 'git status' incorrectly reported a submodule directory as an untracked
|
||||
directory.
|
||||
|
||||
* 'git svn' used deprecated 'git-foo' form of subcommand invocation.
|
||||
|
||||
* 'git update-ref -d' to remove a reference did not honor --no-deref option.
|
||||
|
||||
* Plugged small memleaks here and there.
|
||||
|
||||
* Also contains many documentation updates.
|
56
Documentation/RelNotes/1.6.0.5.txt
Normal file
56
Documentation/RelNotes/1.6.0.5.txt
Normal file
|
@ -0,0 +1,56 @@
|
|||
GIT v1.6.0.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0.4
|
||||
--------------------
|
||||
|
||||
* "git checkout" used to crash when your HEAD was pointing at a deleted
|
||||
branch.
|
||||
|
||||
* "git checkout" from an un-checked-out state did not allow switching out
|
||||
of the current branch.
|
||||
|
||||
* "git diff" always allowed GIT_EXTERNAL_DIFF and --no-ext-diff was no-op for
|
||||
the command.
|
||||
|
||||
* Giving 3 or more tree-ish to "git diff" is supposed to show the combined
|
||||
diff from second and subsequent trees to the first one, but the order was
|
||||
screwed up.
|
||||
|
||||
* "git fast-export" did not export all tags.
|
||||
|
||||
* "git ls-files --with-tree=<tree>" did not work with options other
|
||||
than -c, most notably with -m.
|
||||
|
||||
* "git pack-objects" did not make its best effort to honor --max-pack-size
|
||||
option when a single first object already busted the given limit and
|
||||
placed many objects in a single pack.
|
||||
|
||||
* "git-p4" fast import frontend was too eager to trigger its keyword expansion
|
||||
logic, even on a keyword-looking string that does not have closing '$' on the
|
||||
same line.
|
||||
|
||||
* "git push $there" when the remote $there is defined in $GIT_DIR/branches/$there
|
||||
behaves more like what cg-push from Cogito used to work.
|
||||
|
||||
* when giving up resolving a conflicted merge, "git reset --hard" failed
|
||||
to remove new paths from the working tree.
|
||||
|
||||
* "git tag" did not complain when given mutually incompatible set of options.
|
||||
|
||||
* The message constructed in the internal editor was discarded when "git
|
||||
tag -s" failed to sign the message, which was often caused by the user
|
||||
not configuring GPG correctly.
|
||||
|
||||
* "make check" cannot be run without sparse; people may have meant to say
|
||||
"make test" instead, so suggest that.
|
||||
|
||||
* Internal diff machinery had a corner case performance bug that choked on
|
||||
a large file with many repeated contents.
|
||||
|
||||
* "git repack" used to grab objects out of packs marked with .keep
|
||||
into a new pack.
|
||||
|
||||
* Many unsafe call to sprintf() style varargs functions are corrected.
|
||||
|
||||
* Also contains quite a few documentation updates.
|
33
Documentation/RelNotes/1.6.0.6.txt
Normal file
33
Documentation/RelNotes/1.6.0.6.txt
Normal file
|
@ -0,0 +1,33 @@
|
|||
GIT v1.6.0.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.6.0.5
|
||||
-------------------
|
||||
|
||||
* "git fsck" had a deep recursion that wasted stack space.
|
||||
|
||||
* "git fast-export" and "git fast-import" choked on an old style
|
||||
annotated tag that lack the tagger information.
|
||||
|
||||
* "git mergetool -- file" did not correctly skip "--" marker that
|
||||
signals the end of options list.
|
||||
|
||||
* "git show $tag" segfaulted when an annotated $tag pointed at a
|
||||
nonexistent object.
|
||||
|
||||
* "git show 2>error" when the standard output is automatically redirected
|
||||
to the pager redirected the standard error to the pager as well; there
|
||||
was no need to.
|
||||
|
||||
* "git send-email" did not correctly handle list of addresses when
|
||||
they had quoted comma (e.g. "Lastname, Givenname" <mail@addre.ss>).
|
||||
|
||||
* Logic to discover branch ancestry in "git svn" was unreliable when
|
||||
the process to fetch history was interrupted.
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
||||
|
||||
Also contains numerous documentation typofixes.
|
258
Documentation/RelNotes/1.6.0.txt
Normal file
258
Documentation/RelNotes/1.6.0.txt
Normal file
|
@ -0,0 +1,258 @@
|
|||
GIT v1.6.0 Release Notes
|
||||
========================
|
||||
|
||||
User visible changes
|
||||
--------------------
|
||||
|
||||
With the default Makefile settings, most of the programs are now
|
||||
installed outside your $PATH, except for "git", "gitk" and
|
||||
some server side programs that need to be accessible for technical
|
||||
reasons. Invoking a git subcommand as "git-xyzzy" from the command
|
||||
line has been deprecated since early 2006 (and officially announced in
|
||||
1.5.4 release notes); use of them from your scripts after adding
|
||||
output from "git --exec-path" to the $PATH is still supported in this
|
||||
release, but users are again strongly encouraged to adjust their
|
||||
scripts to use "git xyzzy" form, as we will stop installing
|
||||
"git-xyzzy" hardlinks for built-in commands in later releases.
|
||||
|
||||
An earlier change to page "git status" output was overwhelmingly unpopular
|
||||
and has been reverted.
|
||||
|
||||
Source changes needed for porting to MinGW environment are now all in the
|
||||
main git.git codebase.
|
||||
|
||||
By default, packfiles created with this version uses delta-base-offset
|
||||
encoding introduced in v1.4.4. Pack idx files are using version 2 that
|
||||
allows larger packs and added robustness thanks to its CRC checking,
|
||||
introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories
|
||||
backwards compatible past these versions, set repack.useDeltaBaseOffset
|
||||
to false or pack.indexVersion to 1, respectively.
|
||||
|
||||
We used to prevent sample hook scripts shipped in templates/ from
|
||||
triggering by default by relying on the fact that we install them as
|
||||
unexecutable, but on some filesystems, this approach does not work.
|
||||
They are now shipped with ".sample" suffix. If you want to activate
|
||||
any of these samples as-is, rename them to drop the ".sample" suffix,
|
||||
instead of running "chmod +x" on them. For example, you can rename
|
||||
hooks/post-update.sample to hooks/post-update to enable the sample
|
||||
hook that runs update-server-info, in order to make repositories
|
||||
friendly to dumb protocols (i.e. HTTP).
|
||||
|
||||
GIT_CONFIG, which was only documented as affecting "git config", but
|
||||
actually affected all git commands, now only affects "git config".
|
||||
GIT_LOCAL_CONFIG, also only documented as affecting "git config" and
|
||||
not different from GIT_CONFIG in a useful way, is removed.
|
||||
|
||||
The ".dotest" temporary area "git am" and "git rebase" use is now moved
|
||||
inside the $GIT_DIR, to avoid mistakes of adding it to the project by
|
||||
accident.
|
||||
|
||||
An ancient merge strategy "stupid" has been removed.
|
||||
|
||||
|
||||
Updates since v1.5.6
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* git-p4 in contrib learned "allowSubmit" configuration to control on
|
||||
which branch to allow "submit" subcommand.
|
||||
|
||||
* git-gui learned to stage changes per-line.
|
||||
|
||||
(portability)
|
||||
|
||||
* Changes for MinGW port have been merged, thanks to Johannes Sixt and
|
||||
gangs.
|
||||
|
||||
* Sample hook scripts shipped in templates/ are now suffixed with
|
||||
*.sample.
|
||||
|
||||
* perl's in-place edit (-i) does not work well without backup files on Windows;
|
||||
some tests are rewritten to cope with this.
|
||||
|
||||
(documentation)
|
||||
|
||||
* Updated howto/update-hook-example
|
||||
|
||||
* Got rid of usage of "git-foo" from the tutorial and made typography
|
||||
more consistent.
|
||||
|
||||
* Disambiguating "--" between revs and paths is finally documented.
|
||||
|
||||
(performance, robustness, sanity etc.)
|
||||
|
||||
* index-pack used too much memory when dealing with a deep delta chain.
|
||||
This has been optimized.
|
||||
|
||||
* reduced excessive inlining to shrink size of the "git" binary.
|
||||
|
||||
* verify-pack checks the object CRC when using version 2 idx files.
|
||||
|
||||
* When an object is corrupt in a pack, the object became unusable even
|
||||
when the same object is available in a loose form, We now try harder to
|
||||
fall back to these redundant objects when able. In particular, "git
|
||||
repack -a -f" can be used to fix such a corruption as long as necessary
|
||||
objects are available.
|
||||
|
||||
* Performance of "git-blame -C -C" operation is vastly improved.
|
||||
|
||||
* git-clone does not create refs in loose form anymore (it behaves as
|
||||
if you immediately ran git-pack-refs after cloning). This will help
|
||||
repositories with insanely large number of refs.
|
||||
|
||||
* core.fsyncobjectfiles configuration can be used to ensure that the loose
|
||||
objects created will be fsync'ed (this is only useful on filesystems
|
||||
that does not order data writes properly).
|
||||
|
||||
* "git commit-tree" plumbing can make Octopus with more than 16 parents.
|
||||
"git commit" has been capable of this for quite some time.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* even more documentation pages are now accessible via "man" and "git help".
|
||||
|
||||
* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop
|
||||
the discovery process of the toplevel of working tree; this may be useful
|
||||
when you are working in a slow network disk and are outside any working tree,
|
||||
as bash-completion and "git help" may still need to run in these places.
|
||||
|
||||
* By default, stash entries never expire. Set reflogexpire in [gc
|
||||
"refs/stash"] to a reasonable value to get traditional auto-expiration
|
||||
behaviour back
|
||||
|
||||
* Longstanding latency issue with bash completion script has been
|
||||
addressed. This will need to be backmerged to 'maint' later.
|
||||
|
||||
* pager.<cmd> configuration variable can be used to enable/disable the
|
||||
default paging behaviour per command.
|
||||
|
||||
* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk
|
||||
manually.
|
||||
|
||||
* git-am records the original tip of the branch in ORIG_HEAD before it
|
||||
starts applying patches.
|
||||
|
||||
* git-apply can handle a patch that touches the same path more than once
|
||||
much better than before.
|
||||
|
||||
* git-apply can be told not to trust the line counts recorded in the input
|
||||
patch but recount, with the new --recount option.
|
||||
|
||||
* git-apply can be told to apply a patch to a path deeper than what the
|
||||
patch records with --directory option.
|
||||
|
||||
* git-archive can be told to omit certain paths from its output using
|
||||
export-ignore attributes.
|
||||
|
||||
* git-archive uses the zlib default compression level when creating
|
||||
zip archive.
|
||||
|
||||
* git-archive's command line options --exec and --remote can take their
|
||||
parameters as separate command line arguments, similar to other commands.
|
||||
IOW, both "--exec=path" and "--exec path" are now supported.
|
||||
|
||||
* With -v option, git-branch describes the remote tracking statistics
|
||||
similar to the way git-checkout reports by how many commits your branch
|
||||
is ahead/behind.
|
||||
|
||||
* git-branch's --contains option used to always require a commit parameter
|
||||
to limit the branches with; it now defaults to list branches that
|
||||
contains HEAD if this parameter is omitted.
|
||||
|
||||
* git-branch's --merged and --no-merged option used to always limit the
|
||||
branches relative to the HEAD, but they can now take an optional commit
|
||||
argument that is used in place of HEAD.
|
||||
|
||||
* git-bundle can read the revision arguments from the standard input.
|
||||
|
||||
* git-cherry-pick can replay a root commit now.
|
||||
|
||||
* git-clone can clone from a remote whose URL would be rewritten by
|
||||
configuration stored in $HOME/.gitconfig now.
|
||||
|
||||
* "git-clone --mirror" is a handy way to set up a bare mirror repository.
|
||||
|
||||
* git-cvsserver learned to respond to "cvs co -c".
|
||||
|
||||
* git-diff --check now checks leftover merge conflict markers.
|
||||
|
||||
* "git-diff -p" learned to grab a better hunk header lines in
|
||||
BibTex, Pascal/Delphi, and Ruby files and also pays attention to
|
||||
chapter and part boundary in TeX documents.
|
||||
|
||||
* When remote side used to have branch 'foo' and git-fetch finds that now
|
||||
it has branch 'foo/bar', it refuses to lose the existing remote tracking
|
||||
branch and its reflog. The error message has been improved to suggest
|
||||
pruning the remote if the user wants to proceed and get the latest set
|
||||
of branches from the remote, including such 'foo/bar'.
|
||||
|
||||
* fast-export learned to export and import marks file; this can be used to
|
||||
interface with fast-import incrementally.
|
||||
|
||||
* fast-import and fast-export learned to export and import gitlinks.
|
||||
|
||||
* "gitk" left background process behind after being asked to dig very deep
|
||||
history and the user killed the UI; the process is killed when the UI goes
|
||||
away now.
|
||||
|
||||
* git-rebase records the original tip of branch in ORIG_HEAD before it is
|
||||
rewound.
|
||||
|
||||
* "git rerere" can be told to update the index with auto-reused resolution
|
||||
with rerere.autoupdate configuration variable.
|
||||
|
||||
* git-rev-parse learned $commit^! and $commit^@ notations used in "log"
|
||||
family. These notations are available in gitk as well, because the gitk
|
||||
command internally uses rev-parse to interpret its arguments.
|
||||
|
||||
* git-rev-list learned --children option to show child commits it
|
||||
encountered during the traversal, instead of showing parent commits.
|
||||
|
||||
* git-send-mail can talk not just over SSL but over TLS now.
|
||||
|
||||
* git-shortlog honors custom output format specified with "--pretty=format:".
|
||||
|
||||
* "git-stash save" learned --keep-index option. This lets you stash away the
|
||||
local changes and bring the changes staged in the index to your working
|
||||
tree for examination and testing.
|
||||
|
||||
* git-stash also learned branch subcommand to create a new branch out of
|
||||
stashed changes.
|
||||
|
||||
* git-status gives the remote tracking statistics similar to the way
|
||||
git-checkout reports by how many commits your branch is ahead/behind.
|
||||
|
||||
* "git-svn dcommit" is now aware of auto-props setting the subversion user
|
||||
has.
|
||||
|
||||
* You can tell "git status -u" to even more aggressively omit checking
|
||||
untracked files with --untracked-files=no.
|
||||
|
||||
* Original SHA-1 value for "update-ref -d" is optional now.
|
||||
|
||||
* Error codes from gitweb are made more descriptive where possible, rather
|
||||
than "403 forbidden" as we used to issue everywhere.
|
||||
|
||||
(internal)
|
||||
|
||||
* git-merge has been reimplemented in C.
|
||||
|
||||
|
||||
Fixes since v1.5.6
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.5.6 maintenance series are included in
|
||||
this release, unless otherwise noted.
|
||||
|
||||
* git-clone ignored its -u option; the fix needs to be backported to
|
||||
'maint';
|
||||
|
||||
* git-mv used to lose the distinction between changes that are staged
|
||||
and that are only in the working tree, by staging both in the index
|
||||
after moving such a path.
|
||||
|
||||
* "git-rebase -i -p" rewrote the parents to wrong ones when amending
|
||||
(either edit or squash) was involved, and did not work correctly
|
||||
when fast forwarding.
|
||||
|
59
Documentation/RelNotes/1.6.1.1.txt
Normal file
59
Documentation/RelNotes/1.6.1.1.txt
Normal file
|
@ -0,0 +1,59 @@
|
|||
GIT v1.6.1.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1
|
||||
------------------
|
||||
|
||||
* "git add frotz/nitfol" when "frotz" is a submodule should have errored
|
||||
out, but it didn't.
|
||||
|
||||
* "git apply" took file modes from the patch text and updated the mode
|
||||
bits of the target tree even when the patch was not about mode changes.
|
||||
|
||||
* "git bisect view" on Cygwin did not launch gitk
|
||||
|
||||
* "git checkout $tree" did not trigger an error.
|
||||
|
||||
* "git commit" tried to remove COMMIT_EDITMSG from the work tree by mistake.
|
||||
|
||||
* "git describe --all" complained when a commit is described with a tag,
|
||||
which was nonsense.
|
||||
|
||||
* "git diff --no-index --" did not trigger no-index (aka "use git-diff as
|
||||
a replacement of diff on untracked files") behaviour.
|
||||
|
||||
* "git format-patch -1 HEAD" on a root commit failed to produce patch
|
||||
text.
|
||||
|
||||
* "git fsck branch" did not work as advertised; instead it behaved the same
|
||||
way as "git fsck".
|
||||
|
||||
* "git log --pretty=format:%s" did not handle a multi-line subject the
|
||||
same way as built-in log listers (i.e. shortlog, --pretty=oneline, etc.)
|
||||
|
||||
* "git daemon", and "git merge-file" are more careful when freopen fails
|
||||
and barf, instead of going on and writing to unopened filehandle.
|
||||
|
||||
* "git http-push" did not like some RFC 4918 compliant DAV server
|
||||
responses.
|
||||
|
||||
* "git merge -s recursive" mistakenly overwritten an untracked file in the
|
||||
work tree upon delete/modify conflict.
|
||||
|
||||
* "git merge -s recursive" didn't leave the index unmerged for entries with
|
||||
rename/delete conflicts.
|
||||
|
||||
* "git merge -s recursive" clobbered untracked files in the work tree.
|
||||
|
||||
* "git mv -k" with more than one erroneous paths misbehaved.
|
||||
|
||||
* "git read-tree -m -u" hence branch switching incorrectly lost a
|
||||
subdirectory in rare cases.
|
||||
|
||||
* "git rebase -i" issued an unnecessary error message upon a user error of
|
||||
marking the first commit to be "squash"ed.
|
||||
|
||||
* "git shortlog" did not format a commit message with multi-line
|
||||
subject correctly.
|
||||
|
||||
Many documentation updates.
|
39
Documentation/RelNotes/1.6.1.2.txt
Normal file
39
Documentation/RelNotes/1.6.1.2.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
GIT v1.6.1.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.1
|
||||
--------------------
|
||||
|
||||
* The logic for rename detection in internal diff used by commands like
|
||||
"git diff" and "git blame" has been optimized to avoid loading the same
|
||||
blob repeatedly.
|
||||
|
||||
* We did not allow writing out a blob that is larger than 2GB for no good
|
||||
reason.
|
||||
|
||||
* "git format-patch -o $dir", when $dir is a relative directory, used it
|
||||
as relative to the root of the work tree, not relative to the current
|
||||
directory.
|
||||
|
||||
* v1.6.1 introduced an optimization for "git push" into a repository (A)
|
||||
that borrows its objects from another repository (B) to avoid sending
|
||||
objects that are available in repository B, when they are not yet used
|
||||
by repository A. However the code on the "git push" sender side was
|
||||
buggy and did not work when repository B had new objects that are not
|
||||
known by the sender. This caused pushing into a "forked" repository
|
||||
served by v1.6.1 software using "git push" from v1.6.1 sometimes did not
|
||||
work. The bug was purely on the "git push" sender side, and has been
|
||||
corrected.
|
||||
|
||||
* "git status -v" did not paint its diff output in colour even when
|
||||
color.ui configuration was set.
|
||||
|
||||
* "git ls-tree" learned --full-tree option to help Porcelain scripts that
|
||||
want to always see the full path regardless of the current working
|
||||
directory.
|
||||
|
||||
* "git grep" incorrectly searched in work tree paths even when they are
|
||||
marked as assume-unchanged. It now searches in the index entries.
|
||||
|
||||
* "git gc" with no grace period needlessly ejected packed but unreachable
|
||||
objects in their loose form, only to delete them right away.
|
32
Documentation/RelNotes/1.6.1.3.txt
Normal file
32
Documentation/RelNotes/1.6.1.3.txt
Normal file
|
@ -0,0 +1,32 @@
|
|||
GIT v1.6.1.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.2
|
||||
--------------------
|
||||
|
||||
* "git diff --binary | git apply" pipeline did not work well when
|
||||
a binary blob is changed to a symbolic link.
|
||||
|
||||
* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did
|
||||
not work as expected.
|
||||
|
||||
* "git grep" did not pass the -I (ignore binary) option when
|
||||
calling out an external grep program.
|
||||
|
||||
* "git log" and friends include HEAD to the set of starting points
|
||||
when --all is given. This makes a difference when you are not
|
||||
on any branch.
|
||||
|
||||
* "git mv" to move an untracked file to overwrite a tracked
|
||||
contents misbehaved.
|
||||
|
||||
* "git merge -s octopus" with many potential merge bases did not
|
||||
work correctly.
|
||||
|
||||
* RPM binary package installed the html manpages in a wrong place.
|
||||
|
||||
Also includes minor documentation fixes and updates.
|
||||
|
||||
|
||||
--
|
||||
git shortlog --no-merges v1.6.1.2-33-gc789350..
|
44
Documentation/RelNotes/1.6.1.4.txt
Normal file
44
Documentation/RelNotes/1.6.1.4.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
GIT v1.6.1.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.3
|
||||
--------------------
|
||||
|
||||
* .gitignore learned to handle backslash as a quoting mechanism for
|
||||
comment introduction character "#".
|
||||
This fix was first merged to 1.6.2.1.
|
||||
|
||||
* "git fast-export" produced wrong output with some parents missing from
|
||||
commits, when the history is clock-skewed.
|
||||
|
||||
* "git fast-import" sometimes failed to read back objects it just wrote
|
||||
out and aborted, because it failed to flush stale cached data.
|
||||
|
||||
* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
|
||||
deciding to descend into a subdirectory but they did not match the
|
||||
individual paths correctly. This caused pathspecs "abc/d ab" to match
|
||||
"abc/0" ("abc/d" made them decide to descend into the directory "abc/",
|
||||
and then "ab" incorrectly matched "abc/0" when it shouldn't).
|
||||
This fix was first merged to 1.6.2.3.
|
||||
|
||||
* import-zips script (in contrib) did not compute the common directory
|
||||
prefix correctly.
|
||||
This fix was first merged to 1.6.2.2.
|
||||
|
||||
* "git init" segfaulted when given an overlong template location via
|
||||
the --template= option.
|
||||
This fix was first merged to 1.6.2.4.
|
||||
|
||||
* "git repack" did not error out when necessary object was missing in the
|
||||
repository.
|
||||
|
||||
* git-repack (invoked from git-gc) did not work as nicely as it should in
|
||||
a repository that borrows objects from neighbours via alternates
|
||||
mechanism especially when some packs are marked with the ".keep" flag
|
||||
to prevent them from being repacked.
|
||||
This fix was first merged to 1.6.2.3.
|
||||
|
||||
Also includes minor documentation fixes and updates.
|
||||
|
||||
--
|
||||
git shortlog --no-merges v1.6.1.3..
|
286
Documentation/RelNotes/1.6.1.txt
Normal file
286
Documentation/RelNotes/1.6.1.txt
Normal file
|
@ -0,0 +1,286 @@
|
|||
GIT v1.6.1 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.6.0
|
||||
--------------------
|
||||
|
||||
When some commands (e.g. "git log", "git diff") spawn pager internally, we
|
||||
used to make the pager the parent process of the git command that produces
|
||||
output. This meant that the exit status of the whole thing comes from the
|
||||
pager, not the underlying git command. We swapped the order of the
|
||||
processes around and you will see the exit code from the command from now
|
||||
on.
|
||||
|
||||
(subsystems)
|
||||
|
||||
* gitk can call out to git-gui to view "git blame" output; git-gui in turn
|
||||
can run gitk from its blame view.
|
||||
|
||||
* Various git-gui updates including updated translations.
|
||||
|
||||
* Various gitweb updates from repo.or.cz installation.
|
||||
|
||||
* Updates to emacs bindings.
|
||||
|
||||
(portability)
|
||||
|
||||
* A few test scripts used nonportable "grep" that did not work well on
|
||||
some platforms, e.g. Solaris.
|
||||
|
||||
* Sample pre-auto-gc script has OS X support.
|
||||
|
||||
* Makefile has support for (ancient) FreeBSD 4.9.
|
||||
|
||||
(performance)
|
||||
|
||||
* Many operations that are lstat(3) heavy can be told to pre-execute
|
||||
necessary lstat(3) in parallel before their main operations, which
|
||||
potentially gives much improved performance for cold-cache cases or in
|
||||
environments with weak metadata caching (e.g. NFS).
|
||||
|
||||
* The underlying diff machinery to produce textual output has been
|
||||
optimized, which would result in faster "git blame" processing.
|
||||
|
||||
* Most of the test scripts (but not the ones that try to run servers)
|
||||
can be run in parallel.
|
||||
|
||||
* Bash completion of refnames in a repository with massive number of
|
||||
refs has been optimized.
|
||||
|
||||
* Cygwin port uses native stat/lstat implementations when applicable,
|
||||
which leads to improved performance.
|
||||
|
||||
* "git push" pays attention to alternate repositories to avoid sending
|
||||
unnecessary objects.
|
||||
|
||||
* "git svn" can rebuild an out-of-date rev_map file.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* When you mistype a command name, git helpfully suggests what it guesses
|
||||
you might have meant to say. help.autocorrect configuration can be set
|
||||
to a non-zero value to accept the suggestion when git can uniquely
|
||||
guess.
|
||||
|
||||
* The packfile machinery hopefully is more robust when dealing with
|
||||
corrupt packs if redundant objects involved in the corruption are
|
||||
available elsewhere.
|
||||
|
||||
* "git add -N path..." adds the named paths as an empty blob, so that
|
||||
subsequent "git diff" will show a diff as if they are creation events.
|
||||
|
||||
* "git add" gained a built-in synonym for people who want to say "stage
|
||||
changes" instead of "add contents to the staging area" which amounts
|
||||
to the same thing.
|
||||
|
||||
* "git apply" learned --include=paths option, similar to the existing
|
||||
--exclude=paths option.
|
||||
|
||||
* "git bisect" is careful about a user mistake and suggests testing of
|
||||
merge base first when good is not a strict ancestor of bad.
|
||||
|
||||
* "git bisect skip" can take a range of commits.
|
||||
|
||||
* "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding
|
||||
by default.
|
||||
|
||||
* "git check-attr --stdin" can check attributes for multiple paths.
|
||||
|
||||
* "git checkout --track origin/hack" used to be a syntax error. It now
|
||||
DWIMs to create a corresponding local branch "hack", i.e. acts as if you
|
||||
said "git checkout --track -b hack origin/hack".
|
||||
|
||||
* "git checkout --ours/--theirs" can be used to check out one side of a
|
||||
conflicting merge during conflict resolution.
|
||||
|
||||
* "git checkout -m" can be used to recreate the initial conflicted state
|
||||
during conflict resolution.
|
||||
|
||||
* "git cherry-pick" can also utilize rerere for conflict resolution.
|
||||
|
||||
* "git clone" learned to be verbose with -v
|
||||
|
||||
* "git commit --author=$name" can look up author name from existing
|
||||
commits.
|
||||
|
||||
* output from "git commit" has been reworded in a more concise and yet
|
||||
more informative way.
|
||||
|
||||
* "git count-objects" reports the on-disk footprint for packfiles and
|
||||
their corresponding idx files.
|
||||
|
||||
* "git daemon" learned --max-connections=<count> option.
|
||||
|
||||
* "git daemon" exports REMOTE_ADDR to record client address, so that
|
||||
spawned programs can act differently on it.
|
||||
|
||||
* "git describe --tags" favours closer lightweight tags than farther
|
||||
annotated tags now.
|
||||
|
||||
* "git diff" learned to mimic --suppress-blank-empty from GNU diff via a
|
||||
configuration option.
|
||||
|
||||
* "git diff" learned to put more sensible hunk headers for Python,
|
||||
HTML and ObjC contents.
|
||||
|
||||
* "git diff" learned to vary the a/ vs b/ prefix depending on what are
|
||||
being compared, controlled by diff.mnemonicprefix configuration.
|
||||
|
||||
* "git diff" learned --dirstat-by-file to count changed files, not number
|
||||
of lines, when summarizing the global picture.
|
||||
|
||||
* "git diff" learned "textconv" filters --- a binary or hard-to-read
|
||||
contents can be munged into human readable form and the difference
|
||||
between the results of the conversion can be viewed (obviously this
|
||||
cannot produce a patch that can be applied, so this is disabled in
|
||||
format-patch among other things).
|
||||
|
||||
* "--cached" option to "git diff has an easier to remember synonym "--staged",
|
||||
to ask "what is the difference between the given commit and the
|
||||
contents staged in the index?"
|
||||
|
||||
* "git for-each-ref" learned "refname:short" token that gives an
|
||||
unambiguously abbreviated refname.
|
||||
|
||||
* Auto-numbering of the subject lines is the default for "git
|
||||
format-patch" now.
|
||||
|
||||
* "git grep" learned to accept -z similar to GNU grep.
|
||||
|
||||
* "git help" learned to use GIT_MAN_VIEWER environment variable before
|
||||
using "man" program.
|
||||
|
||||
* "git imap-send" can optionally talk SSL.
|
||||
|
||||
* "git index-pack" is more careful against disk corruption while
|
||||
completing a thin pack.
|
||||
|
||||
* "git log --check" and "git log --exit-code" passes their underlying diff
|
||||
status with their exit status code.
|
||||
|
||||
* "git log" learned --simplify-merges, a milder variant of --full-history;
|
||||
"gitk --simplify-merges" is easier to view than with --full-history.
|
||||
|
||||
* "git log" learned "--source" to show what ref each commit was reached
|
||||
from.
|
||||
|
||||
* "git log" also learned "--simplify-by-decoration" to show the
|
||||
birds-eye-view of the topology of the history.
|
||||
|
||||
* "git log --pretty=format:" learned "%d" format element that inserts
|
||||
names of tags that point at the commit.
|
||||
|
||||
* "git merge --squash" and "git merge --no-ff" into an unborn branch are
|
||||
noticed as user errors.
|
||||
|
||||
* "git merge -s $strategy" can use a custom built strategy if you have a
|
||||
command "git-merge-$strategy" on your $PATH.
|
||||
|
||||
* "git pull" (and "git fetch") can be told to operate "-v"erbosely or
|
||||
"-q"uietly.
|
||||
|
||||
* "git push" can be told to reject deletion of refs with receive.denyDeletes
|
||||
configuration.
|
||||
|
||||
* "git rebase" honours pre-rebase hook; use --no-verify to bypass it.
|
||||
|
||||
* "git rebase -p" uses interactive rebase machinery now to preserve the merges.
|
||||
|
||||
* "git reflog expire branch" can be used in place of "git reflog expire
|
||||
refs/heads/branch".
|
||||
|
||||
* "git remote show $remote" lists remote branches one-per-line now.
|
||||
|
||||
* "git send-email" can be given revision range instead of files and
|
||||
maildirs on the command line, and automatically runs format-patch to
|
||||
generate patches for the given revision range.
|
||||
|
||||
* "git submodule foreach" subcommand allows you to iterate over checked
|
||||
out submodules.
|
||||
|
||||
* "git submodule sync" subcommands allows you to update the origin URL
|
||||
recorded in submodule directories from the toplevel .gitmodules file.
|
||||
|
||||
* "git svn branch" can create new branches on the other end.
|
||||
|
||||
* "gitweb" can use more saner PATH_INFO based URL.
|
||||
|
||||
(internal)
|
||||
|
||||
* "git hash-object" learned to lie about the path being hashed, so that
|
||||
correct gitattributes processing can be done while hashing contents
|
||||
stored in a temporary file.
|
||||
|
||||
* various callers of git-merge-recursive avoid forking it as an external
|
||||
process.
|
||||
|
||||
* Git class defined in "Git.pm" can be subclasses a bit more easily.
|
||||
|
||||
* We used to link GNU regex library as a compatibility layer for some
|
||||
platforms, but it turns out it is not necessary on most of them.
|
||||
|
||||
* Some path handling routines used fixed number of buffers used alternately
|
||||
but depending on the call depth, this arrangement led to hard to track
|
||||
bugs. This issue is being addressed.
|
||||
|
||||
|
||||
Fixes since v1.6.0
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.0.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
* Porcelains implemented as shell scripts were utterly confused when you
|
||||
entered to a subdirectory of a work tree from sideways, following a
|
||||
symbolic link (this may need to be backported to older releases later).
|
||||
|
||||
* Tracking symbolic links would work better on filesystems whose lstat()
|
||||
returns incorrect st_size value for them.
|
||||
|
||||
* "git add" and "git update-index" incorrectly allowed adding S/F when S
|
||||
is a tracked symlink that points at a directory D that has a path F in
|
||||
it (we still need to fix a similar nonsense when S is a submodule and F
|
||||
is a path in it).
|
||||
|
||||
* "git am" after stopping at a broken patch lost --whitespace, -C, -p and
|
||||
--3way options given from the command line initially.
|
||||
|
||||
* "git diff --stdin" used to take two trees on a line and compared them,
|
||||
but we dropped support for such a use case long time ago. This has
|
||||
been resurrected.
|
||||
|
||||
* "git filter-branch" failed to rewrite a tag name with slashes in it.
|
||||
|
||||
* "git http-push" did not understand URI scheme other than opaquelocktoken
|
||||
when acquiring a lock from the server (this may need to be backported to
|
||||
older releases later).
|
||||
|
||||
* After "git rebase -p" stopped with conflicts while replaying a merge,
|
||||
"git rebase --continue" did not work (may need to be backported to older
|
||||
releases).
|
||||
|
||||
* "git revert" records relative to which parent a revert was made when
|
||||
reverting a merge. Together with new documentation that explains issues
|
||||
around reverting a merge and merging from the updated branch later, this
|
||||
hopefully will reduce user confusion (this may need to be backported to
|
||||
older releases later).
|
||||
|
||||
* "git rm --cached" used to allow an empty blob that was added earlier to
|
||||
be removed without --force, even when the file in the work tree has
|
||||
since been modified.
|
||||
|
||||
* "git push --tags --all $there" failed with generic usage message without
|
||||
telling saying these two options are incompatible.
|
||||
|
||||
* "git log --author/--committer" match used to potentially match the
|
||||
timestamp part, exposing internal implementation detail. Also these did
|
||||
not work with --fixed-strings match at all.
|
||||
|
||||
* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
|
||||
correctly.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.6.1-rc3-74-gf66bc5f
|
||||
echo O=$(git describe master)
|
||||
git shortlog --no-merges $O..master ^maint
|
19
Documentation/RelNotes/1.6.2.1.txt
Normal file
19
Documentation/RelNotes/1.6.2.1.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
GIT v1.6.2.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2
|
||||
------------------
|
||||
|
||||
* .gitignore learned to handle backslash as a quoting mechanism for
|
||||
comment introduction character "#".
|
||||
|
||||
* timestamp output in --date=relative mode used to display timestamps that
|
||||
are long time ago in the default mode; it now uses "N years M months
|
||||
ago", and "N years ago".
|
||||
|
||||
* git-add -i/-p now works with non-ASCII pathnames.
|
||||
|
||||
* "git hash-object -w" did not read from the configuration file from the
|
||||
correct .git directory.
|
||||
|
||||
* git-send-email learned to correctly handle multiple Cc: addresses.
|
45
Documentation/RelNotes/1.6.2.2.txt
Normal file
45
Documentation/RelNotes/1.6.2.2.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
GIT v1.6.2.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.1
|
||||
--------------------
|
||||
|
||||
* A longstanding confusing description of what --pickaxe option of
|
||||
git-diff does has been clarified in the documentation.
|
||||
|
||||
* "git-blame -S" did not quite work near the commits that were given
|
||||
on the command line correctly.
|
||||
|
||||
* "git diff --pickaxe-regexp" did not count overlapping matches
|
||||
correctly.
|
||||
|
||||
* "git diff" did not feed files in work-tree representation to external
|
||||
diff and textconv.
|
||||
|
||||
* "git-fetch" in a repository that was not cloned from anywhere said
|
||||
it cannot find 'origin', which was hard to understand for new people.
|
||||
|
||||
* "git-format-patch --numbered-files --stdout" did not have to die of
|
||||
incompatible options; it now simply ignores --numbered-files as no files
|
||||
are produced anyway.
|
||||
|
||||
* "git-ls-files --deleted" did not work well with GIT_DIR&GIT_WORK_TREE.
|
||||
|
||||
* "git-read-tree A B C..." without -m option has been broken for a long
|
||||
time.
|
||||
|
||||
* git-send-email ignored --in-reply-to when --no-thread was given.
|
||||
|
||||
* 'git-submodule add' did not tolerate extra slashes and ./ in the path it
|
||||
accepted from the command line; it now is more lenient.
|
||||
|
||||
* git-svn misbehaved when the project contained a path that began with
|
||||
two dashes.
|
||||
|
||||
* import-zips script (in contrib) did not compute the common directory
|
||||
prefix correctly.
|
||||
|
||||
* miscompilation of negated enum constants by old gcc (2.9) affected the
|
||||
codepaths to spawn subprocesses.
|
||||
|
||||
Many small documentation updates are included as well.
|
22
Documentation/RelNotes/1.6.2.3.txt
Normal file
22
Documentation/RelNotes/1.6.2.3.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
GIT v1.6.2.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.2
|
||||
--------------------
|
||||
|
||||
* Setting an octal mode value to core.sharedrepository configuration to
|
||||
restrict access to the repository to group members did not work as
|
||||
advertised.
|
||||
|
||||
* A fairly large and trivial memory leak while rev-list shows list of
|
||||
reachable objects has been identified and plugged.
|
||||
|
||||
* "git-commit --interactive" did not abort when underlying "git-add -i"
|
||||
signaled a failure.
|
||||
|
||||
* git-repack (invoked from git-gc) did not work as nicely as it should in
|
||||
a repository that borrows objects from neighbours via alternates
|
||||
mechanism especially when some packs are marked with the ".keep" flag
|
||||
to prevent them from being repacked.
|
||||
|
||||
Many small documentation updates are included as well.
|
39
Documentation/RelNotes/1.6.2.4.txt
Normal file
39
Documentation/RelNotes/1.6.2.4.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
GIT v1.6.2.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.3
|
||||
--------------------
|
||||
|
||||
* The configuration parser had a buffer overflow while parsing an overlong
|
||||
value.
|
||||
|
||||
* pruning reflog entries that are unreachable from the tip of the ref
|
||||
during "git reflog prune" (hence "git gc") was very inefficient.
|
||||
|
||||
* "git-add -p" lacked a way to say "q"uit to refuse staging any hunks for
|
||||
the remaining paths. You had to say "d" and then ^C.
|
||||
|
||||
* "git-checkout <tree-ish> <submodule>" did not update the index entry at
|
||||
the named path; it now does.
|
||||
|
||||
* "git-fast-export" choked when seeing a tag that does not point at commit.
|
||||
|
||||
* "git init" segfaulted when given an overlong template location via
|
||||
the --template= option.
|
||||
|
||||
* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
|
||||
deciding to descend into a subdirectory but they did not match the
|
||||
individual paths correctly. This caused pathspecs "abc/d ab" to match
|
||||
"abc/0" ("abc/d" made them decide to descend into the directory "abc/",
|
||||
and then "ab" incorrectly matched "abc/0" when it shouldn't).
|
||||
|
||||
* "git-merge-recursive" was broken when a submodule entry was involved in
|
||||
a criss-cross merge situation.
|
||||
|
||||
Many small documentation updates are included as well.
|
||||
|
||||
---
|
||||
exec >/var/tmp/1
|
||||
echo O=$(git describe maint)
|
||||
O=v1.6.2.3-38-g318b847
|
||||
git shortlog --no-merges $O..maint
|
21
Documentation/RelNotes/1.6.2.5.txt
Normal file
21
Documentation/RelNotes/1.6.2.5.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
GIT v1.6.2.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.4
|
||||
--------------------
|
||||
|
||||
* "git apply" mishandled if you fed a git generated patch that renames
|
||||
file A to B and file B to A at the same time.
|
||||
|
||||
* "git diff -c -p" (and "diff --cc") did not expect to see submodule
|
||||
differences and instead refused to work.
|
||||
|
||||
* "git grep -e '('" segfaulted, instead of diagnosing a mismatched
|
||||
parentheses error.
|
||||
|
||||
* "git fetch" generated packs with offset-delta encoding when both ends of
|
||||
the connection are capable of producing one; this cannot be read by
|
||||
ancient git and the user should be able to disable this by setting
|
||||
repack.usedeltabaseoffset configuration to false.
|
||||
|
||||
|
164
Documentation/RelNotes/1.6.2.txt
Normal file
164
Documentation/RelNotes/1.6.2.txt
Normal file
|
@ -0,0 +1,164 @@
|
|||
GIT v1.6.2 Release Notes
|
||||
========================
|
||||
|
||||
With the next major release, "git push" into a branch that is
|
||||
currently checked out will be refused by default. You can choose
|
||||
what should happen upon such a push by setting the configuration
|
||||
variable receive.denyCurrentBranch in the receiving repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
For a similar reason, "git push $there :$killed" to delete the branch
|
||||
$killed in a remote repository $there, if $killed branch is the current
|
||||
branch pointed at by its HEAD, gets a large warning. You can choose what
|
||||
should happen upon such a push by setting the configuration variable
|
||||
receive.denyDeleteCurrent in the receiving repository.
|
||||
|
||||
|
||||
Updates since v1.6.1
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* git-svn updates.
|
||||
|
||||
* gitweb updates, including a new patch view and RSS/Atom feed
|
||||
improvements.
|
||||
|
||||
* (contrib/emacs) git.el now has commands for checking out a branch,
|
||||
creating a branch, cherry-picking and reverting commits; vc-git.el
|
||||
is not shipped with git anymore (it is part of official Emacs).
|
||||
|
||||
(performance)
|
||||
|
||||
* pack-objects autodetects the number of CPUs available and uses threaded
|
||||
version.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* automatic typo correction works on aliases as well
|
||||
|
||||
* @{-1} is a way to refer to the last branch you were on. This is
|
||||
accepted not only where an object name is expected, but anywhere
|
||||
a branch name is expected and acts as if you typed the branch name.
|
||||
E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and
|
||||
"git rev-parse --symbolic-full-name @{-1}" would work as expected.
|
||||
|
||||
* When refs/remotes/origin/HEAD points at a remote tracking branch that
|
||||
has been pruned away, many git operations issued warning when they
|
||||
internally enumerated the refs. We now warn only when you say "origin"
|
||||
to refer to that pruned branch.
|
||||
|
||||
* The location of .mailmap file can be configured, and its file format was
|
||||
enhanced to allow mapping an incorrect e-mail field as well.
|
||||
|
||||
* "git add -p" learned 'g'oto action to jump directly to a hunk.
|
||||
|
||||
* "git add -p" learned to find a hunk with given text with '/'.
|
||||
|
||||
* "git add -p" optionally can be told to work with just the command letter
|
||||
without Enter.
|
||||
|
||||
* when "git am" stops upon a patch that does not apply, it shows the
|
||||
title of the offending patch.
|
||||
|
||||
* "git am --directory=<dir>" and "git am --reject" passes these options
|
||||
to underlying "git apply".
|
||||
|
||||
* "git am" learned --ignore-date option.
|
||||
|
||||
* "git blame" aligns author names better when they are spelled in
|
||||
non US-ASCII encoding.
|
||||
|
||||
* "git clone" now makes its best effort when cloning from an empty
|
||||
repository to set up configuration variables to refer to the remote
|
||||
repository.
|
||||
|
||||
* "git checkout -" is a shorthand for "git checkout @{-1}".
|
||||
|
||||
* "git cherry" defaults to whatever the current branch is tracking (if
|
||||
exists) when the <upstream> argument is not given.
|
||||
|
||||
* "git cvsserver" can be told not to add extra "via git-CVS emulator" to
|
||||
the commit log message it serves via gitcvs.commitmsgannotation
|
||||
configuration.
|
||||
|
||||
* "git cvsserver" learned to handle 'noop' command some CVS clients seem
|
||||
to expect to work.
|
||||
|
||||
* "git diff" learned a new option --inter-hunk-context to coalesce close
|
||||
hunks together and show context between them.
|
||||
|
||||
* The definition of what constitutes a word for "git diff --color-words"
|
||||
can be customized via gitattributes, command line or a configuration.
|
||||
|
||||
* "git diff" learned --patience to run "patience diff" algorithm.
|
||||
|
||||
* "git filter-branch" learned --prune-empty option that discards commits
|
||||
that do not change the contents.
|
||||
|
||||
* "git fsck" now checks loose objects in alternate object stores, instead
|
||||
of misreporting them as missing.
|
||||
|
||||
* "git gc --prune" was resurrected to allow "git gc --no-prune" and
|
||||
giving non-default expiration period e.g. "git gc --prune=now".
|
||||
|
||||
* "git grep -w" and "git grep" for fixed strings have been optimized.
|
||||
|
||||
* "git mergetool" learned -y(--no-prompt) option to disable prompting.
|
||||
|
||||
* "git rebase -i" can transplant a history down to root to elsewhere
|
||||
with --root option.
|
||||
|
||||
* "git reset --merge" is a new mode that works similar to the way
|
||||
"git checkout" switches branches, taking the local changes while
|
||||
switching to another commit.
|
||||
|
||||
* "git submodule update" learned --no-fetch option.
|
||||
|
||||
* "git tag" learned --contains that works the same way as the same option
|
||||
from "git branch".
|
||||
|
||||
|
||||
Fixes since v1.6.1
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.1.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
Here are fixes that this release has, but have not been backported to
|
||||
v1.6.1.X series.
|
||||
|
||||
* "git-add sub/file" when sub is a submodule incorrectly added the path to
|
||||
the superproject.
|
||||
|
||||
* "git bundle" did not exclude annotated tags even when a range given
|
||||
from the command line wanted to.
|
||||
|
||||
* "git filter-branch" unnecessarily refused to work when you had
|
||||
checked out a different commit from what is recorded in the superproject
|
||||
index in a submodule.
|
||||
|
||||
* "git filter-branch" incorrectly tried to update a nonexistent work tree
|
||||
at the end when it is run in a bare repository.
|
||||
|
||||
* "git gc" did not work if your repository was created with an ancient git
|
||||
and never had any pack files in it before.
|
||||
|
||||
* "git mergetool" used to ignore autocrlf and other attributes
|
||||
based content rewriting.
|
||||
|
||||
* branch switching and merges had a silly bug that did not validate
|
||||
the correct directory when making sure an existing subdirectory is
|
||||
clean.
|
||||
|
||||
* "git -p cmd" when cmd is not a built-in one left the display in funny state
|
||||
when killed in the middle.
|
10
Documentation/RelNotes/1.6.3.1.txt
Normal file
10
Documentation/RelNotes/1.6.3.1.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
GIT v1.6.3.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.3
|
||||
------------------
|
||||
|
||||
* "git checkout -b new-branch" with a staged change in the index
|
||||
incorrectly primed the in-index cache-tree, resulting a wrong tree
|
||||
object to be written out of the index. This is a grave regression
|
||||
since the last 1.6.2.X maintenance release.
|
61
Documentation/RelNotes/1.6.3.2.txt
Normal file
61
Documentation/RelNotes/1.6.3.2.txt
Normal file
|
@ -0,0 +1,61 @@
|
|||
GIT v1.6.3.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.3.1
|
||||
--------------------
|
||||
|
||||
* A few codepaths picked up the first few bytes from an sha1[] by
|
||||
casting the (char *) pointer to (int *); GCC 4.4 did not like this,
|
||||
and aborted compilation.
|
||||
|
||||
* Some unlink(2) failures went undiagnosed.
|
||||
|
||||
* The "recursive" merge strategy misbehaved when faced rename/delete
|
||||
conflicts while coming up with an intermediate merge base.
|
||||
|
||||
* The low-level merge algorithm did not handle a degenerate case of
|
||||
merging a file with itself using itself as the common ancestor
|
||||
gracefully. It should produce the file itself, but instead
|
||||
produced an empty result.
|
||||
|
||||
* GIT_TRACE mechanism segfaulted when tracing a shell-quoted aliases.
|
||||
|
||||
* OpenBSD also uses st_ctimspec in "struct stat", instead of "st_ctim".
|
||||
|
||||
* With NO_CROSS_DIRECTORY_HARDLINKS, "make install" can be told not to
|
||||
create hardlinks between $(gitexecdir)/git-$builtin_commands and
|
||||
$(bindir)/git.
|
||||
|
||||
* command completion code in bash did not reliably detect that we are
|
||||
in a bare repository.
|
||||
|
||||
* "git add ." in an empty directory complained that pathspec "." did not
|
||||
match anything, which may be technically correct, but not useful. We
|
||||
silently make it a no-op now.
|
||||
|
||||
* "git add -p" (and "patch" action in "git add -i") was broken when
|
||||
the first hunk that adds a line at the top was split into two and
|
||||
both halves are marked to be used.
|
||||
|
||||
* "git blame path" misbehaved at the commit where path became file
|
||||
from a directory with some files in it.
|
||||
|
||||
* "git for-each-ref" had a segfaulting bug when dealing with a tag object
|
||||
created by an ancient git.
|
||||
|
||||
* "git format-patch -k" still added patch numbers if format.numbered
|
||||
configuration was set.
|
||||
|
||||
* "git grep --color ''" did not terminate. The command also had
|
||||
subtle bugs with its -w option.
|
||||
|
||||
* http-push had a small use-after-free bug.
|
||||
|
||||
* "git push" was converting OFS_DELTA pack representation into less
|
||||
efficient REF_DELTA representation unconditionally upon transfer,
|
||||
making the transferred data unnecessarily larger.
|
||||
|
||||
* "git remote show origin" segfaulted when origin was still empty.
|
||||
|
||||
Many other general usability updates around help text, diagnostic messages
|
||||
and documentation are included as well.
|
38
Documentation/RelNotes/1.6.3.3.txt
Normal file
38
Documentation/RelNotes/1.6.3.3.txt
Normal file
|
@ -0,0 +1,38 @@
|
|||
GIT v1.6.3.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.3.2
|
||||
--------------------
|
||||
|
||||
* "git archive" running on Cygwin can get stuck in an infinite loop.
|
||||
|
||||
* "git daemon" did not correctly parse the initial line that carries
|
||||
virtual host request information.
|
||||
|
||||
* "git diff --textconv" leaked memory badly when the textconv filter
|
||||
errored out.
|
||||
|
||||
* The built-in regular expressions to pick function names to put on
|
||||
hunk header lines for java and objc were very inefficiently written.
|
||||
|
||||
* in certain error situations git-fetch (and git-clone) on Windows didn't
|
||||
detect connection abort and ended up waiting indefinitely.
|
||||
|
||||
* import-tars script (in contrib) did not import symbolic links correctly.
|
||||
|
||||
* http.c used CURLOPT_SSLKEY even on libcURL version 7.9.2, even though
|
||||
it was only available starting 7.9.3.
|
||||
|
||||
* low-level filelevel merge driver used return value from strdup()
|
||||
without checking if we ran out of memory.
|
||||
|
||||
* "git rebase -i" left stray closing parenthesis in its reflog message.
|
||||
|
||||
* "git remote show" did not show all the URLs associated with the named
|
||||
remote, even though "git remote -v" did. Made them consistent by
|
||||
making the former show all URLs.
|
||||
|
||||
* "whitespace" attribute that is set was meant to detect all errors known
|
||||
to git, but it told git to ignore trailing carriage-returns.
|
||||
|
||||
Includes other documentation fixes.
|
36
Documentation/RelNotes/1.6.3.4.txt
Normal file
36
Documentation/RelNotes/1.6.3.4.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
GIT v1.6.3.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.3.3
|
||||
--------------------
|
||||
|
||||
* "git add --no-ignore-errors" did not override configured
|
||||
add.ignore-errors configuration.
|
||||
|
||||
* "git apply --whitespace=fix" did not fix trailing whitespace on an
|
||||
incomplete line.
|
||||
|
||||
* "git branch" opened too many commit objects unnecessarily.
|
||||
|
||||
* "git checkout -f $commit" with a path that is a file (or a symlink) in
|
||||
the work tree to a commit that has a directory at the path issued an
|
||||
unnecessary error message.
|
||||
|
||||
* "git diff -c/--cc" was very inefficient in coalescing the removed lines
|
||||
shared between parents.
|
||||
|
||||
* "git diff -c/--cc" showed removed lines at the beginning of a file
|
||||
incorrectly.
|
||||
|
||||
* "git remote show nickname" did not honor configured
|
||||
remote.nickname.uploadpack when inspecting the branches at the remote.
|
||||
|
||||
* "git request-pull" when talking to the terminal for a preview
|
||||
showed some of the output in the pager.
|
||||
|
||||
* "git request-pull start nickname [end]" did not honor configured
|
||||
remote.nickname.uploadpack when it ran git-ls-remote against the remote
|
||||
repository to learn the current tip of branches.
|
||||
|
||||
Includes other documentation updates and minor fixes.
|
||||
|
182
Documentation/RelNotes/1.6.3.txt
Normal file
182
Documentation/RelNotes/1.6.3.txt
Normal file
|
@ -0,0 +1,182 @@
|
|||
GIT v1.6.3 Release Notes
|
||||
========================
|
||||
|
||||
With the next major release, "git push" into a branch that is
|
||||
currently checked out will be refused by default. You can choose
|
||||
what should happen upon such a push by setting the configuration
|
||||
variable receive.denyCurrentBranch in the receiving repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
For a similar reason, "git push $there :$killed" to delete the branch
|
||||
$killed in a remote repository $there, if $killed branch is the current
|
||||
branch pointed at by its HEAD, gets a large warning. You can choose what
|
||||
should happen upon such a push by setting the configuration variable
|
||||
receive.denyDeleteCurrent in the receiving repository.
|
||||
|
||||
When the user does not tell "git push" what to push, it has always
|
||||
pushed matching refs. For some people it is unexpected, and a new
|
||||
configuration variable push.default has been introduced to allow
|
||||
changing a different default behaviour. To advertise the new feature,
|
||||
a big warning is issued if this is not configured and a git push without
|
||||
arguments is attempted.
|
||||
|
||||
|
||||
Updates since v1.6.2
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* various git-svn updates.
|
||||
|
||||
* git-gui updates, including an update to Russian translation, and a
|
||||
fix to an infinite loop when showing an empty diff.
|
||||
|
||||
* gitk updates, including an update to Russian translation and improved Windows
|
||||
support.
|
||||
|
||||
(performance)
|
||||
|
||||
* many uses of lstat(2) in the codepath for "git checkout" have been
|
||||
optimized out.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* Boolean configuration variable yes/no can be written as on/off.
|
||||
|
||||
* rsync:/path/to/repo can be used to run git over rsync for local
|
||||
repositories. It may not be useful in practice; meant primarily for
|
||||
testing.
|
||||
|
||||
* http transport learned to prompt and use password when fetching from or
|
||||
pushing to http://user@host.xz/ URL.
|
||||
|
||||
* (msysgit) progress output that is sent over the sideband protocol can
|
||||
be handled appropriately in Windows console.
|
||||
|
||||
* "--pretty=<style>" option to the log family of commands can now be
|
||||
spelled as "--format=<style>". In addition, --format=%formatstring
|
||||
is a short-hand for --pretty=tformat:%formatstring.
|
||||
|
||||
* "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".
|
||||
|
||||
* "--graph" to the "git log" family can draw the commit ancestry graph
|
||||
in colors.
|
||||
|
||||
* If you realize that you botched the patch when you are editing hunks
|
||||
with the 'edit' action in git-add -i/-p, you can abort the editor to
|
||||
tell git not to apply it.
|
||||
|
||||
* @{-1} is a new way to refer to the last branch you were on introduced in
|
||||
1.6.2, but the initial implementation did not teach this to a few
|
||||
commands. Now the syntax works with "branch -m @{-1} newname".
|
||||
|
||||
* git-archive learned --output=<file> option.
|
||||
|
||||
* git-archive takes attributes from the tree being archived; strictly
|
||||
speaking, this is an incompatible behaviour change, but is a good one.
|
||||
Use --worktree-attributes option to allow it to read attributes from
|
||||
the work tree as before (deprecated git-tar tree command always reads
|
||||
attributes from the work tree).
|
||||
|
||||
* git-bisect shows not just the number of remaining commits whose goodness
|
||||
is unknown, but also shows the estimated number of remaining rounds.
|
||||
|
||||
* You can give --date=<format> option to git-blame.
|
||||
|
||||
* "git-branch -r" shows HEAD symref that points at a remote branch in
|
||||
interest of each tracked remote repository.
|
||||
|
||||
* "git-branch -v -v" is a new way to get list of names for branches and the
|
||||
"upstream" branch for them.
|
||||
|
||||
* git-config learned -e option to open an editor to edit the config file
|
||||
directly.
|
||||
|
||||
* git-clone runs post-checkout hook when run without --no-checkout.
|
||||
|
||||
* git-difftool is now part of the officially supported command, primarily
|
||||
maintained by David Aguilar.
|
||||
|
||||
* git-for-each-ref learned a new "upstream" token.
|
||||
|
||||
* git-format-patch can be told to use attachment with a new configuration,
|
||||
format.attach.
|
||||
|
||||
* git-format-patch can be told to produce deep or shallow message threads.
|
||||
|
||||
* git-format-patch can be told to always add sign-off with a configuration
|
||||
variable.
|
||||
|
||||
* git-format-patch learned format.headers configuration to add extra
|
||||
header fields to the output. This behaviour is similar to the existing
|
||||
--add-header=<header> option of the command.
|
||||
|
||||
* git-format-patch gives human readable names to the attached files, when
|
||||
told to send patches as attachments.
|
||||
|
||||
* git-grep learned to highlight the found substrings in color.
|
||||
|
||||
* git-imap-send learned to work around Thunderbird's inability to easily
|
||||
disable format=flowed with a new configuration, imap.preformattedHTML.
|
||||
|
||||
* git-rebase can be told to rebase the series even if your branch is a
|
||||
descendant of the commit you are rebasing onto with --force-rebase
|
||||
option.
|
||||
|
||||
* git-rebase can be told to report diffstat with the --stat option.
|
||||
|
||||
* Output from git-remote command has been vastly improved.
|
||||
|
||||
* "git remote update --prune $remote" updates from the named remote and
|
||||
then prunes stale tracking branches.
|
||||
|
||||
* git-send-email learned --confirm option to review the Cc: list before
|
||||
sending the messages out.
|
||||
|
||||
(developers)
|
||||
|
||||
* Test scripts can be run under valgrind.
|
||||
|
||||
* Test scripts can be run with installed git.
|
||||
|
||||
* Makefile learned 'coverage' option to run the test suites with
|
||||
coverage tracking enabled.
|
||||
|
||||
* Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now
|
||||
requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug.
|
||||
This workaround used to be enabled by default, but causes problems
|
||||
with newer versions of docbook-xsl. In addition, there are a few more
|
||||
knobs you can tweak to work around issues with various versions of the
|
||||
docbook-xsl package. See comments in Documentation/Makefile for details.
|
||||
|
||||
* Support for building and testing a subset of git on a system without a
|
||||
working perl has been improved.
|
||||
|
||||
|
||||
Fixes since v1.6.2
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.2.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
Here are fixes that this release has, but have not been backported to
|
||||
v1.6.2.X series.
|
||||
|
||||
* "git-apply" rejected a patch that swaps two files (i.e. renames A to B
|
||||
and B to A at the same time). May need to be backported by cherry
|
||||
picking d8c81df and then 7fac0ee).
|
||||
|
||||
* The initial checkout did not read the attributes from the .gitattribute
|
||||
file that is being checked out.
|
||||
|
||||
* git-gc spent excessive amount of time to decide if an object appears
|
||||
in a locally existing pack (if needed, backport by merging 69e020a).
|
46
Documentation/RelNotes/1.6.4.1.txt
Normal file
46
Documentation/RelNotes/1.6.4.1.txt
Normal file
|
@ -0,0 +1,46 @@
|
|||
GIT v1.6.4.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.4
|
||||
------------------
|
||||
|
||||
* An unquoted value in the configuration file, when it contains more than
|
||||
one whitespaces in a row, got them replaced with a single space.
|
||||
|
||||
* "git am" used to accept a single piece of e-mail per file (not a mbox)
|
||||
as its input, but multiple input format support in v1.6.4 broke it.
|
||||
Apparently many people have been depending on this feature.
|
||||
|
||||
* The short help text for "git filter-branch" command was a single long
|
||||
line, wrapped by terminals, and was hard to read.
|
||||
|
||||
* The "recursive" strategy of "git merge" segfaulted when a merge has
|
||||
more than one merge-bases, and merging of these merge-bases involves
|
||||
a rename/rename or a rename/add conflict.
|
||||
|
||||
* "git pull --rebase" did not use the right fork point when the
|
||||
repository has already fetched from the upstream that rewinds the
|
||||
branch it is based on in an earlier fetch.
|
||||
|
||||
* Explain the concept of fast-forward more fully in "git push"
|
||||
documentation, and hint to refer to it from an error message when the
|
||||
command refuses an update to protect the user.
|
||||
|
||||
* The default value for pack.deltacachesize, used by "git repack", is now
|
||||
256M, instead of unbounded. Otherwise a repack of a moderately sized
|
||||
repository would needlessly eat into swap.
|
||||
|
||||
* Document how "git repack" (hence "git gc") interacts with a repository
|
||||
that borrows its objects from other repositories (e.g. ones created by
|
||||
"git clone -s").
|
||||
|
||||
* "git show" on an annotated tag lacked a delimiting blank line between
|
||||
the tag itself and the contents of the object it tags.
|
||||
|
||||
* "git verify-pack -v" erroneously reported number of objects with too
|
||||
deep delta depths as "chain length 0" objects.
|
||||
|
||||
* Long names of authors and committers outside US-ASCII were sometimes
|
||||
incorrectly shown in "gitweb".
|
||||
|
||||
Other minor documentation updates are included.
|
32
Documentation/RelNotes/1.6.4.2.txt
Normal file
32
Documentation/RelNotes/1.6.4.2.txt
Normal file
|
@ -0,0 +1,32 @@
|
|||
GIT v1.6.4.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.4.1
|
||||
--------------------
|
||||
|
||||
* --date=relative output between 1 and 5 years ago rounded the number of
|
||||
years when saying X years Y months ago, instead of rounding it down.
|
||||
|
||||
* "git add -p" did not handle changes in executable bits correctly
|
||||
(a regression around 1.6.3).
|
||||
|
||||
* "git apply" did not honor GNU diff's convention to mark the creation/deletion
|
||||
event with UNIX epoch timestamp on missing side.
|
||||
|
||||
* "git checkout" incorrectly removed files in a directory pointed by a
|
||||
symbolic link during a branch switch that replaces a directory with
|
||||
a symbolic link.
|
||||
|
||||
* "git clean -d -f" happily descended into a subdirectory that is managed by a
|
||||
separate git repository. It now requires two -f options for safety.
|
||||
|
||||
* "git fetch/push" over http transports had two rather grave bugs.
|
||||
|
||||
* "git format-patch --cover-letter" did not prepare the cover letter file
|
||||
for use with non-ASCII strings when there are the series contributors with
|
||||
non-ASCII names.
|
||||
|
||||
* "git pull origin branch" and "git fetch origin && git merge origin/branch"
|
||||
left different merge messages in the resulting commit.
|
||||
|
||||
Other minor documentation updates are included.
|
29
Documentation/RelNotes/1.6.4.3.txt
Normal file
29
Documentation/RelNotes/1.6.4.3.txt
Normal file
|
@ -0,0 +1,29 @@
|
|||
GIT v1.6.4.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.4.2
|
||||
--------------------
|
||||
|
||||
* "git clone" from an empty repository gave unnecessary error message,
|
||||
even though it did everything else correctly.
|
||||
|
||||
* "git cvsserver" invoked git commands via "git-foo" style, which has long
|
||||
been deprecated.
|
||||
|
||||
* "git fetch" and "git clone" had an extra sanity check to verify the
|
||||
presence of the corresponding *.pack file before downloading *.idx
|
||||
file by issuing a HEAD request. Github server however sometimes
|
||||
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
|
||||
clone over HTTP from some of their repositories. As a workaround, this
|
||||
verification has been removed (as it is not absolutely necessary).
|
||||
|
||||
* "git grep" did not like relative pathname to refer outside the current
|
||||
directory when run from a subdirectory.
|
||||
|
||||
* an error message from "git push" was formatted in a very ugly way.
|
||||
|
||||
* "git svn" did not quote the subversion user name correctly when
|
||||
running its author-prog helper program.
|
||||
|
||||
Other minor documentation updates are included.
|
26
Documentation/RelNotes/1.6.4.4.txt
Normal file
26
Documentation/RelNotes/1.6.4.4.txt
Normal file
|
@ -0,0 +1,26 @@
|
|||
GIT v1.6.4.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.4.4
|
||||
--------------------
|
||||
|
||||
* The workaround for Github server that sometimes gave 500 (Internal server
|
||||
error) response to HEAD requests in 1.6.4.3 introduced a regression that
|
||||
caused re-fetching projects over http to segfault in certain cases due
|
||||
to uninitialized pointer being freed.
|
||||
|
||||
* "git pull" on an unborn branch used to consider anything in the work
|
||||
tree and the index discardable.
|
||||
|
||||
* "git diff -b/w" did not work well on the incomplete line at the end of
|
||||
the file, due to an incorrect hashing of lines in the low-level xdiff
|
||||
routines.
|
||||
|
||||
* "git checkout-index --prefix=$somewhere" used to work when $somewhere is
|
||||
a symbolic link to a directory elsewhere, but v1.6.4.2 broke it.
|
||||
|
||||
* "git unpack-objects --strict", invoked when receive.fsckobjects
|
||||
configuration is set in the receiving repository of "git push", did not
|
||||
properly check the objects, especially the submodule links, it received.
|
||||
|
||||
Other minor documentation updates are included.
|
20
Documentation/RelNotes/1.6.4.5.txt
Normal file
20
Documentation/RelNotes/1.6.4.5.txt
Normal 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.
|
147
Documentation/RelNotes/1.6.4.txt
Normal file
147
Documentation/RelNotes/1.6.4.txt
Normal file
|
@ -0,0 +1,147 @@
|
|||
GIT v1.6.4 Release Notes
|
||||
========================
|
||||
|
||||
With the next major release, "git push" into a branch that is
|
||||
currently checked out will be refused by default. You can choose
|
||||
what should happen upon such a push by setting the configuration
|
||||
variable receive.denyCurrentBranch in the receiving repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
For a similar reason, "git push $there :$killed" to delete the branch
|
||||
$killed in a remote repository $there, if $killed branch is the current
|
||||
branch pointed at by its HEAD, gets a large warning. You can choose what
|
||||
should happen upon such a push by setting the configuration variable
|
||||
receive.denyDeleteCurrent in the receiving repository.
|
||||
|
||||
|
||||
Updates since v1.6.3
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* gitweb Perl style clean-up.
|
||||
|
||||
* git-svn updates, including a new --authors-prog option to map author
|
||||
names by invoking an external program, 'git svn reset' to unwind
|
||||
'git svn fetch', support for more than one branches, documenting
|
||||
of the useful --minimize-url feature, new "git svn gc" command, etc.
|
||||
|
||||
(portability)
|
||||
|
||||
* We feed iconv with "UTF-8" instead of "utf8"; the former is
|
||||
understood more widely. Similarly updated test scripts to use
|
||||
encoding names more widely understood (e.g. use "ISO8859-1" instead
|
||||
of "ISO-8859-1").
|
||||
|
||||
* Various portability fixes/workarounds for different vintages of
|
||||
SunOS, IRIX, and Windows.
|
||||
|
||||
* Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.
|
||||
|
||||
(performance)
|
||||
|
||||
* Many repeated use of lstat() are optimized out in "checkout" codepath.
|
||||
|
||||
* git-status (and underlying git-diff-index --cached) are optimized
|
||||
to take advantage of cache-tree information in the index.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* "git add --edit" lets users edit the whole patch text to fine-tune what
|
||||
is added to the index.
|
||||
|
||||
* "git am" accepts StGIT series file as its input.
|
||||
|
||||
* "git bisect skip" skips to a more randomly chosen place in the hope
|
||||
to avoid testing a commit that is too close to a commit that is
|
||||
already known to be untestable.
|
||||
|
||||
* "git cvsexportcommit" learned -k option to stop CVS keywords expansion
|
||||
|
||||
* "git fast-export" learned to handle history simplification more
|
||||
gracefully.
|
||||
|
||||
* "git fast-export" learned an option --tag-of-filtered-object to handle
|
||||
dangling tags resulting from history simplification more usefully.
|
||||
|
||||
* "git grep" learned -p option to show the location of the match using the
|
||||
same context hunk marker "git diff" uses.
|
||||
|
||||
* https transport can optionally be told that the used client
|
||||
certificate is password protected, in which case it asks the
|
||||
password only once.
|
||||
|
||||
* "git imap-send" is IPv6 aware.
|
||||
|
||||
* "git log --graph" draws graphs more compactly by using horizontal lines
|
||||
when able.
|
||||
|
||||
* "git log --decorate" shows shorter refnames by stripping well-known
|
||||
refs/* prefix.
|
||||
|
||||
* "git push $name" honors remote.$name.pushurl if present before
|
||||
using remote.$name.url. In other words, the URL used for fetching
|
||||
and pushing can be different.
|
||||
|
||||
* "git send-email" understands quoted aliases in .mailrc files (might
|
||||
have to be backported to 1.6.3.X).
|
||||
|
||||
* "git send-email" can fetch the sender address from the configuration
|
||||
variable "sendmail.from" (and "sendmail.<identity>.from").
|
||||
|
||||
* "git show-branch" can color its output.
|
||||
|
||||
* "add" and "update" subcommands to "git submodule" learned --reference
|
||||
option to use local clone with references.
|
||||
|
||||
* "git submodule update" learned --rebase option to update checked
|
||||
out submodules by rebasing the local changes.
|
||||
|
||||
* "gitweb" can optionally use gravatar to adorn author/committer names.
|
||||
|
||||
(developers)
|
||||
|
||||
* A major part of the "git bisect" wrapper has moved to C.
|
||||
|
||||
* Formatting with the new version of AsciiDoc 8.4.1 is now supported.
|
||||
|
||||
Fixes since v1.6.3
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.3.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
Here are fixes that this release has, but have not been backported to
|
||||
v1.6.3.X series.
|
||||
|
||||
* "git diff-tree -r -t" used to omit new or removed directories from
|
||||
the output. df533f3 (diff-tree -r -t: include added/removed
|
||||
directories in the output, 2009-06-13) may need to be cherry-picked
|
||||
to backport this fix.
|
||||
|
||||
* The way Git.pm sets up a Repository object was not friendly to callers
|
||||
that chdir around. It now internally records the repository location
|
||||
as an absolute path when autodetected.
|
||||
|
||||
* Removing a section with "git config --remove-section", when its
|
||||
section header has a variable definition on the same line, lost
|
||||
that variable definition.
|
||||
|
||||
* "git rebase -p --onto" used to always leave side branches of a merge
|
||||
intact, even when both branches are subject to rewriting.
|
||||
|
||||
* "git repack" used to faithfully follow grafts and considered true
|
||||
parents recorded in the commit object unreachable from the commit.
|
||||
After such a repacking, you cannot remove grafts without corrupting
|
||||
the repository.
|
||||
|
||||
* "git send-email" did not detect erroneous loops in alias expansion.
|
20
Documentation/RelNotes/1.6.5.1.txt
Normal file
20
Documentation/RelNotes/1.6.5.1.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
GIT v1.6.5.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5
|
||||
------------------
|
||||
|
||||
* An corrupt pack could make codepath to read objects into an
|
||||
infinite loop.
|
||||
|
||||
* Download throughput display was always shown in KiB/s but on fast links
|
||||
it is more appropriate to show it in MiB/s.
|
||||
|
||||
* "git grep -f filename" used uninitialized variable and segfaulted.
|
||||
|
||||
* "git clone -b branch" gave a wrong commit object name to post-checkout
|
||||
hook.
|
||||
|
||||
* "git pull" over http did not work on msys.
|
||||
|
||||
Other minor documentation updates are included.
|
19
Documentation/RelNotes/1.6.5.2.txt
Normal file
19
Documentation/RelNotes/1.6.5.2.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
GIT v1.6.5.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.1
|
||||
--------------------
|
||||
|
||||
* Installation of templates triggered a bug in busybox when using tar
|
||||
implementation from it.
|
||||
|
||||
* "git add -i" incorrectly ignored paths that are already in the index
|
||||
if they matched .gitignore patterns.
|
||||
|
||||
* "git describe --always" should have produced some output even there
|
||||
were no tags in the repository, but it didn't.
|
||||
|
||||
* "git ls-files" when showing tracked files incorrectly paid attention
|
||||
to the exclude patterns.
|
||||
|
||||
Other minor documentation updates are included.
|
63
Documentation/RelNotes/1.6.5.3.txt
Normal file
63
Documentation/RelNotes/1.6.5.3.txt
Normal file
|
@ -0,0 +1,63 @@
|
|||
Git v1.6.5.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.2
|
||||
--------------------
|
||||
|
||||
* info/grafts file didn't ignore trailing CR at the end of lines.
|
||||
|
||||
* Packages generated on newer FC were unreadable by older versions of
|
||||
RPM as the new default is to use stronger hash.
|
||||
|
||||
* output from "git blame" was unreadable when the file ended in an
|
||||
incomplete line.
|
||||
|
||||
* "git add -i/-p" didn't handle deletion of empty files correctly.
|
||||
|
||||
* "git clone" takes up to two parameters, but did not complain when
|
||||
given more arguments than necessary and silently ignored them.
|
||||
|
||||
* "git cvsimport" did not read files given as command line arguments
|
||||
correctly when it is run from a subdirectory.
|
||||
|
||||
* "git diff --color-words -U0" didn't work correctly.
|
||||
|
||||
* The handling of blank lines at the end of file by "git diff/apply
|
||||
--whitespace" was inconsistent with the other kinds of errors.
|
||||
They are now colored, warned against, and fixed the same way as others.
|
||||
|
||||
* There was no way to allow blank lines at the end of file without
|
||||
allowing extra blanks at the end of lines. You can use blank-at-eof
|
||||
and blank-at-eol whitespace error class to specify them separately.
|
||||
The old trailing-space error class is now a short-hand to set both.
|
||||
|
||||
* "-p" option to "git format-patch" was supposed to suppress diffstat
|
||||
generation, but it was broken since 1.6.1.
|
||||
|
||||
* "git imap-send" did not compile cleanly with newer OpenSSL.
|
||||
|
||||
* "git help -a" outside of a git repository was broken.
|
||||
|
||||
* "git ls-files -i" was supposed to be inverse of "git ls-files" without -i
|
||||
with respect to exclude patterns, but it was broken since 1.6.5.2.
|
||||
|
||||
* "git ls-remote" outside of a git repository over http was broken.
|
||||
|
||||
* "git rebase -i" gave bogus error message when the command word was
|
||||
misspelled.
|
||||
|
||||
* "git receive-pack" that is run in response to "git push" did not run
|
||||
garbage collection nor update-server-info, but in larger hosting sites,
|
||||
these almost always need to be run. To help site administrators, the
|
||||
command now runs "gc --auto" and "u-s-i" by setting receive.autogc
|
||||
and receive.updateserverinfo configuration variables, respectively.
|
||||
|
||||
* Release notes spelled the package name with incorrect capitalization.
|
||||
|
||||
* "gitweb" did not escape non-ascii characters correctly in the URL.
|
||||
|
||||
* "gitweb" showed "patch" link even for merge commits.
|
||||
|
||||
* "gitweb" showed incorrect links for blob line numbers in pathinfo mode.
|
||||
|
||||
Other minor documentation updates are included.
|
32
Documentation/RelNotes/1.6.5.4.txt
Normal file
32
Documentation/RelNotes/1.6.5.4.txt
Normal file
|
@ -0,0 +1,32 @@
|
|||
Git v1.6.5.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.3
|
||||
--------------------
|
||||
|
||||
* "git help" (without argument) used to check if you are in a directory
|
||||
under git control. There was no breakage in behaviour per-se, but this
|
||||
was unnecessary.
|
||||
|
||||
* "git prune-packed" gave progress output even when its standard error is
|
||||
not connected to a terminal; this caused cron jobs that run it to
|
||||
produce crufts.
|
||||
|
||||
* "git pack-objects --all-progress" is an option to ask progress output
|
||||
from write-object phase _if_ progress output were to be produced, and
|
||||
shouldn't have forced the progress output.
|
||||
|
||||
* "git apply -p<n> --directory=<elsewhere>" did not work well for a
|
||||
non-default value of n.
|
||||
|
||||
* "git merge foo HEAD" was misparsed as an old-style invocation of the
|
||||
command and produced a confusing error message. As it does not specify
|
||||
any other branch to merge, it shouldn't be mistaken as such. We will
|
||||
remove the old style "git merge <message> HEAD <commit>..." syntax in
|
||||
future versions, but not in this release,
|
||||
|
||||
* "git merge -m <message> <branch>..." added the standard merge message
|
||||
on its own after user-supplied message, which should have overridden the
|
||||
standard one.
|
||||
|
||||
Other minor documentation updates are included.
|
49
Documentation/RelNotes/1.6.5.5.txt
Normal file
49
Documentation/RelNotes/1.6.5.5.txt
Normal file
|
@ -0,0 +1,49 @@
|
|||
Git v1.6.5.5 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.4
|
||||
--------------------
|
||||
|
||||
* Manual pages can be formatted with older xmlto again.
|
||||
|
||||
* GREP_OPTIONS exported from user's environment could have broken
|
||||
our scripted commands.
|
||||
|
||||
* In configuration files, a few variables that name paths can begin with
|
||||
~/ and ~username/ and they are expanded as expected. This is not a
|
||||
bugfix but 1.6.6 will have this and without backporting users cannot
|
||||
easily use the same ~/.gitconfig across versions.
|
||||
|
||||
* "git diff -B -M" did the same computation to hash lines of contents
|
||||
twice, and held onto memory after it has used the data in it
|
||||
unnecessarily before it freed.
|
||||
|
||||
* "git diff -B" and "git diff --dirstat" was not counting newly added
|
||||
contents correctly.
|
||||
|
||||
* "git format-patch revisions... -- path" issued an incorrect error
|
||||
message that suggested to use "--" on the command line when path
|
||||
does not exist in the current work tree (it is a separate matter if
|
||||
it makes sense to limit format-patch with pathspecs like that
|
||||
without using the --full-diff option).
|
||||
|
||||
* "git grep -F -i StRiNg" did not work as expected.
|
||||
|
||||
* Enumeration of available merge strategies iterated over the list of
|
||||
commands in a wrong way, sometimes producing an incorrect result.
|
||||
|
||||
* "git shortlog" did not honor the "encoding" header embedded in the
|
||||
commit object like "git log" did.
|
||||
|
||||
* Reading progress messages that come from the remote side while running
|
||||
"git pull" is given precedence over reading the actual pack data to
|
||||
prevent garbled progress message on the user's terminal.
|
||||
|
||||
* "git rebase" got confused when the log message began with certain
|
||||
strings that looked like Subject:, Date: or From: header.
|
||||
|
||||
* "git reset" accidentally run in .git/ directory checked out the
|
||||
work tree contents in there.
|
||||
|
||||
|
||||
Other minor documentation updates are included.
|
23
Documentation/RelNotes/1.6.5.6.txt
Normal file
23
Documentation/RelNotes/1.6.5.6.txt
Normal file
|
@ -0,0 +1,23 @@
|
|||
Git v1.6.5.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.5
|
||||
--------------------
|
||||
|
||||
* "git add -p" had a regression since v1.6.5.3 that broke deletion of
|
||||
non-empty files.
|
||||
|
||||
* "git archive -o o.zip -- Makefile" produced an archive in o.zip
|
||||
but in POSIX tar format.
|
||||
|
||||
* Error message given to "git pull --rebase" when the user didn't give
|
||||
enough clue as to what branch to integrate with still talked about
|
||||
"merging with" the branch.
|
||||
|
||||
* Error messages given by "git merge" when the merge resulted in a
|
||||
fast-forward still were in plumbing lingo, even though in v1.6.5
|
||||
we reworded messages in other cases.
|
||||
|
||||
* The post-upload-hook run by upload-pack in response to "git fetch" has
|
||||
been removed, due to security concerns (the hook first appeared in
|
||||
1.6.5).
|
19
Documentation/RelNotes/1.6.5.7.txt
Normal file
19
Documentation/RelNotes/1.6.5.7.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
Git v1.6.5.7 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.6
|
||||
--------------------
|
||||
|
||||
* If a user specifies a color for a <slot> (i.e. a class of things to show
|
||||
in a particular color) that is known only by newer versions of git
|
||||
(e.g. "color.diff.func" was recently added for upcoming 1.6.6 release),
|
||||
an older version of git should just ignore them. Instead we diagnosed
|
||||
it as an error.
|
||||
|
||||
* With help.autocorrect set to non-zero value, the logic to guess typos
|
||||
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
|
||||
repository, e.g. "rev-list HEAD -- /home", the code tried to run
|
||||
strlen() on NULL, which is the result of get_git_work_tree(), and
|
||||
segfaulted.
|
28
Documentation/RelNotes/1.6.5.8.txt
Normal file
28
Documentation/RelNotes/1.6.5.8.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
Git v1.6.5.8 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5.7
|
||||
--------------------
|
||||
|
||||
* "git count-objects" did not handle packfiles that are bigger than 4G on
|
||||
platforms with 32-bit off_t.
|
||||
|
||||
* "git rebase -i" did not abort cleanly if it failed to launch the editor.
|
||||
|
||||
* "git blame" did not work well when commit lacked the author name.
|
||||
|
||||
* "git fast-import" choked when handling a tag that points at an object
|
||||
that is not a commit.
|
||||
|
||||
* "git reset --hard" did not work correctly when GIT_WORK_TREE environment
|
||||
variable is used to point at the root of the true work tree.
|
||||
|
||||
* "git grep" fed a buffer that is not NUL-terminated to underlying
|
||||
regexec().
|
||||
|
||||
* "git checkout -m other" while on a branch that does not have any commit
|
||||
segfaulted, instead of failing.
|
||||
|
||||
* "git branch -a other" should have diagnosed the command as an error.
|
||||
|
||||
Other minor documentation updates are also included.
|
18
Documentation/RelNotes/1.6.5.9.txt
Normal file
18
Documentation/RelNotes/1.6.5.9.txt
Normal 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.
|
169
Documentation/RelNotes/1.6.5.txt
Normal file
169
Documentation/RelNotes/1.6.5.txt
Normal file
|
@ -0,0 +1,169 @@
|
|||
GIT v1.6.5 Release Notes
|
||||
========================
|
||||
|
||||
In git 1.7.0, which was planned to be the release after 1.6.5, "git
|
||||
push" into a branch that is currently checked out will be refused by
|
||||
default.
|
||||
|
||||
You can choose what should happen upon such a push by setting the
|
||||
configuration variable receive.denyCurrentBranch in the receiving
|
||||
repository.
|
||||
|
||||
Also, "git push $there :$killed" to delete the branch $killed in a remote
|
||||
repository $there, when $killed branch is the current branch pointed at by
|
||||
its HEAD, will be refused by default.
|
||||
|
||||
You can choose what should happen upon such a push by setting the
|
||||
configuration variable receive.denyDeleteCurrent in the receiving
|
||||
repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
Updates since v1.6.4
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* various updates to gitk, git-svn and gitweb.
|
||||
|
||||
(portability)
|
||||
|
||||
* more improvements on mingw port.
|
||||
|
||||
* mingw will also give FRSX as the default value for the LESS
|
||||
environment variable when the user does not have one.
|
||||
|
||||
* initial support to compile git on Windows with MSVC.
|
||||
|
||||
(performance)
|
||||
|
||||
* On major platforms, the system can be compiled to use with Linus's
|
||||
block-sha1 implementation of the SHA-1 hash algorithm, which
|
||||
outperforms the default fallback implementation we borrowed from
|
||||
Mozilla.
|
||||
|
||||
* Unnecessary inefficiency in deepening of a shallow repository has
|
||||
been removed.
|
||||
|
||||
* "git clone" does not grab objects that it does not need (i.e.
|
||||
referenced only from refs outside refs/heads and refs/tags
|
||||
hierarchy) anymore.
|
||||
|
||||
* The "git" main binary used to link with libcurl, which then dragged
|
||||
in a large number of external libraries. When using basic plumbing
|
||||
commands in scripts, this unnecessarily slowed things down. We now
|
||||
implement http/https/ftp transfer as a separate executable as we
|
||||
used to.
|
||||
|
||||
* "git clone" run locally hardlinks or copies the files in .git/ to
|
||||
newly created repository. It used to give new mtime to copied files,
|
||||
but this delayed garbage collection to trigger unnecessarily in the
|
||||
cloned repository. We now preserve mtime for these files to avoid
|
||||
this issue.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* Human writable date format to various options, e.g. --since=yesterday,
|
||||
master@{2000.09.17}, are taught to infer some omitted input properly.
|
||||
|
||||
* A few programs gave verbose "advice" messages to help uninitiated
|
||||
people when issuing error messages. An infrastructure to allow
|
||||
users to squelch them has been introduced, and a few such messages
|
||||
can be silenced now.
|
||||
|
||||
* refs/replace/ hierarchy is designed to be usable as a replacement
|
||||
of the "grafts" mechanism, with the added advantage that it can be
|
||||
transferred across repositories.
|
||||
|
||||
* "git am" learned to optionally ignore whitespace differences.
|
||||
|
||||
* "git am" handles input e-mail files that has CRLF line endings sensibly.
|
||||
|
||||
* "git am" learned "--scissors" option to allow you to discard early part
|
||||
of an incoming e-mail.
|
||||
|
||||
* "git archive -o output.zip" works without being told what format to
|
||||
use with an explicit "--format=zip".option.
|
||||
|
||||
* "git checkout", "git reset" and "git stash" learned to pick and
|
||||
choose to use selected changes you made, similar to "git add -p".
|
||||
|
||||
* "git clone" learned a "-b" option to pick a HEAD to check out
|
||||
different from the remote's default branch.
|
||||
|
||||
* "git clone" learned --recursive option.
|
||||
|
||||
* "git clone" from a local repository on a different filesystem used to
|
||||
copy individual object files without preserving the old timestamp, giving
|
||||
them extra lifetime in the new repository until they gc'ed.
|
||||
|
||||
* "git commit --dry-run $args" is a new recommended way to ask "what would
|
||||
happen if I try to commit with these arguments."
|
||||
|
||||
* "git commit --dry-run" and "git status" shows conflicted paths in a
|
||||
separate section to make them easier to spot during a merge.
|
||||
|
||||
* "git cvsimport" now supports password-protected pserver access even
|
||||
when the password is not taken from ~/.cvspass file.
|
||||
|
||||
* "git fast-export" learned --no-data option that can be useful when
|
||||
reordering commits and trees without touching the contents of
|
||||
blobs.
|
||||
|
||||
* "git fast-import" has a pair of new front-end in contrib/ area.
|
||||
|
||||
* "git init" learned to mkdir/chdir into a directory when given an
|
||||
extra argument (i.e. "git init this").
|
||||
|
||||
* "git instaweb" optionally can use mongoose as the web server.
|
||||
|
||||
* "git log --decorate" can optionally be told with --decorate=full to
|
||||
give the reference name in full.
|
||||
|
||||
* "git merge" issued an unnecessarily scary message when it detected
|
||||
that the merge may have to touch the path that the user has local
|
||||
uncommitted changes to. The message has been reworded to make it
|
||||
clear that the command aborted, without doing any harm.
|
||||
|
||||
* "git push" can be told to be --quiet.
|
||||
|
||||
* "git push" pays attention to url.$base.pushInsteadOf and uses a URL
|
||||
that is derived from the URL used for fetching.
|
||||
|
||||
* informational output from "git reset" that lists the locally modified
|
||||
paths is made consistent with that of "git checkout $another_branch".
|
||||
|
||||
* "git submodule" learned to give submodule name to scripts run with
|
||||
"foreach" subcommand.
|
||||
|
||||
* various subcommands to "git submodule" learned --recursive option.
|
||||
|
||||
* "git submodule summary" learned --files option to compare the work
|
||||
tree vs the commit bound at submodule path, instead of comparing
|
||||
the index.
|
||||
|
||||
* "git upload-pack", which is the server side support for "git clone" and
|
||||
"git fetch", can call a new post-upload-pack hook for statistics purposes.
|
||||
|
||||
(developers)
|
||||
|
||||
* With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
|
||||
source directory; using tmpfs may give faster turnaround.
|
||||
|
||||
* With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
|
||||
build for one location, and install into another location to tar it
|
||||
up.
|
||||
|
||||
Fixes since v1.6.4
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.4.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
37
Documentation/RelNotes/1.6.6.1.txt
Normal file
37
Documentation/RelNotes/1.6.6.1.txt
Normal file
|
@ -0,0 +1,37 @@
|
|||
Git v1.6.6.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.6
|
||||
------------------
|
||||
|
||||
* "git blame" did not work well when commit lacked the author name.
|
||||
|
||||
* "git branch -a name" wasn't diagnosed as an error.
|
||||
|
||||
* "git count-objects" did not handle packfiles that are bigger than 4G on
|
||||
platforms with 32-bit off_t.
|
||||
|
||||
* "git checkout -m other" while on a branch that does not have any commit
|
||||
segfaulted, instead of failing.
|
||||
|
||||
* "git fast-import" choked when fed a tag that do not point at a
|
||||
commit.
|
||||
|
||||
* "git grep" finding from work tree files could have fed garbage to
|
||||
the underlying regexec(3).
|
||||
|
||||
* "git grep -L" didn't show empty files (they should never match, and
|
||||
they should always appear in -L output as unmatching).
|
||||
|
||||
* "git rebase -i" did not abort cleanly if it failed to launch the editor.
|
||||
|
||||
* "git reset --hard" did not work correctly when GIT_WORK_TREE environment
|
||||
variable is used to point at the root of the true work tree.
|
||||
|
||||
* http-backend was not listed in the command list in the documentation.
|
||||
|
||||
* Building on FreeBSD (both 7 and 8) needs OLD_ICONV set in the Makefile
|
||||
|
||||
* "git checkout -m some-branch" while on an unborn branch crashed.
|
||||
|
||||
Other minor documentation updates are included.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue