From: Junio C Hamano Date: Wed, 29 Sep 2010 22:26:12 +0000 (-0700) Subject: Merge branch 'tr/send-email-refuse-sending-unedited-cover-letter' X-Git-Tag: v1.7.4-rc0~197 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/b886656403ed26a9a78f73724c640a3149636ada?hp=a03bc5b6ad4ada4eb0669289429a9bc21ff6cdb0 Merge branch 'tr/send-email-refuse-sending-unedited-cover-letter' * tr/send-email-refuse-sending-unedited-cover-letter: send-email: Refuse to send cover-letter template subject --- diff --git a/.gitignore b/.gitignore index fcdd822d8a..20560b810b 100644 --- a/.gitignore +++ b/.gitignore @@ -166,12 +166,17 @@ /test-dump-cache-tree /test-genrandom /test-index-version +/test-line-buffer /test-match-trees +/test-obj-pool /test-parse-options /test-path-utils /test-run-command /test-sha1 /test-sigchain +/test-string-pool +/test-svn-fe +/test-treap /common-cmds.h *.tar.gz *.dsc @@ -181,6 +186,12 @@ *.[aos] *.py[co] .depend/ +*.gcda +*.gcno +*.gcov +/coverage-untested-functions +/cover_db/ +/cover_db_html/ *+ /config.mak /autom4te.cache diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index b8bf618a30..8346c1972b 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -43,6 +43,10 @@ For shell scripts specifically (not exhaustive): - 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). + - No "Substring Expansion" ${parameter:offset:length}. - No shell arrays. diff --git a/Documentation/Makefile b/Documentation/Makefile index a4c4063e50..e117bc4315 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -279,7 +279,7 @@ $(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt XSLT = docbook.xsl XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css -user-manual.html: user-manual.xml +user-manual.html: user-manual.xml $(XSLT) $(QUIET_XSLTPROC)$(RM) $@+ $@ && \ xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \ mv $@+ $@ diff --git a/Documentation/RelNotes-1.5.0.1.txt b/Documentation/RelNotes-1.5.0.1.txt deleted file mode 100644 index fea3f9935b..0000000000 --- a/Documentation/RelNotes-1.5.0.1.txt +++ /dev/null @@ -1,42 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.0.2.txt b/Documentation/RelNotes-1.5.0.2.txt deleted file mode 100644 index b061e50ff0..0000000000 --- a/Documentation/RelNotes-1.5.0.2.txt +++ /dev/null @@ -1,65 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.0.3.txt b/Documentation/RelNotes-1.5.0.3.txt deleted file mode 100644 index cd500f96bf..0000000000 --- a/Documentation/RelNotes-1.5.0.3.txt +++ /dev/null @@ -1,58 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.0.4.txt b/Documentation/RelNotes-1.5.0.4.txt deleted file mode 100644 index feefa5dfd4..0000000000 --- a/Documentation/RelNotes-1.5.0.4.txt +++ /dev/null @@ -1,22 +0,0 @@ -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 diff --git a/Documentation/RelNotes-1.5.0.5.txt b/Documentation/RelNotes-1.5.0.5.txt deleted file mode 100644 index eeec3d73d0..0000000000 --- a/Documentation/RelNotes-1.5.0.5.txt +++ /dev/null @@ -1,26 +0,0 @@ -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 diff --git a/Documentation/RelNotes-1.5.0.6.txt b/Documentation/RelNotes-1.5.0.6.txt deleted file mode 100644 index c02015ad5f..0000000000 --- a/Documentation/RelNotes-1.5.0.6.txt +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.0.7.txt b/Documentation/RelNotes-1.5.0.7.txt deleted file mode 100644 index 670ad32b85..0000000000 --- a/Documentation/RelNotes-1.5.0.7.txt +++ /dev/null @@ -1,18 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.0.txt b/Documentation/RelNotes-1.5.0.txt deleted file mode 100644 index daf4bdb0d7..0000000000 --- a/Documentation/RelNotes-1.5.0.txt +++ /dev/null @@ -1,469 +0,0 @@ -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 used to refuse to commit if 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 ... 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 :refs/heads/" 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=", - 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. diff --git a/Documentation/RelNotes-1.5.1.1.txt b/Documentation/RelNotes-1.5.1.1.txt deleted file mode 100644 index 91471213bd..0000000000 --- a/Documentation/RelNotes-1.5.1.1.txt +++ /dev/null @@ -1,65 +0,0 @@ -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 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. diff --git a/Documentation/RelNotes-1.5.1.2.txt b/Documentation/RelNotes-1.5.1.2.txt deleted file mode 100644 index d88456306c..0000000000 --- a/Documentation/RelNotes-1.5.1.2.txt +++ /dev/null @@ -1,50 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.1.3.txt b/Documentation/RelNotes-1.5.1.3.txt deleted file mode 100644 index 876408b65a..0000000000 --- a/Documentation/RelNotes-1.5.1.3.txt +++ /dev/null @@ -1,45 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.1.4.txt b/Documentation/RelNotes-1.5.1.4.txt deleted file mode 100644 index df2f66ccb5..0000000000 --- a/Documentation/RelNotes-1.5.1.4.txt +++ /dev/null @@ -1,30 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.1.5.txt b/Documentation/RelNotes-1.5.1.5.txt deleted file mode 100644 index b0ab8eb371..0000000000 --- a/Documentation/RelNotes-1.5.1.5.txt +++ /dev/null @@ -1,42 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.1.6.txt b/Documentation/RelNotes-1.5.1.6.txt deleted file mode 100644 index 55f3ac13e3..0000000000 --- a/Documentation/RelNotes-1.5.1.6.txt +++ /dev/null @@ -1,45 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.1.txt b/Documentation/RelNotes-1.5.1.txt deleted file mode 100644 index daed367270..0000000000 --- a/Documentation/RelNotes-1.5.1.txt +++ /dev/null @@ -1,371 +0,0 @@ -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:" 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=, 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 ':/' 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 option. A patch that is not - relative to the toplevel needs to be applied with -p - 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. diff --git a/Documentation/RelNotes-1.5.2.1.txt b/Documentation/RelNotes-1.5.2.1.txt deleted file mode 100644 index ebf20e22a7..0000000000 --- a/Documentation/RelNotes-1.5.2.1.txt +++ /dev/null @@ -1,53 +0,0 @@ -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 diff --git a/Documentation/RelNotes-1.5.2.2.txt b/Documentation/RelNotes-1.5.2.2.txt deleted file mode 100644 index 7bfa341750..0000000000 --- a/Documentation/RelNotes-1.5.2.2.txt +++ /dev/null @@ -1,61 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.2.3.txt b/Documentation/RelNotes-1.5.2.3.txt deleted file mode 100644 index addb22955b..0000000000 --- a/Documentation/RelNotes-1.5.2.3.txt +++ /dev/null @@ -1,27 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.2.4.txt b/Documentation/RelNotes-1.5.2.4.txt deleted file mode 100644 index 75cff475f6..0000000000 --- a/Documentation/RelNotes-1.5.2.4.txt +++ /dev/null @@ -1,28 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.2.5.txt b/Documentation/RelNotes-1.5.2.5.txt deleted file mode 100644 index e8281c72a0..0000000000 --- a/Documentation/RelNotes-1.5.2.5.txt +++ /dev/null @@ -1,30 +0,0 @@ -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 " 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. diff --git a/Documentation/RelNotes-1.5.2.txt b/Documentation/RelNotes-1.5.2.txt deleted file mode 100644 index e8328d090a..0000000000 --- a/Documentation/RelNotes-1.5.2.txt +++ /dev/null @@ -1,197 +0,0 @@ -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= - 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. diff --git a/Documentation/RelNotes-1.5.3.1.txt b/Documentation/RelNotes-1.5.3.1.txt deleted file mode 100644 index 7ff546c743..0000000000 --- a/Documentation/RelNotes-1.5.3.1.txt +++ /dev/null @@ -1,10 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.2.txt b/Documentation/RelNotes-1.5.3.2.txt deleted file mode 100644 index 4bbde3cab4..0000000000 --- a/Documentation/RelNotes-1.5.3.2.txt +++ /dev/null @@ -1,58 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.3.txt b/Documentation/RelNotes-1.5.3.3.txt deleted file mode 100644 index d213846951..0000000000 --- a/Documentation/RelNotes-1.5.3.3.txt +++ /dev/null @@ -1,31 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.4.txt b/Documentation/RelNotes-1.5.3.4.txt deleted file mode 100644 index b04b3a45a5..0000000000 --- a/Documentation/RelNotes-1.5.3.4.txt +++ /dev/null @@ -1,35 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.5.txt b/Documentation/RelNotes-1.5.3.5.txt deleted file mode 100644 index 7ff1d5d0d1..0000000000 --- a/Documentation/RelNotes-1.5.3.5.txt +++ /dev/null @@ -1,94 +0,0 @@ -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..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. diff --git a/Documentation/RelNotes-1.5.3.6.txt b/Documentation/RelNotes-1.5.3.6.txt deleted file mode 100644 index 069a2b2cf9..0000000000 --- a/Documentation/RelNotes-1.5.3.6.txt +++ /dev/null @@ -1,48 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.7.txt b/Documentation/RelNotes-1.5.3.7.txt deleted file mode 100644 index 2f690616c8..0000000000 --- a/Documentation/RelNotes-1.5.3.7.txt +++ /dev/null @@ -1,45 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.3.8.txt b/Documentation/RelNotes-1.5.3.8.txt deleted file mode 100644 index 0e3ff58a46..0000000000 --- a/Documentation/RelNotes-1.5.3.8.txt +++ /dev/null @@ -1,25 +0,0 @@ -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. - diff --git a/Documentation/RelNotes-1.5.3.txt b/Documentation/RelNotes-1.5.3.txt deleted file mode 100644 index 0668d3c0ca..0000000000 --- a/Documentation/RelNotes-1.5.3.txt +++ /dev/null @@ -1,366 +0,0 @@ -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=" 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=" option to "git config" is the same as - running the command with GIT_CONFIG= 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 ..." 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. diff --git a/Documentation/RelNotes-1.5.4.1.txt b/Documentation/RelNotes-1.5.4.1.txt deleted file mode 100644 index d4e44b8b09..0000000000 --- a/Documentation/RelNotes-1.5.4.1.txt +++ /dev/null @@ -1,17 +0,0 @@ -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. - diff --git a/Documentation/RelNotes-1.5.4.2.txt b/Documentation/RelNotes-1.5.4.2.txt deleted file mode 100644 index 21d0df59fb..0000000000 --- a/Documentation/RelNotes-1.5.4.2.txt +++ /dev/null @@ -1,43 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.4.3.txt b/Documentation/RelNotes-1.5.4.3.txt deleted file mode 100644 index b0fc67fb2a..0000000000 --- a/Documentation/RelNotes-1.5.4.3.txt +++ /dev/null @@ -1,27 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.4.4.txt b/Documentation/RelNotes-1.5.4.4.txt deleted file mode 100644 index 323c1a88c7..0000000000 --- a/Documentation/RelNotes-1.5.4.4.txt +++ /dev/null @@ -1,66 +0,0 @@ -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 " incorrectly made commits. - - * "git merge --squash --no-ff ", 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. diff --git a/Documentation/RelNotes-1.5.4.5.txt b/Documentation/RelNotes-1.5.4.5.txt deleted file mode 100644 index bbd130e36d..0000000000 --- a/Documentation/RelNotes-1.5.4.5.txt +++ /dev/null @@ -1,56 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.4.6.txt b/Documentation/RelNotes-1.5.4.6.txt deleted file mode 100644 index 3e3c3e55a3..0000000000 --- a/Documentation/RelNotes-1.5.4.6.txt +++ /dev/null @@ -1,43 +0,0 @@ -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. - diff --git a/Documentation/RelNotes-1.5.4.7.txt b/Documentation/RelNotes-1.5.4.7.txt deleted file mode 100644 index 9065a0e273..0000000000 --- a/Documentation/RelNotes-1.5.4.7.txt +++ /dev/null @@ -1,10 +0,0 @@ -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. diff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt deleted file mode 100644 index f1323b6174..0000000000 --- a/Documentation/RelNotes-1.5.4.txt +++ /dev/null @@ -1,377 +0,0 @@ -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:' 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:) 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