{"thread":{"id":"17817","subject":"[ANNOUNCE] GIT 1.6.2-rc1","startedAt":"2009-02-16T09:04:10Z","lastAt":"2009-02-16T21:42:59Z","messageCount":4,"participants":["Junio C Hamano","Matt Kraai","Jay Soffian"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"104915","messageId":"7v8wo6bvn9.fsf@gitster.siamese.dyndns.org","threadId":"17817","inReplyTo":null,"subject":"[ANNOUNCE] GIT 1.6.2-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-02-16T09:04:10Z","receivedAt":"2009-02-16T09:04:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"GIT 1.6.2-rc1 is available for testing at the usual places:\n\n  http://www.kernel.org/pub/software/scm/git/\n\n  git-1.6.2-rc1.tar.{gz,bz2}\t\t\t(source tarball)\n  git-htmldocs-1.6.2-rc1.tar.{gz,bz2}\t\t(preformatted docs)\n  git-manpages-1.6.2-rc1.tar.{gz,bz2}\t\t(preformatted docs)\n\nThe RPM binary packages for a few architectures are also provided\nas courtesy.\n\n  testing/git-*-1.6.2-rc1-1.fc9.$arch.rpm\t(RPM)\n\n\nGIT v1.6.2 Release Notes (draft)\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.1\n--------------------\n\n(subsystems)\n\n* git-svn updates.\n\n* gitweb updates, including a new patch view and RSS/Atom feed\n  improvements.\n\n* (contrib/emacs) git.el now has commands for checking out a branch,\n  creating a branch, cherry-picking and reverting commits; vc-git.el\n  is not shipped with git anymore (it is part of official Emacs).\n\n(performance)\n\n* pack-objects autodetects the number of CPUs available and uses threaded\n  version.\n\n(usability, bells and whistles)\n\n* automatic typo correction works on aliases as well\n\n* @{-1} is a way to refer to the last branch you were on.  This is\n  accepted not only where an object name is expected, but anywhere\n  a branch name is expected and acts as if you typed the branch name.\n  E.g. \"git branch --track mybranch @{-1}\", \"git merge @{-1}\", and\n  \"git rev-parse --symbolic-full-name @{-1}\" would work as expected.\n\n* When refs/remotes/origin/HEAD points at a remote tracking branch that\n  has been pruned away, many git operations issued warning when they\n  internally enumerated the refs.  We now warn only when you say \"origin\"\n  to refer to that pruned branch.\n\n* The location of .mailmap file can be configured, and its file format was\n  enhanced to allow mapping an incorrect e-mail field as well.\n\n* \"git add -p\" learned 'g'oto action to jump directly to a hunk.\n\n* \"git add -p\" learned to find a hunk with given text with '/'.\n\n* \"git add -p\" optionally can be told to work with just the command letter\n  without Enter.\n\n* when \"git am\" stops upon a patch that does not apply, it shows the\n  title of the offending patch.\n\n* \"git am --directory=<dir>\" and \"git am --reject\" passes these options\n  to underlying \"git apply\".\n\n* \"git am\" learned --ignore-date option.\n\n* \"git blame\" aligns author names better when they are spelled in\n  non US-ASCII encoding.\n\n* \"git clone\" now makes its best effort when cloning from an empty\n  repository to set up configuration variables to refer to the remote\n  repository.\n\n* \"git checkout -\" is a shorthand for \"git checkout @{-1}\".\n\n* \"git cherry\" defaults to whatever the current branch is tracking (if\n  exists) when the <upstream> argument is not given.\n\n* \"git cvsserver\" can be told not to add extra \"via git-CVS emulator\" to\n  the commit log message it serves via gitcvs.commitmsgannotation\n  configuration.\n\n* \"git cvsserver\" learned to handle 'noop' command some CVS clients seem\n  to expect to work.\n\n* \"git diff\" learned a new option --inter-hunk-context to coalesce close\n  hunks together and show context between them.\n\n* The definition of what constitutes a word for \"git diff --color-words\"\n  can be customized via gitattributes, command line or a configuration.\n\n* \"git diff\" learned --patience to run \"patience diff\" algorithm.\n\n* \"git filter-branch\" learned --prune-empty option that discards commits\n  that do not change the contents.\n\n* \"git fsck\" now checks loose objects in alternate object stores, instead\n  of misreporting them as missing.\n\n* \"git gc --prune\" was resurrected to allow \"git gc --no-prune\" and\n  giving non-default expiration period e.g. \"git gc --prune=now\".\n\n* \"git grep -w\" and \"git grep\" for fixed strings have been optimized.\n\n* \"git mergetool\" learned -y(--no-prompt) option to disable prompting.\n\n* \"git rebase -i\" can transplant a history down to root to elsewhere\n  with --root option.\n\n* \"git reset --merge\" is a new mode that works similar to the way\n  \"git checkout\" switches branches, taking the local changes while\n  switching to another commit.\n\n* \"git submodule update\" learned --no-fetch option.\n\n* \"git tag\" learned --contains that works the same way as the same option\n  from \"git branch\".\n\n\nFixes since v1.6.1\n------------------\n\nAll of the fixes in v1.6.1.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.1.X series.\n\n* \"git-add sub/file\" when sub is a submodule incorrectly added the path to\n  the superproject.\n\n* \"git bundle\" did not exclude annotated tags even when a range given\n  from the command line wanted to.\n\n* \"git filter-branch\" unnecessarily refused to work when you had\n  checked out a different commit from what is recorded in the superproject\n  index in a submodule.\n\n* \"git filter-branch\" incorrectly tried to update a nonexistent work tree\n  at the end when it is run in a bare repository.\n\n* \"git mergetool\" used to ignore autocrlf and other attributes\n  based content rewriting.\n\n* branch switching and merges had a silly bug that did not validate\n  the correct directory when making sure an existing subdirectory is\n  clean.\n\n* \"git -p cmd\" when cmd is not a built-in one left the display in funny state\n  when killed in the middle.\n\n\n----------------------------------------------------------------\n\nChanges since v1.6.2-rc0 are as follows:\n\nAlexandre Julliard (1):\n      Describe notable git.el changes in the release notes\n\nAnton Gyllenberg (1):\n      test case for regression caused by git-svn empty symlink fix\n\nChristian Couder (1):\n      rev-list: fix showing distance when using --bisect-all\n\nDeskin Miller (1):\n      git-svn: Print revision while searching for earliest use of path\n\nDévai Tamás (1):\n      git-svn: Fix for rewriteRoot URL containing username.\n\nElijah Newren (1):\n      fast-export: ensure we traverse commits in topological order\n\nEric Kidd (1):\n      filter-branch: Add more error-handling\n\nEric Wong (2):\n      git-svn: allow disabling expensive broken symlink checks\n      git-svn: fix broken symlink workaround when switching branches\n\nFabian Franz (1):\n      submodule: add --no-fetch parameter to update command\n\nJacob Helwig (1):\n      Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter\n\nJakub Narebski (1):\n      gitweb: Better regexp for SHA-1 committag match\n\nJeff King (1):\n      symbolic-ref: allow refs/<whatever> in HEAD\n\nJeremy White (1):\n      Update documentation to add further information about using Thunderbird with git-imap-send.\n\nJohannes Schindelin (4):\n      Let ls-files strip trailing slashes in submodules' paths\n      submodule: warn about non-submodules\n      Add two extra tests for git rebase\n      gc: make --prune useful again by accepting an optional parameter\n\nJohannes Sixt (4):\n      Make test-path-utils more robust against incorrect use\n      Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()\n      Test and fix normalize_path_copy()\n      Remove unused normalize_absolute_path()\n\nJunio C Hamano (16):\n      Revert \"Merge branch 'js/notes'\"\n      Modernize t5400 test script\n      remote prune: warn dangling symrefs\n      Warn use of \"origin\" when remotes/origin/HEAD is dangling\n      Drop double-semicolon in C\n      receive-pack: receive.denyDeleteCurrent\n      builtin-receive-pack.c: do not initialize statics to 0\n      revision traversal and pack: notice and die on missing commit\n      Squelch overzealous \"ignoring dangling symref\" in an empty repository\n      Make repack less likely to corrupt repository\n      Prepare for 1.6.1.4.\n      Revert \"validate_headref: tighten ref-matching to just branches\"\n      Install the default \"master\" branch configuration after cloning a void\n      Teach the \"@{-1} syntax to \"git branch\"\n      Teach @{-1} to git merge\n      RelNotes Update\n\nKeith Cascio (1):\n      Remove redundant bit clears from diff_setup()\n\nLars Hjemli (1):\n      tree.c: allow read_tree_recursive() to traverse gitlink entries\n\nMarcel M. Cary (1):\n      git-sh-setup: Use \"cd\" option, not /bin/pwd, for symlinked work tree\n\nMarius Storm-Olsen (5):\n      Add mailmap.file as configurational option for mailmap location\n      Add find_insert_index, insert_at_index and clear_func functions to string_list\n      Add map_user() and clear_mailmap() to mailmap\n      Change current mailmap usage to do matching on both name and email of author/committer.\n      Move mailmap documentation into separate file\n\nMark Burton (1):\n      git-rebase.txt: --interactive does not work with --whitespace\n\nMatt Kraai (1):\n      bash-completion: Complete the values of color.interactive, color.ui, color.pager\n\nMatt McCutchen (1):\n      gitweb: add $prevent_xss option to prevent XSS by repository content\n\nMichael J Gruber (1):\n      Fix the installation path for html documentation\n\nNazri Ramliy (1):\n      Bugfix: GIT_EXTERNAL_DIFF with more than one changed files\n\nPat Notz (1):\n      Fix contrib/hooks/post-receive-email for new duplicate branch\n\nRené Scharfe (2):\n      Fix GIT_CEILING_DIRECTORIES on Windows\n      builtin-receive-pack.c: fix compiler warnings about format string\n\nSZEDER Gábor (3):\n      Move 'rev-parse --git-dir' test to t1500\n      t1500: more 'git rev-parse --git-dir' tests\n      bash: fix misspelled 'git svn' option\n\nSam Vilain (1):\n      git-svn: abstract out a block into new method other_gs()\n\nSanti Béjar (1):\n      doc/bundle: Use the more conventional suffix '.bundle'\n\nShawn O. Pearce (2):\n      Clear the delta base cache during fast-import checkpoint\n      Clear the delta base cache if a pack is rebuilt\n\nSitaram Chamarty (1):\n      Documentation: clarify commits affected by gitk --merge\n\nStephan Beyer (3):\n      add -p: get rid of Git.pm warnings about unitialized values\n      Makefile: resort filenames alphabetically\n      Generalize and libify index_is_dirty() to index_differs_from(...)\n\nTay Ray Chuan (1):\n      use a hash of the lock token as the suffix for PUT/MOVE\n\nTed Pavlic (2):\n      completion: Fix GIT_PS1_SHOWDIRTYSTATE to prevent unbound variable errors.\n      completion: Get rid of tabbed indentation in comments. Replace with spaces.\n\nThomas Rast (2):\n      log: do not print ellipses with --abbrev-commit\n      Documentation: pruning recipe for destructive filter-branch\n\nTodd Zullinger (1):\n      git-web--browse: Fix check for /bin/start\n"},{"id":"104969","messageId":"loom.20090216T163559-608@post.gmane.org","threadId":"17817","inReplyTo":"7v8wo6bvn9.fsf@gitster.siamese.dyndns.org","subject":"Re: [ANNOUNCE] GIT 1.6.2-rc1","fromName":"Matt Kraai","fromEmail":"kraai@ftbfs.org","sentAt":"2009-02-16T16:38:08Z","receivedAt":"2009-02-16T16:38:08Z","isPatch":false,"sender":{"key":"kraai@ftbfs.org","avatar":null},"body":"Junio C Hamano <gitster <at> pobox.com> writes:\n>   http://www.kernel.org/pub/software/scm/git/\n> \n>   git-1.6.2-rc1.tar.{gz,bz2}\t\t\t(source tarball)\n>   git-htmldocs-1.6.2-rc1.tar.{gz,bz2}\t\t(preformatted docs)\n>   git-manpages-1.6.2-rc1.tar.{gz,bz2}\t\t(preformatted docs)\n\nThe tarballs in that directory have a period between \"1.6.2\" and \"rc1\", rather\nthan a hyphen.\n\n-- \nMatt\n"},{"id":"104976","messageId":"76718490902160902q50c0d730j4f18664455626b93@mail.gmail.com","threadId":"17817","inReplyTo":"7v8wo6bvn9.fsf@gitster.siamese.dyndns.org","subject":"Re: [ANNOUNCE] GIT 1.6.2-rc1","fromName":"Jay Soffian","fromEmail":"jaysoffian@gmail.com","sentAt":"2009-02-16T17:02:27Z","receivedAt":"2009-02-16T17:02:27Z","isPatch":false,"sender":{"key":"jaysoffian@gmail.com","avatar":"https://avatars.githubusercontent.com/u/155970?v=4"},"body":"On Mon, Feb 16, 2009 at 4:04 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> * @{-1} is a way to refer to the last branch you were on.  This is\n>  accepted not only where an object name is expected, but anywhere\n>  a branch name is expected and acts as if you typed the branch name.\n>  E.g. \"git branch --track mybranch @{-1}\", \"git merge @{-1}\", and\n>  \"git rev-parse --symbolic-full-name @{-1}\" would work as expected.\n\nI always find explicit examples clearer, especially since you really\nhave no idea what the reader expects. Some folks just have\nunreasonable expectations. :-)\n\nSo,\n\n master> git checkout next\n   next> git branch --track mybranch @{-1}\n\nCreates \"mybranch\" from master, *not from next*, correct?\n\nAlso, the \"--track\" option is an unnecessary distraction to the\nexample, isn't it?\n\nj.\n"},{"id":"105013","messageId":"7vvdradpng.fsf@gitster.siamese.dyndns.org","threadId":"17817","inReplyTo":"76718490902160902q50c0d730j4f18664455626b93@mail.gmail.com","subject":"Re: [ANNOUNCE] GIT 1.6.2-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-02-16T21:42:59Z","receivedAt":"2009-02-16T21:42:59Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jay Soffian <jaysoffian@gmail.com> writes:\n\n>  master> git checkout next\n>    next> git branch --track mybranch @{-1}\n>\n> Creates \"mybranch\" from master, *not from next*, correct?\n>\n> Also, the \"--track\" option is an unnecessary distraction to the\n> example, isn't it?\n\nWhen a new branch is created in \"git branch --track A B\" form, B is used\nin two ways.\n\n * Obviously, the new branch A initially points at the same commit as\n   commit B.  For this, B does not have to be the name of a branch.  It\n   only has to be a commit-ish.\n\n * With --track, the new branch A is marked as a fork of the branch B, but\n   obviously for this additional feature to kick in, you cannot give an\n   arbitrary commit-ish as B.  It has to be the name of a branch you are\n   forking from.\n\nIf B were spelled @{1}, the latter does not happen, as @{1} is a way to\nsay \"The _commit_ my current branch was pointing at before it point the\ncurrent commit\".  On the other hand, @{-1} is a way to say \"The _branch_\nI switched from my last 'git checkout' command\", and the command ought to\nbehave the same as if you gave it a branch name, and --track takes place.\n\nSo having --track explicitly in the example is a good way to clarify the\npoint that @{-N} notation is a way to spell _a branch name_, and it is not\nmerely another commit-ish.\n"}]}