Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 1 | GIT v1.5.2 Release Notes |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 2 | ======================== |
| 3 | |
| 4 | Updates since v1.5.1 |
| 5 | -------------------- |
| 6 | |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 7 | * Plumbing level superproject support. |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 8 | |
| 9 | You can include a subdirectory that has an independent git |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 10 | repository in your index and tree objects of your project |
| 11 | ("superproject"). This plumbing (i.e. "core") level |
| 12 | superproject support explicitly excludes recursive behaviour. |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 13 | |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 14 | The "subproject" entries in the index and trees of a superproject |
| 15 | are incompatible with older versions of git. Experimenting with |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 16 | the plumbing level support is encouraged, but be warned that |
| 17 | unless everybody in your project updates to this release or |
| 18 | later, using this feature would make your project |
| 19 | inaccessible by people with older versions of git. |
| 20 | |
| 21 | * Plumbing level gitattributes support. |
| 22 | |
| 23 | The gitattributes mechanism allows you to add 'attributes' to |
| 24 | paths in your project, and affect the way certain git |
| 25 | operations work. Currently you can influence if a path is |
| 26 | considered a binary or text (the former would be treated by |
| 27 | 'git diff' not to produce textual output; the latter can go |
| 28 | through the line endings conversion process in repositories |
Junio C Hamano | 0430e3a | 2007-05-15 03:13:17 | [diff] [blame] | 29 | with core.autocrlf set), expand and unexpand '$Id$' keyword |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 30 | with blob object name, specify a custom 3-way merge driver, |
| 31 | and specify a custom diff driver. You can also apply |
| 32 | arbitrary filter to contents on check-in/check-out codepath |
| 33 | but this feature is an extremely sharp-edged razor and needs |
| 34 | to be handled with caution (do not use it unless you |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 35 | understand the earlier mailing list discussion on keyword |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 36 | expansion). These conversions apply when checking files in |
| 37 | or out, and exporting via git-archive. |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 38 | |
| 39 | * The packfile format now optionally suports 64-bit index. |
| 40 | |
| 41 | This release supports the "version 2" format of the .idx |
| 42 | file. This is automatically enabled when a huge packfile |
| 43 | needs more than 32-bit to express offsets of objects in the |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 44 | pack. |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 45 | |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 46 | * Comes with an updated git-gui 0.7.1 |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 47 | |
Junio C Hamano | ea5dae6 | 2007-05-10 23:25:08 | [diff] [blame] | 48 | * Updated gitweb: |
| 49 | |
| 50 | - can show combined diff for merges; |
| 51 | - uses font size of user's preference, not hardcoded in pixels; |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 52 | - can now 'grep'; |
Junio C Hamano | ea5dae6 | 2007-05-10 23:25:08 | [diff] [blame] | 53 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 54 | * New commands and options. |
| 55 | |
| 56 | - "git bisect start" can optionally take a single bad commit and |
| 57 | zero or more good commits on the command line. |
| 58 | |
Junio C Hamano | 28cea6a | 2007-04-18 04:57:17 | [diff] [blame] | 59 | - "git shortlog" can optionally be told to wrap its output. |
| 60 | |
| 61 | - "subtree" merge strategy allows another project to be merged in as |
| 62 | your subdirectory. |
| 63 | |
| 64 | - "git format-patch" learned a new --subject-prefix=<string> |
| 65 | option, to override the built-in "[PATCH]". |
| 66 | |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 67 | - "git add -u" is a quick way to do the first stage of "git |
| 68 | commit -a" (i.e. update the index to match the working |
| 69 | tree); it obviously does not make a commit. |
| 70 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 71 | - "git clean" honors a new configuration, "clean.requireforce". When |
| 72 | set to true, this makes "git clean" a no-op, preventing you |
| 73 | from losing files by typing "git clean" when you meant to |
| 74 | say "make clean". You can still say "git clean -f" to |
| 75 | override this. |
| 76 | |
| 77 | - "git log" family of commands learned --date={local,relative,default} |
| 78 | option. --date=relative is synonym to the --relative-date. |
| 79 | --date=local gives the timestamp in local timezone. |
| 80 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 81 | * Updated behavior of existing commands. |
| 82 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 83 | - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set |
| 84 | but $EMAIL is set, the latter is used as a substitute. |
| 85 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 86 | - "git diff --stat" shows size of preimage and postimage blobs |
| 87 | for binary contents. Earlier it only said "Bin". |
| 88 | |
| 89 | - "git lost-found" shows stuff that are unreachable except |
| 90 | from reflogs. |
| 91 | |
| 92 | - "git checkout branch^0" now detaches HEAD at the tip commit |
| 93 | on the named branch, instead of just switching to the |
| 94 | branch (use "git checkout branch" to switch to the branch, |
| 95 | as before). |
| 96 | |
| 97 | - "git bisect next" can be used after giving only a bad commit |
| 98 | without giving a good one (this starts bisection half-way to |
| 99 | the root commit). We used to refuse to operate without a |
| 100 | good and a bad commit. |
| 101 | |
Junio C Hamano | 28cea6a | 2007-04-18 04:57:17 | [diff] [blame] | 102 | - "git push", when pushing into more than one repository, does |
| 103 | not stop at the first error. |
| 104 | |
| 105 | - "git archive" does not insist you to give --format parameter |
| 106 | anymore; it defaults to "tar". |
| 107 | |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 108 | - "git cvsserver" can use backends other than sqlite. |
| 109 | |
| 110 | - "gitview" (in contrib/ section) learned to better support |
| 111 | "git-annotate". |
| 112 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 113 | - "git diff $commit1:$path2 $commit2:$path2" can now report |
| 114 | mode changes between the two blobs. |
| 115 | |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 116 | - Local "git fetch" from a repository whose object store is |
| 117 | one of the alternates (e.g. fetching from the origin in a |
| 118 | repository created with "git clone -l -s") avoids |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 119 | downloading objects unnecessarily. |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 120 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 121 | - "git blame" uses .mailmap to canonicalize the author name |
| 122 | just like "git shortlog" does. |
| 123 | |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 124 | - "git pack-objects" pays attention to pack.depth |
| 125 | configuration variable. |
| 126 | |
| 127 | - "git cherry-pick" and "git revert" does not use .msg file in |
| 128 | the working tree to prepare commit message; instead it uses |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 129 | $GIT_DIR/MERGE_MSG as other commands do. |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 130 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 131 | * Builds |
| 132 | |
| 133 | - git-p4import has never been installed; now there is an |
| 134 | installation option to do so. |
| 135 | |
| 136 | - gitk and git-gui can be configured out. |
| 137 | |
| 138 | - Generated documentation pages automatically get version |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 139 | information from GIT_VERSION. |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 140 | |
| 141 | - Parallel build with "make -j" descending into subdirectory |
| 142 | was fixed. |
| 143 | |
| 144 | * Performance Tweaks |
| 145 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 146 | - Optimized "git-rev-list --bisect" (hence "git-bisect"). |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 147 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 148 | - Optimized "git-add $path" in a large directory, most of |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 149 | whose contents are ignored. |
| 150 | |
Junio C Hamano | ea5dae6 | 2007-05-10 23:25:08 | [diff] [blame] | 151 | - Optimized "git-diff-tree" for reduced memory footprint. |
| 152 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 153 | - The recursive merge strategy updated a worktree file that |
| 154 | was changed identically in two branches, when one of them |
| 155 | renamed it. We do not do that when there is no rename, so |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 156 | match that behaviour. This avoids excessive rebuilds. |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 157 | |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 158 | - The default pack depth has been increased to 50, as the |
| 159 | recent addition of delta_base_cache makes deeper delta chains |
Junio C Hamano | 8638c92 | 2007-05-12 20:50:08 | [diff] [blame] | 160 | much less expensive to access. Depending on the project, it was |
| 161 | reported that this reduces the resulting pack file by 10% |
| 162 | or so. |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 163 | |
| 164 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 165 | Fixes since v1.5.1 |
| 166 | ------------------ |
| 167 | |
Junio C Hamano | e08c339 | 2007-04-22 07:27:48 | [diff] [blame] | 168 | All of the fixes in v1.5.1 maintenance series are included in |
| 169 | this release, unless otherwise noted. |
Junio C Hamano | 28cea6a | 2007-04-18 04:57:17 | [diff] [blame] | 170 | |
Junio C Hamano | f849981 | 2007-04-08 08:31:07 | [diff] [blame] | 171 | * Bugfixes |
| 172 | |
| 173 | - Switching branches with "git checkout" refused to work when |
| 174 | a path changes from a file to a directory between the |
| 175 | current branch and the new branch, in order not to lose |
| 176 | possible local changes in the directory that is being turned |
| 177 | into a file with the switch. We now allow such a branch |
| 178 | switch after making sure that there is no locally modified |
| 179 | file nor un-ignored file in the directory. This has not |
| 180 | been backported to 1.5.1.x series, as it is rather an |
| 181 | intrusive change. |
| 182 | |
Junio C Hamano | 28cea6a | 2007-04-18 04:57:17 | [diff] [blame] | 183 | - Merging branches that have a file in one and a directory in |
| 184 | another at the same path used to get quite confused. We |
| 185 | handle such a case a bit more carefully, even though that is |
| 186 | still left as a conflict for the user to sort out. This |
| 187 | will not be backported to 1.5.1.x series, as it is rather an |
| 188 | intrusive change. |
| 189 | |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 190 | - git-fetch had trouble with a remote with insanely large number |
| 191 | of refs. |
| 192 | |
Junio C Hamano | 91d44c5 | 2007-05-09 07:16:07 | [diff] [blame] | 193 | - "git clean -d -X" now does not remove non-excluded directories. |
| 194 | |
Junio C Hamano | ed7f4f6 | 2007-05-20 09:09:09 | [diff] [blame] | 195 | - rebasing (without -m) a series that changes a symlink to a directory |
| 196 | in the middle of a path confused git-apply greatly and refused to |
| 197 | operate. |