1GIT v1.6.0 Release Notes 2======================== 3 4User visible changes 5-------------------- 6 7With the default Makefile settings, most of the programs are now 8installed outside your $PATH, except for "git", "gitk", "git-gui" and 9some server side programs that need to be accessible for technical 10reasons. Invoking a git subcommand as "git-xyzzy" from the command 11line has been deprecated since early 2006 (and officially announced in 121.5.4 release notes); use of them from your scripts after adding 13output from "git --exec-path" to the $PATH is still supported in this 14release, but users are again strongly encouraged to adjust their 15scripts to use "git xyzzy" form, as we will stop installing 16"git-xyzzy" hardlinks for built-in commands in later releases. 17 18Source changes needed for porting to MinGW environment are now all in the 19main git.git codebase. 20 21By default, packfiles created with this version uses delta-base-offset 22encoding introduced in v1.4.4. Pack idx files are using version 2 that 23allows larger packs and added robustness thanks to its CRC checking, 24introduced in v1.5.2. 25 26GIT_CONFIG, which was only documented as affecting "git config", but 27actually affected all git commands, now only affects "git config". 28GIT_LOCAL_CONFIG, also only documented as affecting "git config" and 29not different from GIT_CONFIG in a useful way, is removed. 30 31The ".dotest" temporary area "git am" and "git rebase" use is now moved 32inside the $GIT_DIR, to avoid mistakes of adding it to the project by 33accident. 34 35An ancient merge strategy "stupid" has been removed. 36 37 38Updates since v1.5.6 39-------------------- 40 41(subsystems) 42 43* git-p4 in contrib learned "allowSubmit" configuration to control on 44 which branch to allow "submit" subcommand. 45 46* git-gui learned to stage changes per-line. 47 48(portability) 49 50* Changes for MinGW port have been merged, thanks to Johannes Sixt and 51 gangs. 52 53* Sample hook scripts shipped in templates/ are now suffixed with 54 *.sample. We used to prevent them from triggering by default by 55 relying on the fact that we install them as unexecutable, but on 56 some filesystems this approach does not work. Instead of running 57 "chmod +x" on them, the users who want to activate these samples 58 as-is can now rename them dropping *.sample suffix. 59 60* perl's in-place edit (-i) does not work well without backup files on Windows; 61 some tests are rewritten to cope with this. 62 63(documentation) 64 65* Updated howto/update-hook-example 66 67* Got rid of usage of "git-foo" from the tutorial and made typography 68 more consistent. 69 70* Disambiguating "--" between revs and paths is finally documented. 71 72(performance, robustness, sanity etc.) 73 74* index-pack used too much memory when dealing with a deep delta chain. 75 This has been optimized. 76 77* reduced excessive inlining to shrink size of the "git" binary. 78 79* verify-pack checks the object CRC when using version 2 idx files. 80 81* When an object is corrupt in a pack, the object became unusable even 82 when the same object is available in a loose form, We now try harder to 83 fall back to these redundant objects when able. In particular, "git 84 repack -a -f" can be used to fix such a corruption as long as necessary 85 objects are available. 86 87* Performance of "git-blame -C -C" operation is vastly improved. 88 89* git-clone does not create refs in loose form anymore (it behaves as 90 if you immediately ran git-pack-refs after cloning). This will help 91 repositories with insanely large number of refs. 92 93* core.fsyncobjectfiles configuration can be used to ensure that the loose 94 objects created will be fsync'ed (this is only useful on filesystems 95 that does not order data writes properly). 96 97* "git commit-tree" plumbing can make Octopus with more than 16 parents. 98 "git commit" has been capable of this for quite some time. 99 100(usability, bells and whistles) 101 102* even more documentation pages are now accessible via "man" and "git help". 103 104* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop 105 the discovery process of the toplevel of working tree; this may be useful 106 when you are working in a slow network disk and are outside any working tree, 107 as bash-completion and "git help" may still need to run in these places. 108 109* By default, stash entries never expire. Set reflogexpire in [gc 110 "refs/stash"] to a reasonable value to get traditional auto-expiration 111 behaviour back 112 113* Longstanding latency issue with bash completion script has been 114 addressed. This will need to be backmerged to 'maint' later. 115 116* pager.<cmd> configuration variable can be used to enable/disable the 117 default paging behaviour per command. 118 119* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk 120 manually. 121 122* git-am records the original tip of the branch in ORIG_HEAD before it 123 starts applying patches. 124 125* git-apply can handle a patch that touches the same path more than once 126 much better than before. 127 128* git-apply can be told not to trust the line counts recorded in the input 129 patch but recount, with the new --recount option. 130 131* git-apply can be told to apply a patch to a path deeper than what the 132 patch records with --directory option. 133 134* git-archive can be told to omit certain paths from its output using 135 export-ignore attributes. 136 137* With -v option, git-branch describes the remote tracking statistics 138 similar to the way git-checkout reports by how many commits your branch 139 is ahead/behind. 140 141* git-branch's --contains option used to always require a commit parameter 142 to limit the branches with; it now defaults to list branches that 143 contains HEAD if this parameter is omitted. 144 145* git-branch's --merged and --no-merged option used to always limit the 146 branches relative to the HEAD, but they can now take an optional commit 147 argument that is used in place of HEAD. 148 149* git-bundle can read the revision arguments from the standard input. 150 151* git-cherry-pick can replay a root commit now. 152 153* git-clone can clone from a remote whose URL would be rewritten by 154 configuration stored in $HOME/.gitconfig now. 155 156* git-diff --check now checks leftover merge conflict markers. 157 158* When remote side used to have branch 'foo' and git-fetch finds that now 159 it has branch 'foo/bar', it refuses to lose the existing remote tracking 160 branch and its reflog. The error message has been improved to suggest 161 pruning the remote if the user wants to proceed and get the latest set 162 of branches from the remote, including such 'foo/bar'. 163 164* fast-export learned to export and import marks file; this can be used to 165 interface with fast-import incrementally. 166 167* git-rebase records the original tip of branch in ORIG_HEAD before it is 168 rewound. 169 170* "git rerere" can be told to update the index with auto-reused resolution 171 with rerere.autoupdate configuration variable. 172 173* git-rev-list learned --children option to show child commits it 174 encountered during the traversal, instead of shoing parent commits. 175 176* git-send-mail can talk not just over SSL but over TLS now. 177 178* git-shortlog honors custom output format specified with "--pretty=format:". 179 180* "git-stash save" learned --keep-index option. This lets you stash away the 181 local changes and bring the changes staged in the index to your working 182 tree for examination and testing. 183 184* git-stash also learned branch subcommand to create a new branch out of 185 stashed changes. 186 187* git-status gives the remote tracking statistics similar to the way 188 git-checkout reports by how many commits your branch is ahead/behind. 189 190* You can tell "git status -u" to even more aggressively omit checking 191 untracked files with --untracked-files=no. 192 193* Original SHA-1 value for "update-ref -d" is optional now. 194 195* Error codes from gitweb are made more descriptive where possible, rather 196 than "403 forbidden" as we used to issue everywhere. 197 198(internal) 199 200* git-merge has been reimplemented in C. 201 202 203Fixes since v1.5.6 204------------------ 205 206All of the fixes in v1.5.6 maintenance series are included in 207this release, unless otherwise noted. 208 209--- 210exec >/var/tmp/1 211O=v1.5.6.3-436-g1f8dc67 212echo O=$(git describe refs/heads/master) 213git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint