| GIT v1.6.0 Release Notes |
| ======================== |
| |
| User visible changes |
| -------------------- |
| |
| With the default Makefile settings, most of the programs are now |
| installed outside your $PATH, except for "git", "gitk" and |
| some server side programs that need to be accessible for technical |
| reasons. Invoking a git subcommand as "git-xyzzy" from the command |
| line has been deprecated since early 2006 (and officially announced in |
| 1.5.4 release notes); use of them from your scripts after adding |
| output from "git --exec-path" to the $PATH is still supported in this |
| release, but users are again strongly encouraged to adjust their |
| scripts to use "git xyzzy" form, as we will stop installing |
| "git-xyzzy" hardlinks for built-in commands in later releases. |
| |
| An earlier change to page "git status" output was overwhelmingly unpopular |
| and has been reverted. |
| |
| Source changes needed for porting to MinGW environment are now all in the |
| main git.git codebase. |
| |
| By default, packfiles created with this version uses delta-base-offset |
| encoding introduced in v1.4.4. Pack idx files are using version 2 that |
| allows larger packs and added robustness thanks to its CRC checking, |
| introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories |
| backwards compatible past these versions, set repack.useDeltaBaseOffset |
| to false or pack.indexVersion to 1, respectively. |
| |
| We used to prevent sample hook scripts shipped in templates/ from |
| triggering by default by relying on the fact that we install them as |
| unexecutable, but on some filesystems, this approach does not work. |
| They are now shipped with ".sample" suffix. If you want to activate |
| any of these samples as-is, rename them to drop the ".sample" suffix, |
| instead of running "chmod +x" on them. For example, you can rename |
| hooks/post-update.sample to hooks/post-update to enable the sample |
| hook that runs update-server-info, in order to make repositories |
| friendly to dumb protocols (i.e. HTTP). |
| |
| GIT_CONFIG, which was only documented as affecting "git config", but |
| actually affected all git commands, now only affects "git config". |
| GIT_LOCAL_CONFIG, also only documented as affecting "git config" and |
| not different from GIT_CONFIG in a useful way, is removed. |
| |
| The ".dotest" temporary area "git am" and "git rebase" use is now moved |
| inside the $GIT_DIR, to avoid mistakes of adding it to the project by |
| accident. |
| |
| An ancient merge strategy "stupid" has been removed. |
| |
| |
| Updates since v1.5.6 |
| -------------------- |
| |
| (subsystems) |
| |
| * git-p4 in contrib learned "allowSubmit" configuration to control on |
| which branch to allow "submit" subcommand. |
| |
| * git-gui learned to stage changes per-line. |
| |
| (portability) |
| |
| * Changes for MinGW port have been merged, thanks to Johannes Sixt and |
| gangs. |
| |
| * Sample hook scripts shipped in templates/ are now suffixed with |
| *.sample. |
| |
| * perl's in-place edit (-i) does not work well without backup files on Windows; |
| some tests are rewritten to cope with this. |
| |
| (documentation) |
| |
| * Updated howto/update-hook-example |
| |
| * Got rid of usage of "git-foo" from the tutorial and made typography |
| more consistent. |
| |
| * Disambiguating "--" between revs and paths is finally documented. |
| |
| (performance, robustness, sanity etc.) |
| |
| * index-pack used too much memory when dealing with a deep delta chain. |
| This has been optimized. |
| |
| * reduced excessive inlining to shrink size of the "git" binary. |
| |
| * verify-pack checks the object CRC when using version 2 idx files. |
| |
| * When an object is corrupt in a pack, the object became unusable even |
| when the same object is available in a loose form, We now try harder to |
| fall back to these redundant objects when able. In particular, "git |
| repack -a -f" can be used to fix such a corruption as long as necessary |
| objects are available. |
| |
| * Performance of "git-blame -C -C" operation is vastly improved. |
| |
| * git-clone does not create refs in loose form anymore (it behaves as |
| if you immediately ran git-pack-refs after cloning). This will help |
| repositories with insanely large number of refs. |
| |
| * core.fsyncobjectfiles configuration can be used to ensure that the loose |
| objects created will be fsync'ed (this is only useful on filesystems |
| that does not order data writes properly). |
| |
| * "git commit-tree" plumbing can make Octopus with more than 16 parents. |
| "git commit" has been capable of this for quite some time. |
| |
| (usability, bells and whistles) |
| |
| * even more documentation pages are now accessible via "man" and "git help". |
| |
| * A new environment variable GIT_CEILING_DIRECTORIES can be used to stop |
| the discovery process of the toplevel of working tree; this may be useful |
| when you are working in a slow network disk and are outside any working tree, |
| as bash-completion and "git help" may still need to run in these places. |
| |
| * By default, stash entries never expire. Set reflogexpire in [gc |
| "refs/stash"] to a reasonable value to get traditional auto-expiration |
| behaviour back |
| |
| * Longstanding latency issue with bash completion script has been |
| addressed. This will need to be backmerged to 'maint' later. |
| |
| * pager.<cmd> configuration variable can be used to enable/disable the |
| default paging behaviour per command. |
| |
| * "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk |
| manually. |
| |
| * git-am records the original tip of the branch in ORIG_HEAD before it |
| starts applying patches. |
| |
| * git-apply can handle a patch that touches the same path more than once |
| much better than before. |
| |
| * git-apply can be told not to trust the line counts recorded in the input |
| patch but recount, with the new --recount option. |
| |
| * git-apply can be told to apply a patch to a path deeper than what the |
| patch records with --directory option. |
| |
| * git-archive can be told to omit certain paths from its output using |
| export-ignore attributes. |
| |
| * git-archive uses the zlib default compression level when creating |
| zip archive. |
| |
| * git-archive's command line options --exec and --remote can take their |
| parameters as separate command line arguments, similar to other commands. |
| IOW, both "--exec=path" and "--exec path" are now supported. |
| |
| * With -v option, git-branch describes the remote tracking statistics |
| similar to the way git-checkout reports by how many commits your branch |
| is ahead/behind. |
| |
| * git-branch's --contains option used to always require a commit parameter |
| to limit the branches with; it now defaults to list branches that |
| contains HEAD if this parameter is omitted. |
| |
| * git-branch's --merged and --no-merged option used to always limit the |
| branches relative to the HEAD, but they can now take an optional commit |
| argument that is used in place of HEAD. |
| |
| * git-bundle can read the revision arguments from the standard input. |
| |
| * git-cherry-pick can replay a root commit now. |
| |
| * git-clone can clone from a remote whose URL would be rewritten by |
| configuration stored in $HOME/.gitconfig now. |
| |
| * "git-clone --mirror" is a handy way to set up a bare mirror repository. |
| |
| * git-cvsserver learned to respond to "cvs co -c". |
| |
| * git-diff --check now checks leftover merge conflict markers. |
| |
| * "git-diff -p" learned to grab a better hunk header lines in |
| BibTex, Pascal/Delphi, and Ruby files and also pays attention to |
| chapter and part boundary in TeX documents. |
| |
| * When remote side used to have branch 'foo' and git-fetch finds that now |
| it has branch 'foo/bar', it refuses to lose the existing remote tracking |
| branch and its reflog. The error message has been improved to suggest |
| pruning the remote if the user wants to proceed and get the latest set |
| of branches from the remote, including such 'foo/bar'. |
| |
| * fast-export learned to export and import marks file; this can be used to |
| interface with fast-import incrementally. |
| |
| * fast-import and fast-export learned to export and import gitlinks. |
| |
| * "gitk" left background process behind after being asked to dig very deep |
| history and the user killed the UI; the process is killed when the UI goes |
| away now. |
| |
| * git-rebase records the original tip of branch in ORIG_HEAD before it is |
| rewound. |
| |
| * "git rerere" can be told to update the index with auto-reused resolution |
| with rerere.autoupdate configuration variable. |
| |
| * git-rev-parse learned $commit^! and $commit^@ notations used in "log" |
| family. These notations are available in gitk as well, because the gitk |
| command internally uses rev-parse to interpret its arguments. |
| |
| * git-rev-list learned --children option to show child commits it |
| encountered during the traversal, instead of showing parent commits. |
| |
| * git-send-mail can talk not just over SSL but over TLS now. |
| |
| * git-shortlog honors custom output format specified with "--pretty=format:". |
| |
| * "git-stash save" learned --keep-index option. This lets you stash away the |
| local changes and bring the changes staged in the index to your working |
| tree for examination and testing. |
| |
| * git-stash also learned branch subcommand to create a new branch out of |
| stashed changes. |
| |
| * git-status gives the remote tracking statistics similar to the way |
| git-checkout reports by how many commits your branch is ahead/behind. |
| |
| * "git-svn dcommit" is now aware of auto-props setting the subversion user |
| has. |
| |
| * You can tell "git status -u" to even more aggressively omit checking |
| untracked files with --untracked-files=no. |
| |
| * Original SHA-1 value for "update-ref -d" is optional now. |
| |
| * Error codes from gitweb are made more descriptive where possible, rather |
| than "403 forbidden" as we used to issue everywhere. |
| |
| (internal) |
| |
| * git-merge has been reimplemented in C. |
| |
| |
| Fixes since v1.5.6 |
| ------------------ |
| |
| All of the fixes in v1.5.6 maintenance series are included in |
| this release, unless otherwise noted. |
| |
| * git-clone ignored its -u option; the fix needs to be backported to |
| 'maint'; |
| |
| * git-mv used to lose the distinction between changes that are staged |
| and that are only in the working tree, by staging both in the index |
| after moving such a path. |
| |
| * "git-rebase -i -p" rewrote the parents to wrong ones when amending |
| (either edit or squash) was involved, and did not work correctly |
| when fast forwarding. |
| |