| GIT v1.5.1 Release Notes |
| ======================== |
| |
| Updates since v1.5.0 |
| -------------------- |
| |
| * Deprecated commands and options. |
| |
| - git-diff-stages and git-resolve have been removed. |
| |
| * New commands and options. |
| |
| - "git log" and friends take --reverse, which instructs them |
| to give their output in the order opposite from their usual. |
| They typically output from new to old, but with this option |
| their output would read from old to new. "git shortlog" |
| usually lists older commits first, but with this option, |
| they are shown from new to old. |
| |
| - "git log --pretty=format:<string>" to allow more flexible |
| custom log output. |
| |
| - "git diff" learned --ignore-space-at-eol. This is a weaker |
| form of --ignore-space-change. |
| |
| - "git diff --no-index pathA pathB" can be used as diff |
| replacement with git specific enhancements. |
| |
| - "git diff --no-index" can read from '-' (standard input). |
| |
| - "git diff" also learned --exit-code to exit with non-zero |
| status when it found differences. In the future we might |
| want to make this the default but that would be a rather big |
| backward incompatible change; it will stay as an option for |
| now. |
| |
| - "git diff --quiet" is --exit-code with output turned off, |
| meant for scripted use to quickly determine if there is any |
| tree-level difference. |
| |
| - Textual patch generation with "git diff" without -w/-b |
| option has been significantly optimized. "git blame" got |
| faster because of the same change. |
| |
| - "git log" and "git rev-list" has been optimized |
| significantly when they are used with pathspecs. |
| |
| - "git branch --track" can be used to set up configuration |
| variables to help it easier to base your work on branches |
| you track from a remote site. |
| |
| - "git format-patch --attach" now emits attachments. Use |
| --inline to get an inlined multipart/mixed. |
| |
| - "git name-rev" learned --refs=<pattern>, to limit the tags |
| used for naming the given revisions only to the ones |
| matching the given pattern. |
| |
| - "git remote update" is to run "git fetch" for defined remotes |
| to update tracking branches. |
| |
| - "git cvsimport" can now take '-d' to talk with a CVS |
| repository different from what are recorded in CVS/Root |
| (overriding it with environment CVSROOT does not work). |
| |
| - "git bundle" can help sneaker-netting your changes between |
| repositories. |
| |
| - "git mergetool" can help 3-way file-level conflict |
| resolution with your favorite graphical merge tools. |
| |
| - A new configuration "core.symlinks" can be used to disable |
| symlinks on filesystems that do not support them; they are |
| checked out as regular files instead. |
| |
| - You can name a commit object with its first line of the |
| message. The syntax to use is ':/message text'. E.g. |
| |
| $ git show ":/object name: introduce ':/<oneline prefix>' notation" |
| |
| means the same thing as: |
| |
| $ git show 28a4d940443806412effa246ecc7768a21553ec7 |
| |
| - "git bisect" learned a new command "run" that takes a script |
| to run after each revision is checked out to determine if it |
| is good or bad, to automate the bisection process. |
| |
| - "git log" family learned a new traversal option --first-parent, |
| which does what the name suggests. |
| |
| |
| * Updated behavior of existing commands. |
| |
| - "git-merge-recursive" used to barf when there are more than |
| one common ancestors for the merge, and merging them had a |
| rename/rename conflict. This has been fixed. |
| |
| - "git fsck" does not barf on corrupt loose objects. |
| |
| - "git rm" does not remove newly added files without -f. |
| |
| - "git archimport" allows remapping when coming up with git |
| branch names from arch names. |
| |
| - git-svn got almost a rewrite. |
| |
| - core.autocrlf configuration, when set to 'true', makes git |
| to convert CRLF at the end of lines in text files to LF when |
| reading from the filesystem, and convert in reverse when |
| writing to the filesystem. The variable can be set to |
| 'input', in which case the conversion happens only while |
| reading from the filesystem but files are written out with |
| LF at the end of lines. Currently, which paths to consider |
| 'text' (i.e. be subjected to the autocrlf mechanism) is |
| decided purely based on the contents, but the plan is to |
| allow users to explicitly override this heuristic based on |
| paths. |
| |
| - The behavior of 'git-apply', when run in a subdirectory, |
| without --index nor --cached were inconsistent with that of |
| the command with these options. This was fixed to match the |
| behavior with --index. A patch that is meant to be applied |
| with -p1 from the toplevel of the project tree can be |
| applied with any custom -p<n> option. A patch that is not |
| relative to the toplevel needs to be applied with -p<n> |
| option with or without --index (or --cached). |
| |
| - "git diff" outputs a trailing HT when pathnames have embedded |
| SP on +++/--- header lines, in order to help "GNU patch" to |
| parse its output. "git apply" was already updated to accept |
| this modified output format since ce74618d (Sep 22, 2006). |
| |
| - "git cvsserver" runs hooks/update and honors its exit status. |
| |
| - "git cvsserver" can be told to send everything with -kb. |
| |
| - "git diff --check" also honors the --color output option. |
| |
| - "git name-rev" used to stress the fact that a ref is a tag too |
| much, by saying something like "v1.2.3^0~22". It now says |
| "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does |
| not talk about an ancestor of the commit that is tagged, which |
| makes sense). |
| |
| - "git rev-list --boundary" now shows boundary markers for the |
| commits omitted by --max-age and --max-count condition. |
| |
| - The configuration mechanism now reads $(prefix)/etc/gitconfig. |
| |
| - "git apply --verbose" shows what preimage lines were wanted |
| when it couldn't find them. |
| |
| - "git status" in a read-only repository got a bit saner. |
| |
| - "git fetch" (hence "git clone" and "git pull") are less |
| noisy when the output does not go to tty. |
| |
| - "git fetch" between repositories with many refs were slow |
| even when there are not many changes that needed |
| transferring. This has been sped up by partially rewriting |
| the heaviest parts in C. |
| |
| - "git mailinfo" which splits an e-mail into a patch and the |
| meta-information was rewritten, thanks to Don Zickus. It |
| handles nested multipart better. The command was broken for |
| a brief period on 'master' branch since 1.5.0 but the |
| breakage is fixed now. |
| |
| - send-email learned configurable bcc and chain-reply-to. |
| |
| - "git remote show $remote" also talks about branches that |
| would be pushed if you run "git push remote". |
| |
| - Using objects from packs is now seriously optimized by clever |
| use of a cache. This should be most noticeable in git-log |
| family of commands that involve reading many tree objects. |
| In addition, traversing revisions while filtering changes |
| with pathspecs is made faster by terminating the comparison |
| between the trees as early as possible. |
| |
| |
| * Hooks |
| |
| - The part to send out notification e-mails was removed from |
| the sample update hook, as it was not an appropriate place |
| to do so. The proper place to do this is the new post-receive |
| hook. An example hook has been added to contrib/hooks/. |
| |
| |
| * Others |
| |
| - git-revert, git-gc and git-cherry-pick are now built-ins. |
| |
| |
| -- |
| exec >/var/tmp/1 |
| O=v1.5.1-rc3-29-gd8b6a1a |
| echo O=`git describe master` |
| git shortlog --no-merges $O..master ^maint |
| |
| # Local Variables: |
| # mode: text |
| # End: |