1Git v1.7.6 Release Notes (draft) 2======================== 3 4Updates since v1.7.5 5-------------------- 6 7 * Various git-svn updates. 8 9 * Updates the way content tags are handled in gitweb. Also adds 10 a UI to choose common timezone for displaying the dates. 11 12 * Similar to branch names, tagnames that begin with "-" are now 13 disallowed. 14 15 * Clean-up of the C part of i18n (but not l10n---please wait) 16 continues. 17 18 * The scripting part of the codebase is getting prepared for i18n/l10n. 19 20 * Pushing and pulling from a repository with large number of refs that 21 point to identical commits are optimized by not listing the same commit 22 during the common ancestor negotiation exchange with the other side. 23 24 * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig) 25 using "git add" will send the contents straight to a packfile without 26 having to hold it and its compressed representation both at the same 27 time in memory. 28 29 * Processes spawned by "[alias] <name> = !process" in the configuration 30 can inspect GIT_PREFIX environment variable to learn where in the 31 working tree the original command was invoked. 32 33 * A magic pathspec ":/" tells a command that limits its operation to 34 the current directory when ran from a subdirectory to work on the 35 entire working tree. In general, ":/path/to/file" would be relative 36 to the root of the working tree hierarchy. 37 38 After "git reset --hard; edit Makefile; cd t/", "git add -u" would 39 be a no-op, but "git add -u :/" would add the updated contents of 40 the Makefile at the top level. If you want to name a path in the 41 current subdirectory whose unusual name begins with ":/", you can 42 name it by "./:/that/path" or by "\:/that/path". 43 44 * "git blame" learned "--abbrev[=<n>]" option to control the minimum 45 number of hexdigits shown for commit object names. 46 47 * "git blame" learned "--line-porcelain" that is less efficient but is 48 easier to parse. 49 50 * Aborting "git commit --interactive" discards updates to the index 51 made during the interctive session. 52 53 * "git commit" learned a "--patch" option to directly jump to the 54 per-hunk selection UI of the interactive mode. 55 56 * "git diff -C -C" used to disable the rename detection entirely when 57 there are too many copy candidate paths in the tree; now it falls 58 back to "-C" when doing so would keep the copy candidate paths 59 under the rename detection limit. 60 61 * "git diff" and its family of commands learned --dirstat=0 to show 62 directories that contribute less than 0.1% of changes. 63 64 * "git diff" and its family of commands learned --dirstat=lines mode to 65 assess damage to the directory based on number of lines in the patch 66 output, not based on the similarity numbers. 67 68 * "git format-patch" learned "--quiet" option to suppress the output of 69 the names of generated files. 70 71 * "git format-patch" quotes people's names when it has RFC822 special 72 characters in it, e.g. "Junio C. Hamano" <jch@example.com>. Earlier 73 it was up to the user to do this when using its output. 74 75 * "git log" and friends learned a new "--notes" option to replace the 76 "--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does 77 not imply showing the default notes. 78 79 * They also learned a log.abbrevCommit configuration variable to augment 80 the --abbrev-commit command line option. 81 82 * "git ls-remote" learned "--exit-code" option to consider it a 83 different kind of error when no remote ref to be shown. 84 85 * "git merge" learned "-" as a short-hand for "the previous branch", just 86 like the way "git checkout -" works. 87 88 * "git merge" uses "merge.ff" configuration variable to decide to always 89 create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create 90 a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes 91 (or not setting it at all) restores the default behaviour of allowing 92 fast-forward to happen when possible. 93 94 * p4-import (from contrib) learned a new option --preserve-user. 95 96 * "git rebase" that does not specify on top of which branch to rebase 97 the current branch now uses @{upstream} of the current branch. 98 99 * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked 100 commits separately, producing more a useful output. 101 102 * "git submodule update" learned "--force" option to get rid of local 103 changes in submodules and replace them with the up-to-date version. 104 105 * "git status" and friends ignore .gitmodules file while the file is 106 still in a conflicted state during a merge, to avoid using information 107 that is not final and possibly corrupt with conflict markers. 108 109Also contains various documentation updates and minor miscellaneous 110changes. 111 112 113Fixes since v1.7.5 114------------------ 115 116Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are 117included in this release. 118 119 * The single-key mode of "git add -p" was easily fooled into thinking 120 that it was told to add everthing ('a') when up-arrow was pressed by 121 mistake. 122 (merge tr/add-i-no-escape later) 123 124 * "git config" used to choke with an insanely long line. 125 (merge ef/maint-strbuf-init later) 126 127--- 128exec >/var/tmp/1 129echo O=$(git describe master) 130O=v1.7.5.3-365-g7eacc2b 131git shortlog --no-merges ^maint ^$O master