| 1 | Git v1.7.6 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Updates 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 interactive 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" and its family of commands learned --dirstat=0 to show |
| 57 | directories that contribute less than 0.1% of changes. |
| 58 | |
| 59 | * "git diff" and its family of commands learned --dirstat=lines mode to |
| 60 | assess damage to the directory based on number of lines in the patch |
| 61 | output, not based on the similarity numbers. |
| 62 | |
| 63 | * "git format-patch" learned "--quiet" option to suppress the output of |
| 64 | the names of generated files. |
| 65 | |
| 66 | * "git format-patch" quotes people's names when it has RFC822 special |
| 67 | characters in it, e.g. "Junio C. Hamano" <jch@example.com>. Earlier |
| 68 | it was up to the user to do this when using its output. |
| 69 | |
| 70 | * "git format-patch" can take an empty --subject-prefix now. |
| 71 | |
| 72 | * "git grep" learned the "-P" option to take pcre regular expressions. |
| 73 | |
| 74 | * "git log" and friends learned a new "--notes" option to replace the |
| 75 | "--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does |
| 76 | not imply showing the default notes. |
| 77 | |
| 78 | * They also learned a log.abbrevCommit configuration variable to augment |
| 79 | the --abbrev-commit command line option. |
| 80 | |
| 81 | * "git ls-remote" learned "--exit-code" option to consider it a |
| 82 | different kind of error when no remote ref to be shown. |
| 83 | |
| 84 | * "git merge" learned "-" as a short-hand for "the previous branch", just |
| 85 | like the way "git checkout -" works. |
| 86 | |
| 87 | * "git merge" uses "merge.ff" configuration variable to decide to always |
| 88 | create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create |
| 89 | a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes |
| 90 | (or not setting it at all) restores the default behaviour of allowing |
| 91 | fast-forward to happen when possible. |
| 92 | |
| 93 | * p4-import (from contrib) learned a new option --preserve-user. |
| 94 | |
| 95 | * "git read-tree -m" learned "--dry-run" option that reports if a merge |
| 96 | would fail without touching the index nor the working tree. |
| 97 | |
| 98 | * "git rebase" that does not specify on top of which branch to rebase |
| 99 | the current branch now uses @{upstream} of the current branch. |
| 100 | |
| 101 | * "git rebase" finished either normally or with --abort did not |
| 102 | update the reflog for HEAD to record the event to come back to |
| 103 | where it started from. |
| 104 | |
| 105 | * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier |
| 106 | a fetch-mode mirror meant mirror everything, but now it only means refs are |
| 107 | not renamed. |
| 108 | |
| 109 | * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked |
| 110 | commits separately, producing more a useful output. |
| 111 | |
| 112 | * "git submodule update" learned "--force" option to get rid of local |
| 113 | changes in submodules and replace them with the up-to-date version. |
| 114 | |
| 115 | * "git status" and friends ignore .gitmodules file while the file is |
| 116 | still in a conflicted state during a merge, to avoid using information |
| 117 | that is not final and possibly corrupt with conflict markers. |
| 118 | |
| 119 | Also contains various documentation updates and minor miscellaneous |
| 120 | changes. |
| 121 | |
| 122 | |
| 123 | Fixes since v1.7.5 |
| 124 | ------------------ |
| 125 | |
| 126 | Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are |
| 127 | included in this release. |
| 128 | |
| 129 | * "git config" used to choke with an insanely long line. |
| 130 | (merge ef/maint-strbuf-init later) |
| 131 | |
| 132 | * "git diff --quiet" did not work well with --diff-filter. |
| 133 | (merge jk/diff-not-so-quick later) |
| 134 | |
| 135 | * "git status -z" did not default to --porcelain output format. |
| 136 | (merge bc/maint-status-z-to-use-porcelain later) |