Home Explore Blog CI



git

1st chunk of `Documentation/RelNotes/1.6.3.adoc`
c1944f5073b5233fdeacb23a98e3f22decb46bc49350aaea0000000100000d5e
GIT v1.6.3 Release Notes
========================

With the next major release, "git push" into a branch that is
currently checked out will be refused by default.  You can choose
what should happen upon such a push by setting the configuration
variable receive.denyCurrentBranch in the receiving repository.

To ease the transition plan, the receiving repository of such a
push running this release will issue a big warning when the
configuration variable is missing.  Please refer to:

  https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/GitFaq.html#non-bare
  https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/

for more details on the reason why this change is needed and the
transition plan.

For a similar reason, "git push $there :$killed" to delete the branch
$killed in a remote repository $there, if $killed branch is the current
branch pointed at by its HEAD, gets a large warning.  You can choose what
should happen upon such a push by setting the configuration variable
receive.denyDeleteCurrent in the receiving repository.

When the user does not tell "git push" what to push, it has always
pushed matching refs.  For some people it is unexpected, and a new
configuration variable push.default has been introduced to allow
changing a different default behaviour.  To advertise the new feature,
a big warning is issued if this is not configured and a git push without
arguments is attempted.


Updates since v1.6.2
--------------------

(subsystems)

* various git-svn updates.

* git-gui updates, including an update to Russian translation, and a
  fix to an infinite loop when showing an empty diff.

* gitk updates, including an update to Russian translation and improved Windows
  support.

(performance)

* many uses of lstat(2) in the codepath for "git checkout" have been
  optimized out.

(usability, bells and whistles)

* Boolean configuration variable yes/no can be written as on/off.

* rsync:/path/to/repo can be used to run git over rsync for local
  repositories.  It may not be useful in practice; meant primarily for
  testing.

* http transport learned to prompt and use password when fetching from or
  pushing to http://user@host.xz/ URL.

* (msysgit) progress output that is sent over the sideband protocol can
  be handled appropriately in Windows console.

* "--pretty=<style>" option to the log family of commands can now be
  spelled as "--format=<style>".  In addition, --format=%formatstring
  is a short-hand for --pretty=tformat:%formatstring.

* "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".

* "--graph" to the "git log" family can draw the commit ancestry graph
  in colors.

* If you realize that you botched the patch when you are editing hunks
  with the 'edit' action in git-add -i/-p, you can abort the editor to
  tell git not to apply it.

* @{-1} is a new way to refer to the last branch you were on introduced in
  1.6.2, but the initial implementation did not teach this to a few
  commands.  Now the syntax works with "branch -m @{-1} newname".

* git-archive learned --output=<file> option.

* git-archive takes attributes from the tree being archived; strictly
  speaking, this is an incompatible behaviour change, but is a good one.
  Use --worktree-attributes option to allow it to read attributes from
  the work tree as before (deprecated git-tar tree command always reads
  attributes from the work tree).

Title: GIT Version 1.6.3 Release Notes
Summary
This release of GIT introduces several changes and improvements, including new configuration variables to control push behavior, updates to git-svn, git-gui, and gitk, and various performance and usability enhancements, such as optimized checkout and improved Windows support.