{"thread":{"id":"20275","subject":"[ANNOUNCE] GIT 1.6.4","startedAt":"2009-07-29T08:46:27Z","lastAt":"2009-07-29T08:46:27Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"119039","messageId":"7vfxcfx4f0.fsf@alter.siamese.dyndns.org","threadId":"20275","inReplyTo":null,"subject":"[ANNOUNCE] GIT 1.6.4","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-29T08:46:27Z","receivedAt":"2009-07-29T08:46:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest feature release GIT 1.6.4 is available at the usual\nplaces:\n\n  http://www.kernel.org/pub/software/scm/git/\n\n  git-1.6.4.tar.{gz,bz2}\t\t\t(source tarball)\n  git-htmldocs-1.6.4.tar.{gz,bz2}\t\t(preformatted docs)\n  git-manpages-1.6.4.tar.{gz,bz2}\t\t(preformatted docs)\n\nThe RPM binary packages for a few architectures are found in:\n\n  RPMS/$arch/git-*-1.6.4-1.fc9.$arch.rpm\t(RPM)\n\nGIT v1.6.4 Release Notes\n========================\n\nWith the next major release, \"git push\" into a branch that is\ncurrently checked out will be refused by default.  You can choose\nwhat should happen upon such a push by setting the configuration\nvariable receive.denyCurrentBranch in the receiving repository.\n\nTo ease the transition plan, the receiving repository of such a\npush running this release will issue a big warning when the\nconfiguration variable is missing.  Please refer to:\n\n  http://git.or.cz/gitwiki/GitFaq#non-bare\n  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007\n\nfor more details on the reason why this change is needed and the\ntransition plan.\n\nFor a similar reason, \"git push $there :$killed\" to delete the branch\n$killed in a remote repository $there, if $killed branch is the current\nbranch pointed at by its HEAD, gets a large warning.  You can choose what\nshould happen upon such a push by setting the configuration variable\nreceive.denyDeleteCurrent in the receiving repository.\n\n\nUpdates since v1.6.3\n--------------------\n\n(subsystems)\n\n * gitweb Perl style clean-up.\n\n * git-svn updates, including a new --authors-prog option to map author\n   names by invoking an external program, 'git svn reset' to unwind\n   'git svn fetch', support for more than one branches, documenting\n   of the useful --minimize-url feature, new \"git svn gc\" command, etc.\n\n(portability)\n\n * We feed iconv with \"UTF-8\" instead of \"utf8\"; the former is\n   understood more widely.  Similarly updated test scripts to use\n   encoding names more widely understood (e.g. use \"ISO8859-1\" instead\n   of \"ISO-8859-1\").\n\n * Various portability fixes/workarounds for different vintages of\n   SunOS, IRIX, and Windows.\n\n * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.\n\n(performance)\n\n * Many repeated use of lstat() are optimized out in \"checkout\" codepath.\n\n * git-status (and underlying git-diff-index --cached) are optimized\n   to take advantage of cache-tree information in the index.\n\n(usability, bells and whistles)\n\n * \"git add --edit\" lets users edit the whole patch text to fine-tune what\n   is added to the index.\n\n * \"git am\" accepts StGIT series file as its input.\n\n * \"git bisect skip\" skips to a more randomly chosen place in the hope\n   to avoid testing a commit that is too close to a commit that is\n   already known to be untestable.\n\n * \"git cvsexportcommit\" learned -k option to stop CVS keywords expansion\n\n * \"git fast-export\" learned to handle history simplification more\n   gracefully.\n\n * \"git fast-export\" learned an option --tag-of-filtered-object to handle\n   dangling tags resulting from history simplification more usefully.\n\n * \"git grep\" learned -p option to show the location of the match using the\n   same context hunk marker \"git diff\" uses.\n\n * https transport can optionally be told that the used client\n   certificate is password protected, in which case it asks the\n   password only once.\n\n * \"git imap-send\" is IPv6 aware.\n\n * \"git log --graph\" draws graphs more compactly by using horizontal lines\n   when able.\n\n * \"git log --decorate\" shows shorter refnames by stripping well-known\n   refs/* prefix.\n\n * \"git push $name\" honors remote.$name.pushurl if present before\n   using remote.$name.url.  In other words, the URL used for fetching\n   and pushing can be different.\n\n * \"git send-email\" understands quoted aliases in .mailrc files (might\n   have to be backported to 1.6.3.X).\n\n * \"git send-email\" can fetch the sender address from the configuration\n   variable \"sendmail.from\" (and \"sendmail.<identity>.from\").\n\n * \"git show-branch\" can color its output.\n\n * \"add\" and \"update\" subcommands to \"git submodule\" learned --reference\n   option to use local clone with references.\n\n * \"git submodule update\" learned --rebase option to update checked\n   out submodules by rebasing the local changes.\n\n * \"gitweb\" can optionally use gravatar to adorn author/committer names.\n\n(developers)\n\n * A major part of the \"git bisect\" wrapper has moved to C.\n\n * Formatting with the new version of AsciiDoc 8.4.1 is now supported.\n\nFixes since v1.6.3\n------------------\n\nAll of the fixes in v1.6.3.X maintenance series are included in this\nrelease, unless otherwise noted.\n\nHere are fixes that this release has, but have not been backported to\nv1.6.3.X series.\n\n * \"git diff-tree -r -t\" used to omit new or removed directories from\n   the output.  df533f3 (diff-tree -r -t: include added/removed\n   directories in the output, 2009-06-13) may need to be cherry-picked\n   to backport this fix.\n\n * The way Git.pm sets up a Repository object was not friendly to callers\n   that chdir around.  It now internally records the repository location\n   as an absolute path when autodetected.\n\n * Removing a section with \"git config --remove-section\", when its\n   section header has a variable definition on the same line, lost\n   that variable definition.\n\n * \"git rebase -p --onto\" used to always leave side branches of a merge\n   intact, even when both branches are subject to rewriting.\n\n * \"git repack\" used to faithfully follow grafts and considered true\n   parents recorded in the commit object unreachable from the commit.\n   After such a repacking, you cannot remove grafts without corrupting\n   the repository.\n\n * \"git send-email\" did not detect erroneous loops in alias expansion.\n"}]}