Home Explore Blog CI



git

2nd chunk of `Documentation/RelNotes/1.6.0.adoc`
561e8bec7f05252200b283f5b978fed328a1f63ccd4c2ed60000000100000dbd
 from the tutorial and made typography
  more consistent.

* Disambiguating "--" between revs and paths is finally documented.

(performance, robustness, sanity etc.)

* index-pack used too much memory when dealing with a deep delta chain.
  This has been optimized.

* reduced excessive inlining to shrink size of the "git" binary.

* verify-pack checks the object CRC when using version 2 idx files.

* When an object is corrupt in a pack, the object became unusable even
  when the same object is available in a loose form,  We now try harder to
  fall back to these redundant objects when able.  In particular, "git
  repack -a -f" can be used to fix such a corruption as long as necessary
  objects are available.

* Performance of "git-blame -C -C" operation is vastly improved.

* git-clone does not create refs in loose form anymore (it behaves as
  if you immediately ran git-pack-refs after cloning).  This will help
  repositories with insanely large number of refs.

* core.fsyncobjectfiles configuration can be used to ensure that the loose
  objects created will be fsync'ed (this is only useful on filesystems
  that does not order data writes properly).

* "git commit-tree" plumbing can make Octopus with more than 16 parents.
  "git commit" has been capable of this for quite some time.

(usability, bells and whistles)

* even more documentation pages are now accessible via "man" and "git help".

* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop
  the discovery process of the toplevel of working tree; this may be useful
  when you are working in a slow network disk and are outside any working tree,
  as bash-completion and "git help" may still need to run in these places.

* By default, stash entries never expire.  Set reflogexpire in [gc
  "refs/stash"] to a reasonable value to get traditional auto-expiration
  behaviour back

* Longstanding latency issue with bash completion script has been
  addressed.  This will need to be backmerged to 'maint' later.

* pager.<cmd> configuration variable can be used to enable/disable the
  default paging behaviour per command.

* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk
  manually.

* git-am records the original tip of the branch in ORIG_HEAD before it
  starts applying patches.

* git-apply can handle a patch that touches the same path more than once
  much better than before.

* git-apply can be told not to trust the line counts recorded in the input
  patch but recount, with the new --recount option.

* git-apply can be told to apply a patch to a path deeper than what the
  patch records with --directory option.

* git-archive can be told to omit certain paths from its output using
  export-ignore attributes.

* git-archive uses the zlib default compression level when creating
  zip archive.

* git-archive's command line options --exec and --remote can take their
  parameters as separate command line arguments, similar to other commands.
  IOW, both "--exec=path" and "--exec path" are now supported.

* With -v option, git-branch describes the remote tracking statistics
  similar to the way git-checkout reports by how many commits your branch
  is ahead/behind.

* git-branch's --contains option used to always require a commit parameter
  to limit the branches with; it now defaults to list branches that
  contains HEAD if this parameter is omitted.

* git-branch's --merged and --no-merged option used to always limit the
  branches relative to the HEAD, but they can

Title: GIT v1.6.0 Updates and Enhancements
Summary
The GIT v1.6.0 release includes various updates and enhancements to performance, usability, and functionality, such as optimizations to memory usage, improvements to the 'git-blame' operation, and new features like the ability to edit patch hunks manually and better handling of patches by 'git-apply'.