threaded delta search: refine work allocation
[gitweb.git] / Documentation / RelNotes-1.5.3.txt
index 21bb1fc6f2d1dfdb0231ba7381f0ade1ecb66c49..317c8b9db6badda58278e1df43204b6997e331e4 100644 (file)
@@ -9,13 +9,26 @@ Updates since v1.5.2
 
 * The submodule support has Porcelain layer.
 
+  Note that the current submodule support is minimal and this is
+  deliberately so.  A design decision we made is that operations
+  at the supermodule level do not recurse into submodules by
+  default.  The expectation is that later we would add a
+  mechanism to tell git which submodules the user is interested
+  in, and this information might be used to determine the
+  recursive behaviour of certain commands (e.g. "git checkout"
+  and "git diff"), but currently we haven't agreed on what that
+  mechanism should look like.  Therefore, if you use submodules,
+  you would probably need "git submodule update" on the
+  submodules you care about after running a "git checkout" at
+  the supermodule level.
+
 * There are a handful pack-objects changes to help you cope better
   with repositories with pathologically large blobs in them.
 
 * For people who need to import from Perforce, a front-end for
   fast-import is in contrib/fast-import/.
 
-* Comes with git-gui 0.8.0.
+* Comes with git-gui 0.8.2.
 
 * Comes with updated gitk.
 
@@ -46,21 +59,21 @@ Updates since v1.5.2
   - "git log" learned a new option "--follow", to follow
     renaming history of a single file.
 
-  - "git-filter-branch" lets you rewrite the revision history of
+  - "git filter-branch" lets you rewrite the revision history of
     specified branches. You can specify a number of filters to
     modify the commits, files and trees.
 
-  - "git-cvsserver" learned new options (--base-path, --export-all,
-    --strict-paths) inspired by git-daemon.
+  - "git cvsserver" learned new options (--base-path, --export-all,
+    --strict-paths) inspired by "git daemon".
 
   - "git daemon --base-path-relaxed" can help migrating a repository URL
     that did not use to use --base-path to use --base-path.
 
-  - "git-commit" can use "-t templatefile" option and commit.template
+  - "git commit" can use "-t templatefile" option and commit.template
     configuration variable to prime the commit message given to you in the
     editor.
 
-  - "git-submodule" command helps you manage the projects from
+  - "git submodule" command helps you manage the projects from
     the superproject that contain them.
 
   - In addition to core.compression configuration option,
@@ -68,15 +81,15 @@ Updates since v1.5.2
     independently tweak zlib compression levels used for loose
     and packed objects.
 
-  - "git-ls-tree -l" shows size of blobs pointed at by the
+  - "git ls-tree -l" shows size of blobs pointed at by the
     tree entries, similar to "/bin/ls -l".
 
-  - "git-rev-list" learned --regexp-ignore-case and
+  - "git rev-list" learned --regexp-ignore-case and
     --extended-regexp options to tweak its matching logic used
     for --grep fitering.
 
-  - "git-describe --contains" is a handier way to call more
-    obscure command "git-name-rev --tags".
+  - "git describe --contains" is a handier way to call more
+    obscure command "git name-rev --tags".
 
   - "git gc --aggressive" tells the command to spend more cycles
     to optimize the repository harder.
@@ -109,11 +122,20 @@ Updates since v1.5.2
   - "git send-email" can be told not to thread the messages when
     sending out more than one patches.
 
+  - "git send-email" can also be told how to find whom to cc the
+    message to for each message via --cc-cmd.
+
   - "git config" learned NUL terminated output format via -z to
     help scripts.
 
+  - "git add" learned "--refresh <paths>..." option to selectively refresh
+    the cached stat information.
+
   - "git init -q" makes the command quieter.
 
+  - "git -p command" now has a cousin of opposite sex, "git --no-pager
+    command".
+
 * Updated behavior of existing commands.
 
   - "gitweb" can offer multiple snapshot formats.
@@ -126,9 +148,27 @@ Updates since v1.5.2
     of the format ('tgz', 'tbz2' or 'zip').  Please update the
     your configuration file accordingly.
 
+  - "git clone" uses -l (hardlink files under .git) by default when
+    cloning locally.
+
+  - URL used for "git clone" and friends can specify nonstandard SSH port
+    by using sh://host:port/path/to/repo syntax.
+
+  - "git bundle create" can now create a bundle without negative refs,
+    i.e. "everything since the beginning up to certain points".
+
   - "git diff" (but not the plumbing level "git diff-tree") now
     recursively descends into trees by default.
 
+  - "git diff" does not show differences that come only from
+    stat-dirtiness in the form of "diff --git" header anymore.
+    It runs "update-index --refresh" silently as needed.
+
+  - "git tag -l" used to match tags by globbing its parameter as if it
+    has wildcard '*' on both ends, which made "git tag -l gui" to match
+    tag 'gitgui-0.7.0'; this was very annoying.  You now have to add
+    asterisk on the sides you want to wildcard yourself.
+
   - The editor to use with many interactive commands can be
     overridden with GIT_EDITOR environment variable, or if it
     does not exist, with core.editor configuration variable.  As
@@ -143,8 +183,25 @@ Updates since v1.5.2
     given strings now have shorter abbreviations.  -i is for ignore case,
     and -E is for extended regexp.
 
+  - "git log" learned --log-size to show the number of bytes in
+    the log message part of the output to help qgit.
+
+  - "git log --name-status" does not require you to give "-r" anymore.
+    As a general rule, Porcelain commands should recurse when showing
+    diff.
+
+  - "git format-patch --root A" can be used to format everything
+    since the beginning up to A.  This was supported with
+    "git format-patch --root A A" for a long time, but was not
+    properly documented.
+
   - "git svn dcommit" retains local merge information.
 
+  - "git svnimport" allows an empty string to be specified as the
+    trunk/ directory.  This is necessary to suck data from a SVN
+    repository that doe not have trunk/ branches/ and tags/ organization
+    at all.
+
   - "git config" to set values also honors type flags like --bool
     and --int.
 
@@ -167,7 +224,7 @@ Updates since v1.5.2
     and the handcrafted ones the old code created was not
     properly formed anyway.
 
-  - "git-push" pretends that you immediately fetched back from
+  - "git push" pretends that you immediately fetched back from
     the remote by updating corresponding remote tracking
     branches if you have any.
 
@@ -177,10 +234,10 @@ Updates since v1.5.2
   - "git commit --amend" is now compatible with various message source
     options such as -m/-C/-c/-F.
 
-  - "git-apply --whitespace=strip" removes blank lines added at
+  - "git apply --whitespace=strip" removes blank lines added at
     the end of the file.
 
-  - "git-fetch" over git native protocols with "-v" option shows
+  - "git fetch" over git native protocols with "-v" option shows
     connection status, and the IP address of the other end, to
     help diagnosing problems.
 
@@ -195,10 +252,10 @@ Updates since v1.5.2
   - "--find-copies-harder" option to diff family can now be
     spelled as "-C -C" for brevity.
 
-  - "git-mailsplit" (hence "git-am") can read from Maildir
+  - "git mailsplit" (hence "git am") can read from Maildir
     formatted mailboxes.
 
-  - "git-cvsserver" does not barf upon seeing "cvs login"
+  - "git cvsserver" does not barf upon seeing "cvs login"
     request.
 
   - "pack-objects" honors "delta" attribute set in
@@ -208,7 +265,7 @@ Updates since v1.5.2
   - "new-workdir" script (in contrib) can now be used with a
     bare repository.
 
-  - "git-mergetool" learned to use gvimdiff.
+  - "git mergetool" learned to use gvimdiff.
 
   - "gitview" (in contrib) has a better blame interface.
 
@@ -223,8 +280,8 @@ Updates since v1.5.2
     "oneline".
 
   - "git p4import" has been demoted to contrib status.  For
-    a superior option, checkout the git-p4 front end to
-    git-fast-import (also in contrib).  The man page and p4
+    a superior option, checkout the "git p4" front end to
+    "git fast-import" (also in contrib).  The man page and p4
     rpm have been removed as well.
 
   - "git mailinfo" (hence "am") now tries to see if the message
@@ -237,13 +294,15 @@ Updates since v1.5.2
     without parameter defined with "func()", not "func(void)")
     have been eradicated.
 
+  - "git tag" and "git verify-tag" have been rewritten in C.
+
 * Performance Tweaks
 
-  - git-pack-objects avoids re-deltification cost by caching
+  - "git pack-objects" avoids re-deltification cost by caching
     small enough delta results it creates while looking for the
     best delta candidates.
 
-  - git-pack-objects learned a new heuristcs to prefer delta
+  - "git pack-objects" learned a new heuristcs to prefer delta
     that is shallower in depth over the smallest delta
     possible.  This improves both overall packfile access
     performance and packfile density.
@@ -260,6 +319,13 @@ Updates since v1.5.2
   - verifying pack contents done by "git fsck --full" got boost
     by carefully choosing the order to verify objects in them.
 
+  - "git read-tree -m" to read into an already populated index
+    has been optimized vastly.  The effect of this can be seen
+    when switching branches that have differences in only a
+    handful paths.
+
+  - "git add paths..." and "git commit paths..." has also been
+    heavily optimized.
 
 Fixes since v1.5.2
 ------------------
@@ -272,8 +338,29 @@ this release, unless otherwise noted.
   - "gitweb" had trouble handling non UTF-8 text with older
     Encode.pm Perl module.
 
---
-exec >/var/tmp/1
-O=v1.5.3-rc4
-echo O=`git describe refs/heads/master`
-git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
+  - "git svn" misparsed the data from the commits in the repository when
+    the user had "color.diff = true" in the configuration.  This has been
+    fixed.
+
+  - There was a case where "git svn dcommit" clobbered changes made on the
+    SVN side while committing multiple changes.
+
+  - "git-write-tree" had a bad interaction with racy-git avoidance and
+    gitattributes mechanisms.
+
+  - "git --bare command" overrode existing GIT_DIR setting and always
+    made it treat the current working directory as GIT_DIR.
+
+  - "git ls-files --error-unmatch" does not complain if you give the
+    same path pattern twice by mistake.
+
+  - "git init" autodetected core.filemode but not core.symlinks, which
+    made a new directory created automatically by "git clone" cumbersome
+    to use on filesystems that require these configurations to be set.
+
+  - "git log" family of commands behaved differently when run as "git
+    log" (no pathspec) and as "git log --" (again, no pathspec).  This
+    inconsistency was introduced somewhere in v1.3.0 series but now has
+    been corrected.
+
+  - "git rebase -m" incorrectly displayed commits that were skipped.