Home Explore Blog CI



git

4th chunk of `Documentation/RelNotes/1.6.1.adoc`
e9ef9455b62254f3b43a0722691748e3bef781570353d7980000000100000d0b
 submodule foreach" subcommand allows you to iterate over checked
  out submodules.

* "git submodule sync" subcommands allows you to update the origin URL
  recorded in submodule directories from the toplevel .gitmodules file.

* "git svn branch" can create new branches on the other end.

* "gitweb" can use more saner PATH_INFO based URL.

(internal)

* "git hash-object" learned to lie about the path being hashed, so that
  correct gitattributes processing can be done while hashing contents
  stored in a temporary file.

* various callers of git-merge-recursive avoid forking it as an external
  process.

* Git class defined in "Git.pm" can be subclasses a bit more easily.

* We used to link GNU regex library as a compatibility layer for some
  platforms, but it turns out it is not necessary on most of them.

* Some path handling routines used fixed number of buffers used alternately
  but depending on the call depth, this arrangement led to hard to track
  bugs.  This issue is being addressed.


Fixes since v1.6.0
------------------

All of the fixes in v1.6.0.X maintenance series are included in this
release, unless otherwise noted.

* Porcelains implemented as shell scripts were utterly confused when you
  entered to a subdirectory of a work tree from sideways, following a
  symbolic link (this may need to be backported to older releases later).

* Tracking symbolic links would work better on filesystems whose lstat()
  returns incorrect st_size value for them.

* "git add" and "git update-index" incorrectly allowed adding S/F when S
  is a tracked symlink that points at a directory D that has a path F in
  it (we still need to fix a similar nonsense when S is a submodule and F
  is a path in it).

* "git am" after stopping at a broken patch lost --whitespace, -C, -p and
  --3way options given from the command line initially.

* "git diff --stdin" used to take two trees on a line and compared them,
  but we dropped support for such a use case long time ago.  This has
  been resurrected.

* "git filter-branch" failed to rewrite a tag name with slashes in it.

* "git http-push" did not understand URI scheme other than opaquelocktoken
  when acquiring a lock from the server (this may need to be backported to
  older releases later).

* After "git rebase -p" stopped with conflicts while replaying a merge,
 "git rebase --continue" did not work (may need to be backported to older
  releases).

* "git revert" records relative to which parent a revert was made when
  reverting a merge.  Together with new documentation that explains issues
  around reverting a merge and merging from the updated branch later, this
  hopefully will reduce user confusion (this may need to be backported to
  older releases later).

* "git rm --cached" used to allow an empty blob that was added earlier to
  be removed without --force, even when the file in the work tree has
  since been modified.

* "git push --tags --all $there" failed with generic usage message without
  telling saying these two options are incompatible.

* "git log --author/--committer" match used to potentially match the
  timestamp part, exposing internal implementation detail.  Also these did
  not work with --fixed-strings match at all.

* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
  correctly.

Title: GIT Updates, Fixes, and Improvements
Summary
This section describes new features and fixes in GIT, including updates to submodule, svn, and gitweb commands, as well as fixes for issues related to symbolic links, tracking, and porcelain scripts, and improvements to commands like git add, git am, git diff, and git rebase.