{"thread":{"id":"8140","subject":"What's in git.git (stable)","startedAt":"2007-05-13T22:30:18Z","lastAt":"2007-08-07T06:22:32Z","messageCount":34,"participants":["Junio C Hamano","Johannes Schindelin","Johannes Sixt","Sven Verdoolaege","Brian Downing","David Kastrup","Thomas Glanzmann","Theodore Tso"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"42062","messageId":"7v4pmgqrut.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":null,"subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-13T22:30:18Z","receivedAt":"2007-05-13T22:30:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"We accumulated quite a few fixes on 'maint' since v1.5.1.4, and\nthey apply to 'master' as well.\n\nThings that are not in 'master' yet but are scheduled for v1.5.2\nfinal are a performance bug fix for cvsexportcommit (in 'pu')\nand user manual updates to add a bit of source code tour, which\nhopefully would happen by the middle of the week, and then we\nwill have the final v1.5.2 next weekend.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since v1.5.1.4\n\n Alex Riesen (1):\n  Allow fetching references from any namespace\n\n Eric Wong (4):\n  git-svn: don't drop the username from URLs when dcommit is run\n  git-svn: clean up caching of SVN::Ra functions\n  git-svn: fix segfaults due to initial SVN pool being cleared\n  git-svn: don't attempt to minimize URLs by default\n\n Jan Hudec (1):\n  Updated documentation of hooks in git-receive-pack.\n\n Jari Aalto (1):\n  SPECIFYING RANGES typo fix: it it => it is\n\n Junio C Hamano (4):\n  git-clone: don't get fooled by $PWD\n  .mailmap: add some aliases\n  checkout: allow detaching to HEAD even when switching to the tip of a branch\n  git-config: do not forget seeing \"a.b.var\" means we are out of \"a.var\" section.\n\n Marco Costalba (1):\n  Fix an unmatched comment end in arm/sha1_arm.S\n\n Matthieu Castet (1):\n  Remove stale non-static-inline prototype for tree_entry_extract()\n\n Quy Tonthat (1):\n  RPM spec: include files in technical/ to package.\n\n Richard P. Curnow (2):\n  Fix documentation of tag in git-fast-import.txt\n  Fix documentation of tag in git-fast-import.txt\n\n Shawn O. Pearce (1):\n  Properly handle '0' filenames in import-tars\n\n Steffen Prohaska (2):\n  tiny fix in documentation of git-clone\n  git-config: test for 'do not forget \"a.b.var\" ends \"a.var\" section'.\n\n\n* The 'master' branch has these since v1.5.2-rc3, in addition to the above.\n\n Frank Lichtenheld (1):\n  cvsserver: Limit config parser to needed options\n\n Jakub Narebski (2):\n  gitweb: Test if $from_id and $to_id are defined before comparison\n  gitweb: Check if requested object exists\n\n Jan Hudec (1):\n  Minor fixup to documentation of hooks in git-receive-pack.\n\n Jeff King (1):\n  git-add: allow path limiting with -u\n\n Junio C Hamano (5):\n  Minor copyediting on Release Notes for 1.5.2\n  Add has_symlink_leading_path() function.\n  apply: do not get confused by symlinks in the middle\n  read-tree -m -u: avoid getting confused by intermediate symlinks.\n  Link to HTML version of external doc if available\n\n Junio Hamano (1):\n  t9400: Use the repository config and nothing else.\n\n Lars Hjemli (1):\n  git-archive: don't die when repository uses subprojects\n"},{"id":"42346","messageId":"7vhcqccnbm.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7v4pmgqrut.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-17T00:21:01Z","receivedAt":"2007-05-17T00:21:01Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It probably would be more interesting to look at the earlier\n\"What's not in 1.5.2\" messages, but here is the current status\nof my tree on the 'stable' front.\n\nI'd expect to have 1.5.1.5 from 'maint' perhaps on Saturday, and\n1.5.2 from 'master' hopefully on Sunday if everything goes well.\n\n----------------------------------------------------------------\n* The 'maint' branch has these fixes since the last announcement.\n\n Andy Whitcroft (1):\n  git name-rev writes beyond the end of malloc() with large generations\n\n Frank Lichtenheld (3):\n  builtin-log.c: Fix typo in comment\n  Documentation: format-patch has no --mbox option\n  git-am: Clean up the asciidoc documentation\n\n Jakub Narebski (1):\n  gitweb: Add a few comments about %feature hash\n\n Jeff King (1):\n  format-patch: add MIME-Version header when we add content-type.\n\n Johannes Schindelin (1):\n  import-tars: Use the \"Link indicator\" to identify directories\n\n Junio C Hamano (2):\n  Fix git-clone buglet for remote case.\n  Prepare for 1.5.1.5 Release Notes\n\n Quy Tonthat (1):\n  Documentation/branch: fix small typo in -D example\n\n Steffen Prohaska (1):\n  Fixed link in user-manual\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Andy Parkins (1):\n  Use $Id$ as the ident attribute keyword rather than $ident$ to be consistent with other VCSs\n\n Frank Lichtenheld (1):\n  cvsserver: Don't send mixed messages to clients\n\n Jakub Narebski (5):\n  gitweb: Fix \"Use of unitialized value\" warnings in empty repository\n  Documentation: Split description of pretty formats of commit log\n  gitweb: Do not use absolute font sizes\n  gitweb: Separate search regexp from search text\n  gitweb: Empty patch for merge means trivial merge, not no differences\n\n Jeff King (1):\n  Documentation/git-add: clarify -u with path limiting\n\n Johan Herland (2):\n  Fix signedness on return value from xread()\n  Ensure return value from xread() is always stored into an ssize_t\n"},{"id":"42590","messageId":"7vveepz8pr.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vhcqccnbm.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-19T05:24:48Z","receivedAt":"2007-05-19T05:24:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I've done release 1.5.1.5, which hopefully would be the second\nfrom the last release in 1.5.1 maintenance series (I somehow\nended up missing documentation formatting updates from Matthias\nKestenholz, which fix longstanding ugly formatting mistakes in\nsome manual pages).\n\nThe tip of 'master' will be tagged v1.5.2 hopefully in 24 hours.\nNothing earth shattering since the last message of this series.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since the last announcement.\n\n J. Bruce Fields (10):\n  user-manual: revise birdseye-view chapter\n  glossary: expand and clarify some definitions, prune cross-references\n  user-manual: move quick-start to an appendix\n  Documentation: remove howto's now incorporated into manual\n  user-manual: move howto/make-dist.txt into user manual\n  user-manual: move howto/using-topic-branches into manual\n  user-manual: add a \"counting commits\" example\n  user-manual: introduce git\n  user-manual: listing commits reachable from some refs not others\n  user-manual: reorganize public git repo discussion\n\n Johannes Schindelin (1):\n  Add a birdview-on-the-source-code section to the user manual\n\n Junio C Hamano (1):\n  GIT v1.5.1.5\n\n Matthias Kestenholz (2):\n  Documentation: Added [verse] to SYNOPSIS where necessary\n  Documentation: Reformatted SYNOPSIS for several commands\n\n Michael Hendricks (2):\n  git-send-email: allow leading white space on mutt aliases\n  Document core.excludesfile for git-add\n\n Petr Baudis (1):\n  Documentation: git-rev-list's \"patterns\"\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Andy Parkins (1):\n  Fix crlf attribute handling to match documentation\n\n Jakub Narebski (2):\n  gitweb: Fix error in git_patchset_body for deletion in merge commit\n  gitweb: Fix \"Use of uninitialized value\" warning in git_feed\n\n Junio C Hamano (3):\n  gitweb: fix another use of undefined value\n  Add link to 1.5.1.5 release notes.\n  Documentation/git.txt: Update links to older documentation pages.\n\n Petr Baudis (4):\n  gitweb: Normalize searchbar font size\n  gitweb: Add support for grep searches\n  gitweb: Allow arbitrary strings to be dug with pickaxe\n  gitweb: Remove redundant $searchtype setup\n\n René Scharfe (1):\n  git-archive: convert archive entries like checkouts do\n\n Shawn O. Pearce (1):\n  git-gui: Gracefully handle bad TCL_PATH at compile time\n\n Steffen Prohaska (1):\n  Optimized cvsexportcommit: calling 'cvs status' once instead of once per touched file.\n"},{"id":"43055","messageId":"7vmyzv1acz.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vveepz8pr.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-23T21:46:52Z","receivedAt":"2007-05-23T21:46:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Although there are a few post release fixups queued for v1.5.2.1\non 'maint' already, all things considered I must say v1.5.2 was\na quite good release.  There isn't a huge \"oops, hand me a brown\npaper bag please\" fix yet.  Knock, knock...\n\nOn the 'master' front, as promised, the first batch that were on\nhold since v1.5.2-rc1 is in.  Nothing earth-shattering, really.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since v1.5.2.\n\n Fernando J. Pereda (1):\n  Use PATH_MAX instead of TEMPFILE_PATH_LEN\n\n Frank Lichtenheld (2):\n  t1300: Add tests for git-config --bool --get\n  git-config: Correct asciidoc documentation for --int/--bool\n\n Jim Meyering (1):\n  git-daemon: don't ignore pid-file write failure\n\n Johannes Schindelin (2):\n  SubmittingPatches: mention older C compiler compatibility\n  git-status: respect core.excludesFile\n\n Jonas Fonseca (1):\n  branch: fix segfault when resolving an invalid HEAD\n\n Junio C Hamano (2):\n  annotate: make it work from subdirectories.\n  git-cvsserver: fix disabling service via per-method config\n\n Paolo Bonzini (1):\n  Document branch.autosetupmerge.\n\n Stephan Springl (1):\n  Use git-for-each-ref to check whether the origin branch exists.\n\n Sven Verdoolaege (1):\n  unpack-trees.c: verify_uptodate: remove dead code\n\n\n* The 'master' branch has these since v1.5.2, in addition to the above.\n\n Alex Riesen (1):\n  Fix the progress code to output LF only when it is really needed\n\n Dana How (1):\n  Custom compression levels for objects and packs\n\n Jakub Narebski (2):\n  gitweb: Add test t9500 for gitweb (as standalone script)\n  Add an option to git-ls-tree to display also the size of blob\n\n James Bowes (1):\n  Add colour support in rebase and merge tree diff stats output.\n\n Junio C Hamano (2):\n  git-apply: Fix removal of new trailing blank lines.\n  Fix command line parameter parser of revert/cherry-pick\n\n Marco Costalba (1):\n  Teach 'git-apply --whitespace=strip' to remove empty lines at the end of file\n\n Martin Waitz (1):\n  rename dirlink to gitlink.\n\n Michael S. Tsirkin (1):\n  connect: display connection progress\n\n Nicolas Pitre (3):\n  allow for undeltified objects not to be reused\n  make \"repack -f\" imply \"pack-objects --no-reuse-object\"\n  deprecate the new loose object header format\n\n Petr Baudis (1):\n  git-rev-list: Add regexp tuning options\n\n Shawn O. Pearce (1):\n  Teach git-describe how to run name-rev\n\n Sven Verdoolaege (1):\n  git-update-ref: add --no-deref option for overwriting/detaching ref\n\n Theodore Ts'o (1):\n  Add --aggressive option to 'git gc'\n"},{"id":"43554","messageId":"7vejl0546b.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vmyzv1acz.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-29T10:12:44Z","receivedAt":"2007-05-29T10:12:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Time for 1.5.2.1 perhaps.\n\nThe second batch of random changes are in 'master' now.  This is\na rather large-ish looking one.  Handle it with care.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since the last announcement.\n\n Andy Parkins (2):\n  Fix mishandling of $Id$ expanded in the repository copy in convert.c\n  Add test case for $Id$ expanded in the repository\n\n Carlos Rica (1):\n  fix memory leak in parse_object when check_sha1_signature fails\n\n Eric Wong (1):\n  git-svn: avoid md5 calculation entirely if SVN doesn't provide one\n\n Frank Lichtenheld (3):\n  cvsserver: Correct inetd.conf example in asciidoc documentation\n  cvsserver: Note that CVS_SERVER can also be specified as method variable\n  cvsserver: Fix some typos in asciidoc documentation\n\n Jakub Narebski (3):\n  Documentation: Clean up links in GIT Glossary\n  Replace the last 'dircache's by 'index'\n  Documentation: Add definition of \"evil merge\" to GIT Glossary\n\n James Bowes (1):\n  Documentation: fix git-config.xml generation\n\n James Y Knight (1):\n  Fix git-svn to handle svn not reporting the md5sum of a file, and test.\n\n Jeff King (2):\n  git-am: use printf instead of echo on user-supplied strings\n  More echo \"$user_message\" fixes.\n\n Johan Herland (1):\n  Fix stupid typo in lookup_tag()\n\n Jonas Fonseca (1):\n  Update bash completion to ignore some more plumbing commands\n\n Junio C Hamano (3):\n  name-rev: tolerate clock skew in committer dates\n  git-commit: use printf '%s\\n' instead of echo on user-supplied strings\n  Add tests for the last two fixes.\n\n Nguyễn Thái Ngọc Duy (1):\n  Makefile: Remove git-fsck and git-verify-pack from PROGRAMS\n\n Shawn O. Pearce (12):\n  git-gui: Tighten internal pattern match for lib/ directory\n  Refactor fast-import branch creation from existing commit\n  Fix possible coredump with fast-import --import-marks\n  Hide the plumbing diff-{files,index,tree} from bash completion\n  Teach bash completion about git-shortlog\n  Remove a duplicate --not option in bash completion\n  Update bash completion header documentation\n  Teach bash completion about 'git remote update'\n  Teach bash completion about recent log long options\n  Update bash completion for git-config options\n  Correct key bindings to Control-<foo>\n  git-gui: Guess our share/git-gui/lib path at runtime if possible\n\n Simon Hausmann (2):\n  fast-import: Fix uninitialized variable\n  fast-import: Fix crash when referencing already existing objects\n\n Steffen Prohaska (1):\n  user-manual: fixed typo in example\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Alex Riesen (6):\n  Add run_command_v_opt_cd: chdir into a directory before exec\n  Add ability to specify environment extension to run_command\n  Allow environment variables to be unset in the processes started by run_command\n  Verbose connect messages to show the IP addresses used\n  Add another verbosity level to git-fetch\n  Add a configuration option to control diffstat after merge\n\n Dana L. How (7):\n  Alter sha1close() 3rd argument to request flush only\n  git-repack --max-pack-size: new file statics and code restructuring\n  git-repack --max-pack-size: write_{object,one}() respect pack limit\n  git-repack --max-pack-size: split packs as asked by write_{object,one}()\n  git-repack --max-pack-size: add option parsing to enable feature\n  pack-objects: clarification & option checks for --max-pack-size\n  Ensure git-repack -a -d --max-pack-size=N deletes correct packs\n\n Daniel Barkalow (5):\n  Move remote parsing into a library file out of builtin-push.\n  Move refspec parser from connect.c and cache.h to remote.{c,h}\n  Add handlers for fetch-side configuration of remotes.\n  Update local tracking refs when pushing\n  Move refspec pattern matching to match_refs().\n\n Fernando J. Pereda (1):\n  Teach mailsplit about Maildir's\n\n Frank Lichtenheld (5):\n  t9400: Add test cases for config file handling\n  t9400: Add some more cvs update tests\n  t9400: Add some basic pserver tests\n  t9400: Work around CVS' deficiencies\n  cvsserver: Handle 'cvs login'\n\n Junio C Hamano (4):\n  pack-objects: pass fullname down to add_object_entry()\n  Teach \"delta\" attribute to pack-objects.\n  builtin-pack-objects: remove unnecessary code for no-delta\n  mailsplit: fix for more than one input files\n\n Linus Torvalds (2):\n  Make \"git gc\" pack all refs by default\n  Make the pack-refs interfaces usable from outside\n\n Mark Levedahl (1):\n  gitweb.perl - Optionally send archives as .zip files\n\n Nicolas Pitre (3):\n  fixes to output of git-verify-pack -v\n  improve delta long block matching with big files\n  update diff-delta.c copyright\n\n Robin Rosenberg (1):\n  Add option to cvs update before export\n\n Shawn O. Pearce (1):\n  Allow contrib new-workdir to link into bare repositories\n"},{"id":"43829","messageId":"7v4plqoyg5.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vejl0546b.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-06-02T21:09:46Z","receivedAt":"2007-06-02T21:09:46Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I will do a v1.5.2.1 with 'maint' and push it out this weekend.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since the last announcement.\n\n Frank Lichtenheld (2):\n  git-config: Various small fixes to asciidoc documentation\n  git-config: Improve documentation of git-config file handling\n\n Jeff King (1):\n  Documentation: robustify asciidoc GIT_VERSION replacement\n\n Jerald Fitzjerald (1):\n  decode_85(): fix missing return.\n\n Josh Triplett (1):\n  Create a new manpage for the gitignore format, and reference it elsewhere\n\n Kristian Høgsberg (1):\n  Use =20 when rfc2047 encoding spaces.\n\n Linus Torvalds (1):\n  fix signed range problems with hex conversions\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n James Bowes (1):\n  rev-parse: Identify short sha1 sums correctly.\n\n Jonas Fonseca (2):\n  Fix git-am(1) synopsis formatting\n  git-rebase: suggest to use git-add instead of git-update-index\n\n Julian Phillips (1):\n  Makefile: Use generic rule to build test programs\n\n Junio C Hamano (1):\n  Add DLH to .mailmap\n\n Martin Koegler (4):\n  builtin-pack-objects: don't fail, if delta is not possible\n  git-pack-objects: cache small deltas between big objects\n  builtin-pack-object: cache small deltas\n  diff-delta: use realloc instead of xrealloc\n\n Nicolas Pitre (2):\n  fix repack with --max-pack-size\n  always start looking up objects in the last used pack first\n\n Shawn O. Pearce (7):\n  Lazily open pack index files on demand\n  Micro-optimize prepare_alt_odb\n  Attempt to delay prepare_alt_odb during get_sha1\n  Test for recent rev-parse $abbrev_sha1 regression\n  Simplify index access condition in count-objects, pack-redundant\n  Ensure the pack index is opened before access\n  Style nit - don't put space after function names\n\n Theodore Ts'o (1):\n  Fix minor grammatical typos in the git-gc man page\n"},{"id":"44214","messageId":"7v7iqgtt1j.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7v4plqoyg5.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-06-07T02:08:56Z","receivedAt":"2007-06-07T02:08:56Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It has been slow on the stable front.\n\n* The 'maint' branch has these fixes since the last announcement.\n\n Johannes Sixt (1):\n  Accept dates before 2000/01/01 when specified as seconds since the epoch\n\n Michael Milligan (1):\n  git-cvsimport: Make sure to use $git_dir always instead of .git sometimes\n\n Sam Vilain (1):\n  fix documentation of unpack-objects -n\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Geert Bosch (1):\n  Unify write_index_file functions\n\n Johannes Schindelin (5):\n  Update to SubmittingPatches\n  git-fsck: learn about --verbose\n  Move buffer_is_binary() to xdiff-interface.h\n  merge-recursive: refuse to merge binary files\n  t5000: skip ZIP tests if unzip was not found\n\n Johannes Sixt (1):\n  Makefile: Remove git-merge-base from PROGRAMS.\n\n Jon Loeliger (1):\n  Add the --numbered-files option to git-format-patch.\n\n Josh Triplett (1):\n  Fix typo in git-mergetool\n\n Junio C Hamano (4):\n  Remove git-applypatch\n  Release Notes: start preparing for 1.5.3\n  git-apply: what is detected and fixed is not just trailing spaces.\n  git-branch --track: fix tracking branch computation.\n\n Lars Hjemli (2):\n  Add git-submodule command\n  Add basic test-script for git-submodule\n\n Martin Koegler (1):\n  gitweb: Handle non UTF-8 text better\n\n Matthias Lederhofer (2):\n  add git-filter-branch to .gitignore\n  make clean should remove all the test programs too\n\n Matthijs Melchior (1):\n  Teach git-tag about showing tag annotations.\n\n Petr Baudis (1):\n  git-applymbox: Remove command\n\n Pierre Habouzit (1):\n  $EMAIL is a last resort fallback, as it's system-wide.\n\n Randal L. Schwartz (1):\n  Add test-sha1 to .gitignore.\n\n Sam Vilain (1):\n  Don't assume tree entries that are not dirs are blobs\n"},{"id":"44996","messageId":"7vk5u7d38h.fsf@assigned-by-dhcp.pobox.com","threadId":"8140","inReplyTo":"7v7iqgtt1j.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-06-13T20:11:10Z","receivedAt":"2007-06-13T20:11:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I'll be dormant for the next 72 hours or so, so please do not\nget alarmed if no patches sent to the list is applied to my\ntree.  Please remind me about them after they are commented on,\nrevised and improved, and final revision got agreed to be good\non the list.\n\nWIth a big usability change to git-gui blame viewer on 'maint',\nI think it is time to do 1.5.2.2 this weekend (if I have the\nenergy, that is).\n\nThe 'master' side has quite a lot of clean-ups and improvements\nin the fringes, but nothing big has come out of 'next' since\n1.5.2.  I would want to start the 1.5.3-rc cycle, after merging\nat least the submodule Porcelain (Lars) and filter-tree\n(Johannes and Pasky).  There are other topics already on 'next'\nthat are probably 1.5.3 material as well.\n\n* The 'maint' branch has these fixes since the last announcement.\n\n Alex Riesen (2):\n  Make the installation target of git-gui a little less chatty\n  Fix clone to setup the origin if its name ends with .git\n\n Gerrit Pape (1):\n  Fix typo in remote branch example in git user manual\n\n J. Bruce Fields (4):\n  user-manual: quick-start updates\n  user-manual: add a missing section ID\n  Documentation: user-manual todo\n  tutorial: use \"project history\" instead of \"changelog\" in header\n\n Junio C Hamano (1):\n  checkout: do not get confused with ambiguous tag/branch names\n\n Kristian Høgsberg (1):\n  Unquote From line from patch before comparing with given from address.\n\n Luiz Fernando N. Capitulino (1):\n  git-cherry: Document 'limit' command-line option\n\n Matthijs Melchior (1):\n  New selection indication and softer colors\n\n Sam Vilain (1):\n  Don't assume tree entries that are not dirs are blobs\n\n Shawn O. Pearce (47):\n  git-gui: Allow creating a branch when none exists\n  git-gui: Allow as few as 0 lines of diff context\n  git-gui: Don't quit when we destroy a child widget\n  git-gui: Attach font_ui to all spinbox widgets\n  git-gui: Verify Tcl/Tk is new enough for our needs\n  Revert \"Make the installation target of git-gui a little less chatty\"\n  git-gui: Add a 4 digit commit abbreviation to the blame viewer\n  git-gui: Cleanup blame::new widget initialization\n  git-gui: Remove empty blank line at end of blame\n  git-gui: Improve the coloring in blame viewer\n  git-gui: Simplify consecutive lines that come from the same commit\n  git-gui: Use arror cursor in blame viewer file data\n  git-gui: Display tooltips in blame viewer\n  git-gui: Highlight the blame commit header from everything else\n  git-gui: Remove unnecessary reshow of blamed commit\n  git-gui: Cleanup minor style nit\n  git-gui: Space the commit group continuation out in blame view\n  git-gui: Show author initials in blame groups\n  git-gui: Allow the user to control the blame/commit split point\n  git-gui: Display a progress bar during blame annotation gathering\n  git-gui: Allow digging through history in blame viewer\n  git-gui: Combine blame groups only if commit and filename match\n  git-gui: Show original filename in blame tooltip\n  git-gui: Use a label instead of a button for the back button\n  git-gui: Clip the commit summaries in the blame history menu\n  git-gui: Remove the loaded column from the blame viewer\n  git-gui: Remove unnecessary space between columns in blame viewer\n  git-gui: Use lighter colors in blame view\n  git-gui: Make the line number column slightly wider in blame\n  git-gui: Automatically expand the line number column as needed\n  git-gui: Remove unused commit_list from blame viewer\n  git-gui: Better document our blame variables\n  git-gui: Cleanup redundant column management in blame viewer\n  git-gui: Switch internal blame structure to Tcl lists\n  git-gui: Label the uncommitted blame history entry\n  git-gui: Rename fields in blame viewer to better descriptions\n  git-gui: Display the \"Loading annotation...\" message in italic\n  git-gui: Run blame twice on the same file and display both outputs\n  git-gui: Display both commits in our tooltips\n  git-gui: Jump to original line in blame viewer\n  git-gui: Use three colors for the blame viewer background\n  git-gui: Improve our labeling of blame annotation types\n  git-gui: Favor the original annotations over the recent ones\n  git-gui: Changed blame header bar background to match main window\n  git-gui: Include 'war on whitespace' fixes from git.git\n  git-gui: Give amend precedence to HEAD over MERGE_MSG\n  git-gui: Save geometry before the window layout is damaged\n\n william pursell (1):\n  Make command description imperative statement, not third-person present.\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Alex Riesen (1):\n  Fix push with refspecs containing wildcards\n\n Alexandre Julliard (1):\n  pack-check: Sort entries by pack offset before unpacking them.\n\n Andy Whitcroft (3):\n  cvsimport: add support for new style remote layout\n  cvsimport: update documentation to include separate remotes option\n  cvsimport: add <remote>/HEAD reference in separate remotes more\n\n Aneesh Kumar K.V (2):\n  gitview: Fix the blame interface.\n  gitview: run blame with -C -C\n\n Dan McGee (1):\n  git-mergetool: Allow gvimdiff to be used as a mergetool\n\n Elvis Pranskevichus (1):\n  Use git-tag in git-cvsimport\n\n Eric Wong (3):\n  git-svn: cleanup: factor out longest_common_path() function\n  git-svn: test for creating new directories over svn://\n  git-svn: reduce stat() calls for a backwards compatibility check\n\n Frank Lichtenheld (1):\n  cvsserver: Make req_Root more critical of its input data\n\n Jakub Narebski (6):\n  gitweb: Provide links to commitdiff to each parent in 'commitdiff' view\n  gitweb: Improve \"next\" link in commitdiff view\n  gitweb: Split git_patchset_body into separate subroutines\n  gitweb: Create special from-file/to-file header for combined diff\n  gitweb: Add links to blobdiffs in from-file/to-file header for merges\n  gitweb: '--cc' for merges in 'commitdiff' view\n\n Jeff King (2):\n  cmd_log_init: remove parsing of --encoding command line parameter\n  refactor dir_add_name\n\n Jim Meyering (1):\n  Don't dereference a strdup-returned NULL\n\n Johan Herland (1):\n  Remove unnecessary code and comments on non-existing 8kB tag object restriction\n\n Johannes Schindelin (2):\n  git-merge-file: refuse to merge binary files\n  Teach diff to imply --find-copies-harder upon -C -C\n\n Johannes Sixt (3):\n  Avoid double-slash in path names that depend on $(sharedir).\n  Remove trailing slash from $(template_dir).\n  git-remote show: Also shorten non-fast-forward refs in the 'push' listing\n\n Junio C Hamano (12):\n  War on whitespace\n  Test wildcard push/fetch\n  More missing static\n  More missing static\n  Even more missing static\n  git-blame: do not indent with spaces.\n  git-blame -w: ignore whitespace\n  mktag: minimally update the description.\n  Makefile: common-cmds.h depends on generate-cmdlist.sh script\n  Makefile: allow generating git.o for debugging purposes\n  -Wold-style-definition fix\n  More static\n\n Lars Hjemli (2):\n  git-submodule: move cloning into a separate function\n  git-submodule: clone during update, not during init\n\n Linus Torvalds (1):\n  Makefile: add an explicit rule for building assembly output\n\n Matthias Lederhofer (1):\n  gitweb: change filename/directory name of snapshots\n\n Michael Ellerman (2):\n  gitview: Use new-style classes\n  gitview: Define __slots__ for Commit\n\n Pierre Habouzit (2):\n  Active_nr is unsigned, hence can't be < 0\n  Missing statics.\n\n René Scharfe (1):\n  t5000: silence unzip availability check\n\n Shawn O. Pearce (10):\n  git gui 0.8.0\n  git-gui: GUI support for running 'git remote prune <name>'\n  git-gui: Show the git-gui library path in 'About git-gui'\n  git-gui: Enable verbose Tcl loading earlier\n  git-gui: Provide fatal error if library is unavailable\n  git-gui: Disable tearoff menus on Windows, Mac OS X\n  git-gui: Allow users to rename branches through 'branch -m'\n  git-gui: Allow users to delete remote branches\n  git-gui: Expose the merge.diffstat configuration option\n  git-gui: Internalize symbolic-ref HEAD reading logic\n\n Theodore Ts'o (1):\n  git-mergetool: Make default selection of merge-tool more intelligent\n"},{"id":"45012","messageId":"Pine.LNX.4.64.0706132322210.4059@racer.site","threadId":"8140","inReplyTo":"7vk5u7d38h.fsf@assigned-by-dhcp.pobox.com","subject":"Re: What's in git.git (stable)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-06-13T22:31:22Z","receivedAt":"2007-06-13T22:31:22Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 13 Jun 2007, Junio C Hamano wrote:\n\n> I would want to start the 1.5.3-rc cycle, after merging\n> at least the submodule Porcelain (Lars) and filter-tree\n> (Johannes and Pasky).\n\nIsn't that Johannesses (and filter-branch)? :-)\n\nFWIW I think that there lies a long road in front of us with \nfilter-branch, after submodule is merged in. I have no preference on what \nshould go in first, but filter-branch If My Plan Succeeds (TM) will help \ntransition from huge imports to subprojects.\n\nSo, even if I am not _that_ interested in subprojects myself, I _do_ want \nto enhance filter-branch. IMHO filter-branch is yet another proof that \ncogito -- even if it is now set to die -- was well worth it. Thanks Pasky.\n\nNext plans are: make filter-branch a misnomer: actually be able to rewrite \nmore than one branch in one go, writing the outcome to the refs/rewritten/ \nnamespace. IIRC that was Hannes' project, but I'll gladly step in there if \nneed be.\n\nAfter that, I imagine automatic subprojects disentangling (maybe somewhat \nrelated to Alex' suggestion), so you can say \"this big project is actually \na subproject: directories a/, b/ and c/ are self-contained subprojects).\n\nOf course, the nearest future from my POV is to actually implement the \nmissing tests :-)\n\nCiao,\nDscho\n\nP.S.: Junio, wherever you are right now, have a nice time. Hopefully not \ntoo stressful.\n"},{"id":"45045","messageId":"4670EA6C.C9559B61@eudaptics.com","threadId":"8140","inReplyTo":"Pine.LNX.4.64.0706132322210.4059@racer.site","subject":"Re: What's in git.git (stable)","fromName":"Johannes Sixt","fromEmail":"j.sixt@eudaptics.com","sentAt":"2007-06-14T07:12:44Z","receivedAt":"2007-06-14T07:12:44Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Johannes Schindelin wrote:\n> Next plans are: make filter-branch a misnomer: actually be able to rewrite\n> more than one branch in one go, writing the outcome to the refs/rewritten/\n> namespace. IIRC that was Hannes' project, but I'll gladly step in there if\n> need be.\n\nBe my guest. Even though I said \"my plan\" in that post\nhttp://article.gmane.org/gmane.comp.version-control.git/49292\nthis was meant as a proposal. I'm not working on the topic at the\nmoment.\n\n-- Hannes\n"},{"id":"45477","messageId":"7vy7idydqa.fsf@assigned-by-dhcp.pobox.com","threadId":"8140","inReplyTo":"7vk5u7d38h.fsf@assigned-by-dhcp.pobox.com","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-06-21T07:21:33Z","receivedAt":"2007-06-21T07:21:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"* The 'maint' branch has these fixes since the last announcement.\n\n Alex Riesen (1):\n  Add a local implementation of hstrerror for the system which do not have it\n\n Jakub Narebski (1):\n  Generated spec file to be ignored is named git.spec and not git-core.spec\n\n Johannes Schindelin (2):\n  Move buffer_is_binary() to xdiff-interface.h\n  merge-recursive: refuse to merge binary files\n\n Junio C Hamano (5):\n  $EMAIL is a last resort fallback, as it's system-wide.\n  git-branch --track: fix tracking branch computation.\n  Avoid diff cost on \"git log -z\"\n  Documentation: adjust to AsciiDoc 8\n  GIT 1.5.2.2\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\n Alex Riesen (2):\n  Do not use h_errno after connect(2): the function does not set it\n  cvsserver: Actually implement --export-all\n\n Daniel Barkalow (1):\n  Fix pushing to a pattern with no dst\n\n Frank Lichtenheld (3):\n  cvsserver: Add some useful commandline options\n  cvsserver: Let --base-path and pserver get along just fine\n  cvsserver: Actually implement --export-all\n\n Gerrit Pape (1):\n  git-branch: cleanup config file when deleting branches\n\n Ismail Dönmez (1):\n  Change default man page path to /usr/share/man\n\n Jakub Narebski (8):\n  Document git rev-list --full-history\n  Document git read-tree --trivial\n  Document git rev-parse --is-inside-git-dir\n  Document git reflog --stale-fix\n  Document git rev-list --timestamp\n  Use tabs for indenting definition list for options in git-log.txt\n  Document git log --abbrev-commit, as a kind of pretty option\n  Document git log --full-diff\n\n Junio C Hamano (8):\n  remote.c: refactor match_explicit_refs()\n  remote.c: refactor creation of new dst ref\n  remote.c: minor clean-up of match_explicit()\n  remote.c: fix \"git push\" weak match disambiguation\n  remote.c: \"git-push frotz\" should update what matches at the source.\n  git-push: Update description of refspecs and add examples\n  Documentation: update \"stale\" links for 1.5.2.2\n  INSTALL: explain how to build documentation\n\n Lars Hjemli (6):\n  t7400: barf if git-submodule removes or replaces a file\n  git-submodule: remember to checkout after clone\n  Rename sections from \"module\" to \"submodule\" in .gitmodules\n  git-submodule: give submodules proper names\n  Add gitmodules(5)\n  gitmodules(5): remove leading period from synopsis\n\n Sam Vilain (1):\n  git-svn: avoid string eval for defining functions\n"},{"id":"45756","messageId":"7v7ipsz7vr.fsf@assigned-by-dhcp.pobox.com","threadId":"8140","inReplyTo":"7vy7idydqa.fsf@assigned-by-dhcp.pobox.com","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-06-25T09:43:52Z","receivedAt":"2007-06-25T09:43:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Among many small fixes and some code churns, there are a few\nnotable topics from 'next'.\n\n - git-filter-branch to rewrite history;\n\n - git-add \"Huh?\" factor fix when attempting to add an empty directory;\n\n - git-log and friends do not have the 16kB size limit for\n   commit log messages anymore;\n\n - git-log and friends' --pretty=oneline treats the first\n   paragraph of a commit log message as the title line;\n\n - \"git-log --follow -- single-file\";\n\nSimon Hausmann and Shawn Pearce have shepherded a fast-import\nbased Perforce importer into contrib/fast-import area.\n\n* The 'master' branch has these since the last announcement\n\nDave O'Neill (1):\n  Generate tags with correct timestamp (git-svnimport)\n\nGerrit Pape (1):\n  git-svn: trailing slash in prefix is mandatory with --branches/-b\n\nJeff King (4):\n  dir_struct: add collect_ignored option\n  builtin-add: simplify (and increase accuracy of) exclude handling\n  Fix ALLOC_GROW off-by-one\n  Fix ALLOC_GROW calls with obsolete semantics\n\nJohannes Schindelin (7):\n  Add git-filter-branch\n  filter-branch: use $(($i+1)) instead of $((i+1))\n  filter-branch: fix behaviour of '-k'\n  Teach filter-branch about subdirectory filtering\n  pp_header(): work around possible memory corruption\n  diffcore-rename: favour identical basenames\n  filter-branch: add example to move everything into a subdirectory\n\nJohannes Sixt (4):\n  filter-branch: Use rev-list arguments to specify revision ranges.\n  filter-branch: also don't fail in map() if a commit cannot be\n      mapped\n  filter-branch: Simplify parent computation.\n  filter-branch: subdirectory filter needs --full-history\n\nJulian Phillips (1):\n  new-workdir: handle rev-parse --git-dir not always giving full path\n\nJunio C Hamano (5):\n  t7003: make test repeatable\n  Lift 16kB limit of log message output\n  Extend --pretty=oneline to cover the first paragraph,\n  Two trivial -Wcast-qual fixes\n  git-send-email: Do not make @-less message ID\n\nLinus Torvalds (2):\n  Finally implement \"git log --follow\"\n  Fix up \"git log --follow\" a bit..\n\nMatthias Lederhofer (3):\n  filter-branch: prevent filters from reading from stdin\n  chmod +x git-filter-branch.sh\n  make dist: include configure script in tarball\n\nNanako Shiraishi (1):\n  Cloning from a repo without \"current branch\"\n\nShawn O. Pearce (2):\n  Avoid src:dst syntax as default bash completion for git push\n  Document git-gui, git-citool as mainporcelain manual pages\n\nSven Verdoolaege (1):\n  t9500: skip gitweb tests if perl version is too old\n\n-- p4 --\n\nBenjamin Sergeant (1):\n  git-p4 fails when cloning a p4 depo.\n\nHan-Wen Nienhuys (28):\n  Cleanups\n  reformatting: break long lines.\n  rename apply() to applyCommit(); apply is a python builtin\n  add .dotest to .gitignore\n  Robustness fixes for pipes\n  cleanup\n  minor cleanups\n  clone and sync --keep-path to keep perforce path to module.\n  use string.strip() iso. slicing.\n  use strip() iso. slicing for removing \\n\n  add --verbose to all commands.\n  Extract multiple paths concurrently.\n  Diverse cleanups\n  remove global .gitdir\n  Read p4 files in one batch.\n  Thinko, fix buglet.\n  store p4 user cache in home directory.\n  thinko.\n  read files before creating the commit.\n  don't p4 print deleted files.\n  only run p4 print if necessary\n  use p4CmdList() to get file contents in Python dicts. This is more\n      robust.\n  Cleanups & import into p4/master for local import\n  remove debug print\n  thinko: really ignore deleted files.\n  look for 'text' and 'binary' files.\n  print error message when p4 print fails (eg. due to permission\n      problems)\n  also strip p4/ from local imports.\n\nKevin Green (1):\n  git-p4: check for existence of repo dir before trying to create\n\nMarius Storm-Olsen (7):\n  Make the command call silent\n  Replace \\r\\n with \\n when importing from p4 on Windows\n  Ensure that the commit message is Windows formated (CRLF) before\n      invoking the editor.\n  Fix git-p4 clone (defaultDestination)\n  Fix single branch import into remotes\n  Exclude the HEAD symbolic ref from the list of known branches\n  Only use double quotes on Windows\n\nSimon Hausmann (222):\n  Initial import of a python script to import changesets from\n      Perforce into git.\n  Added basic support for specifying the depot path to import from as\n      well as the range of perforce changes.\n  Slightly improved help usage output and made specifying the\n      trailing slash for the depot path optional.\n  Implemented basic support for converting the date of the perforce\n      change to the git format. The timezone isn't correctly set up\n      yet though.\n  Some fixes to the timezone conversion between the date of a\n      perforce change and the git commit.\n  Speed up the import of individual files from Perforce into git by\n      passing the output of \"p4 print\" directly to git fast-import.\n      Also try to set the mode of the file in git correctly based on\n      file type heuristics.\n  Removed unused p4cat function and added helper function for the\n      perforce python interface (p4Cmd).\n  Changed the import mechanism to write to git fast-import through a\n      pipe instead of having p4-fast-export write to stdout and let\n      the caller connect it to git fast-import.\n  Minor code cleanups and ported some p4 interfacing code over to the\n      p4 python mode.\n  Instead of parsing the output of \"p4 users\" use the python objects\n      of \"p4 -G users\".\n  Ported the remaining functions that parsed p4 shell output over to\n      the p4 python interface.\n  Avoid calling fstat for every imported file (slow!) and instead\n      read the file data first into the python process and use the\n      length of the bytes read for the size field of git fast-import.\n  Permit calling p4-fast-export with a depot path that has the\n      typical ... wildcard at the end.\n  Fixed displaying import progress by calling flush on stdout.\n  Create a git tag for every changeset imported from perforce.\n  Fix file permissions of p4-fast-export.py to be executable.\n  Started working on incremental imports from Perforce.\n  Simplify the incremental import by elimination the need for a\n      temporary import branch.\n  Code cleanups, move the code to create a commit with fast-import\n      into a separate function out of the main loop.\n  Initial support for importing a directory from Perforce at a\n      specified revision.\n  Minor cleanups and print an error message of git fast-import if it\n      fails.\n  Fixed incremental imports by using the correct \"from\" command\n      instead of \"merge\" with git fast-import.\n  Make incremental imports easier to use by storing the p4 depot path\n      after an import in .git/config and re-using it when we're\n      invoked again later.\n  Make specifying the revision ranges more convenient.\n  Fix calculation of the newest imported revision for #head imports.\n  Catch io exceptions from git fast-import again and print the error\n      message.\n  Made the name of the git branch used for the perforce import\n      configurable through a new --branch=<name> commandline option.\n  Added a little helper script to debug the output of the p4 python\n      interface.\n  Minor code cleanups.\n  Avoid the excessive use of git tags for every perforce change and\n      instead just create one git tag for the last imported change.\n  Changed the default git import branch from \"p4\" to \"master\".\n  Added a little helper script to remove unused tags from the\n      perforce import.\n  Create lightweight git tags (using the \"reset\" trick) for the\n      incremental import instead of full-blown ones. Also fix parsing\n      the output of git name-rev for figuring out the last imported\n      p4 change number.\n  Cleanups, remove unused variable.\n  Code cleanups.\n  Started work on p4 branch detection (experimental!).\n  More fixes in heuristic p4 branch detection based on common path\n      components.\n  After marking a p4 branch as merged don't ever merge it in git\n      again.\n  Set git fast-import marks for every imported change for future use.\n  When trying to map p4 integrations to git merges just record it as\n      a single merge with the newest p4 change as secondary parent.\n  Make it possible to specify the p4 changes to import through a text\n      file (for debugging) and made various improvements to the\n      branch/merge heuristic detection.\n  Use sets.Set() instead of set() to run also with older versions of\n      Python.\n  Fix single-branch imports by skipping the branch/merge detection\n      correctly.\n  Added p4 delete behavioural emulation as todo item.\n  Added support for --silent so that p4-fast-export can be called\n      from cronjobs.\n  More work in --silent support.\n  Don't print a plain newline at the end of the execution (avoids\n      bogus cron error mails).\n  Adjust the output parsing of git name-rev to handle the output of\n      the latest git version.\n  Work in progress on detecting branches.\n  Changed --known-branches to take a file as argument instead of a\n      comma separated list.\n  Fixed p4-debug file extension.\n  Make the p4 data/command cache configurable through the\n      --cache-debug commandline option.\n  Minor code cleanups.\n  More code cleanups and preparations for more branch detection\n      heuristics.\n  More work on branch detection by implementing\n      changeIsBranchMerge().\n  Reduce the number of false \"merges\" by skipping \"branch from\"\n      entries in the integrated output as well as by ignoring\n      integrations of future (newer) changes.\n  Split up the cache commandline options into (command) cache and\n      data cache.\n  First version of a new script to submit changes back to perforce\n      from git repositories.\n  Fix git-dir option and allow reading log substitutions from a file\n  Lots of bugfixes to p4-git-sync.\n  Automatically operate on a temporary branch, needed for cherry-pick\n      to work when applying changes to\n  Be nice and use /usr/bin/env python for the git-p4 scripts\n  Ignore Apple resource files when importing from perforce to git.\n  Auto-detect the current git branch before submitting back to\n      perforce.\n  Use p4 revert ... instead of revert -a ... after submitting, to\n      make sure the p4 checkout is clean.\n  Default to interactive syncing\n  Improved the git dir detection.\n  Pass the right number of arguments to commit, fixes single-branch\n      imports.\n  Start moving the git-p4 tools into one single script.\n  Provide a little bit of help description for the git-p4 \"tools\".\n  First (untested) attempt at migrating p4-git-sync into the final\n      git-p4 script\n  Part of the code is copyright by Trolltech ASA.\n  sync-to-perforce is now called submit and fixed the gitdir check a\n      little bit\n  Completely untested \"merge\" of p4-fast-export.py into git-p4.py\n  Added missing \"self\"s to make the script evaluate correctly.\n  Fixed the initial version import by getting the file index correct\n      by correctly skipping deleted files.\n  Removed p4-fast-export and p4-git-sync as they've been integrated\n      into git-p4 now.\n  Start of the git-p4 documentation.\n  Documentation enhancements.\n  Added experimental but super-fast --apply-as-patch option to git-p4\n      submit\n  Fix support for deletions in git-p4 submit when using\n      --apply-as-patch by filtering out deletions in the diff-tree\n      output.\n  Made --apply-as-patch the default for git-p4 submit as it's\n      significantly faster.\n  Make it possible to invoke git-p4 from within subdirectories of a\n      git working tree.\n  Don't show the submit template and the diff first in less but show\n      it in $editor right away\n  Removed the .py extension from git-p4 as it's annoying to type\n      every time.\n  Changed the format of the imported log message slightly, so that\n      it's easier to parse again.\n  Changed the default branch for imports from \"master\" to \"p4\"\n  Added some helper function(s) to parse the depot path and change\n      number from the log message\n  Helper function to check the existance of a revision\n  Set the default branch in run, not in the constructor\n  Brand new smart incremental import that doesn't need tags or git\n      repo-config :)\n  Make it possible to run git-p4 submit from within the git\n      repository\n  Use the new incremental import style by default\n  Different versions of p4 have different output for the where\n      command ;(\n  Minor cosmetic fixlet for the git-p4 submit sync question.\n  Prefer git command over git-command.\n  Don't try to parse any options with git-p4 debug but pass it\n      straight on to p4\n  git-p4 debug doesn't need a git repository\n  Added support for mapping p4 labels to git tags\n  Fix variable usage in tag import\n  Fix the docs for git-p4 submit and turn git-p4 submit --master=foo\n      into\n  Fix \"compilation\" :)\n  Clean up python class names.\n  Added git-p4 rebase convenience\n  Provide a tree summary after git-p4 rebase\n  Turn off potentially slow label detection by default\n  Honor --silent for labels\n  Added git-p4 clone convenience command\n  Fix file determination for #head imports\n  fix variable usage (oops)\n  Added a simple example of usage to the \"documentation\" :)\n  Allow for convenient rebasing after git-p4 submit\n  Print an error message of some sort if git fast-import fails.\n  Fix the timezone formatting. Now qgit also displays (parses) it\n      correctly.\n  Removed the old patch apply code from git-p4 submit.\n  Slightly improved formatting of the raw_input questions.\n  A new attempt at fixing the child-fast-import-process-not-finished\n      race condition\n  Handle patch errors in git-p4 submit better.\n  Doc cleanups.\n  Micro cleanup\n  cleanup, renamed self.globalPrefix to self.depotPath\n  Cleanup, removed the old tagging code\n  Document some implementation details, for the curious... :)\n  Use the subprocess module instead of popen2 to make it work on\n      Windows.\n  Added a little .bat wrapper from Marius\n  Make sure all popen calls use binary mode (for Windows) and\n  Make submitting work on Windows.\n  Converted to unix newlines\n  Fix git-p4 clone //depot/project (head import)\n  Make git-p4 work with bare repositories.\n  Added the possibility of skipping patches during git-p4 submit\n  Give a better hint if git-p4 submit fails\n  Fix calling git-p4 rebase from within a subdirectory (git rebase\n      wants to be in toplevel)\n  A little todo note before I forget it :), based on a suggestion\n      from Lars.\n  Fixing syncing (gitdir discovery / cd) for bare repositories\n  Always pass a sha1 for the initial parent so that git-fast-import\n      doesn't think\n  Clean up code duplication for revision parsing and fix previous\n      commit to not\n  Removed cleantags command. It doesn't have any meaning anymore.\n  Removed ancient and unused code to find the last imported revision\n      from previous imports\n  Create the origin based import branch using git update-ref instead\n      of git branch\n  Changed the default p4 import branch to be\n      refs/remotes/p4/{HEAD,master}\n  Bite the bullet and automatically convert old style refs/heads/p4\n      repositories\n  Added support for git-p4 sync/rebase --with-origin. See git-p4.txt\n      for details :)\n  Removed todo item that is implemented :)\n  Fix branch setup after initial clone.\n  Removed unused cache variables.\n  Started rewriting the branch detection, based on \"p4 branches\" and\n      \"p4 branch -o foo\".\n  Give branches a nice project prefix and don't bail out on clone if\n      we failed\n  More work on the incremental importing of multiple branches.\n  Cleanup/speed up the branch<> file split and removed change range\n      limitation that I added\n  More cleanups and speedups for labels and branches\n  Removed unused variable, more cleanups\n  Cache the output of \"p4 users\" for faster syncs on high latency\n      links.\n  Fix gitdir not being set when cloning. Needed for writing the p4\n      users cache.\n  Oops, not only /set/ gitdir on clone, also set it /correctly/ :)\n  Use git format-patch and git apply --apply when extracting patches\n      from git and\n  Added support for git-p4 submit --direct (experimental)\n  Specifying --detect-branches is now only needed for the initial\n      clone/sync.\n  Had an idea for debugging, record it :)\n  Another (potentially life-saving) idea for submit --direct\n  Improved output for multi branch imports and noted another little\n      todo item\n  Fix conversion from old style heads/p4 to remotes/p4/master\n  Fix error detection with git-p4 submit when the requested depot\n      path is not in the client view.\n  Fix git symbolic-ref warning on initial clone\n  Detect with git-p4 submit --direct when there are no changes in the\n      working directory\n  Make git-p4 submit --direct safer by also creating a git commit\n  Added a rollback command for debugging. It sets back the heads of\n      the p4 branches to the specified p4 change number or earlier.\n  Fix branch detection in multi-branch imports\n  Fixes for rollback, delete branches that did not exist at the\n      specified p4 change\n  Added support for importing multiple branches into refs/heads\n      instead of just refs/remotes\n  Added support for --max-changes=<count> to ease import debugging\n  Use refs/heads/* instead of refs/heads/p4/* for local imports\n  Doc updates\n  Avoid calling git symbolic-ref refs/heads/p4//HEAD (double slash)\n  Make rollback work with locally imported branches\n  Don't make len(p4Cmd(\"p4 changes -m 1 //foo/...\")) == 0 succeed\n      when the p4 command itself failed.\n  Oops, fill the /list/ correct with the p4 exit code.\n  Catch p4 errors in rollback early enough (before deleting refs!)\n  Fix p4 execution in git-p4 rollback.\n  Fix multi-branch import with --silent.\n  Load the user map from p4 only once at run-time.\n  Fix creating the remotes/p4 branches based on origin/* for the\n      multi-branch import\n  Forgot to remove this return statement from debugging\n  Added support for --with-origin with multi-branch imports\n  Oops, fix --with-origin to /really/ also call git fetch :)\n  Avoid creating non-p4 branches in remotes/p4 off of remotes/origin\n  Make git-p4 work with packed refs (don't use os.path.exists to\n      check for the\n  Make --with-origin also work without origin :)\n  Make --with-origin the default for syncing.\n  Shortcut the case where we have no origin branch\n  Forgot to remove this TODO item when I made --with-origin the\n      default :)\n  Added git-p4 submit --trust-me-like-a-fool for the adventurous\n      users :)\n  Fix creation of refs/remotes/p4/HEAD symbolic ref\n  Fix my email address, this isn't really KDE related :)\n  In *_pipe print the command that failed if it fails.\n  Fix typo in listExistingP4Branches that broke sync.\n  Fix support for \"depot-path\" in older git-p4 imports\n  Fix common path \"calculation\" from logs of multiple branches.\n  Don't attempt to set the initialParent on multi-branch imports\n      (useless).\n  Hack to make the multi-branch import work again with\n      self.depotPaths now that\n  Fix git-p4 rebase\n  Fix git-p4 submit\n  Fix depot-path determination for git-p4 submit\n  Make clone behave like git clone by default again.\n  Make git-p4 submit detect the correct reference (origin) branch\n      when\n  Only get the expensive branch mapping from the p4 server when not\n  Fixed the check to make sure to exclude the HEAD symbolic refs when\n      updating\n  Fix updating/creating remotes/p4/* heads from origin/p4/*\n  Fix project name guessing\n  Fix depot-paths encoding for multi-path imports (don't split up\n      //depot/path/foo)\n  Fix support for explicit disabling of syncing with the origin\n  Write out the options tag in the log message of imports only if we\n      actually have\n  Provide some information for single branch imports where the\n      commits go\n  Mention remotes/p4/master also in the documentation.\n  git-p4 submit: Fix missing quotes around p4 commands to make them\n      work with spaces in filenames\n  Moved the code from git-p4 submit to figure out the upstream branch\n      point\n  Fix git-p4 rebase to detect the correct upstream branch instead of\n      unconditionally\n  Fix initial multi-branch import.\n  Fix the branch mapping detection to be independent from the order\n      of the \"p4 branches\" output.\n  Warn about conflicting p4 branch mappings and use the first one\n      found.\n  Added git-p4 branches command that shows the mapping of perforce\n      depot paths to imported git branches.\n  Make it possible to specify the HEAD for the internal\n      findUpstreamBranchPoint function.\n"},{"id":"46202","messageId":"7vk5tj3bj1.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7v7ipsz7vr.fsf@assigned-by-dhcp.pobox.com","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-02T00:16:34Z","receivedAt":"2007-07-02T00:16:34Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Will do a 1.5.2.3 with the tip of 'maint' probably mid-week and\na 1.5.3-rc1 at about the same time from 'master', hopefully with\na few topics that have been in 'next', and also some \"discussed\nbut forgotten\" fixes on the list if somebody kindly can remind\nme ;-).\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since the last announcement.\n\nFrank Lichtenheld (2):\n  config: Complete documentation of --get-regexp\n  config: Change output of --get-regexp for valueless keys\n\nLinus Torvalds (1):\n  Fix zero-object version-2 packs\n\nMatt Kraai (1):\n  Correct the name of NO_R_TO_GCC_LINKER in the comment describing\n      it.\n\nSam Vilain (3):\n  cleanup merge-base test script\n  repack: improve documentation on -a option\n  git-remote: document -n\n\nShawn O. Pearce (5):\n  git-gui: Correctly install to /usr/bin on Cygwin\n  git-gui: Bind Tab/Shift-Tab to cycle between panes in blame\n  git-gui: Don't require $DISPLAY just to get --version\n  git-gui: Don't nice git blame on MSYS as nice is not supported\n  git-gui: Don't require a .pvcsrc to create Tools/Migrate menu hack\n\nSven Verdoolaege (1):\n  Ignore submodule commits when fetching over dumb protocols\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\nAdam Roben (2):\n  git-send-email: Add --threaded option\n  git-send-email: make options easier to configure.\n\nAlex Riesen (1):\n  Avoid perl in t1300-repo-config\n\nAlexandre Vassalotti (1):\n  git-tag: Fix \"can't shift that many\".\n\nBrian Gernhardt (1):\n  Fix t5516-fetch for systems where `wc -l` outputs whitespace.\n\nCarlos Rica (3):\n  Fix git-stripspace to process correctly long lines and spaces.\n  Add test script for git-stripspace.\n  Add test-script for git-tag\n\nFrank Lichtenheld (2):\n  config: Add --null/-z option for null-delimted output\n  config: add support for --bool and --int while setting values\n\nGerrit Pape (1):\n  git-cvsimport: force checkout of working tree after initial import\n\nJim Meyering (3):\n  detect close failure on just-written file handles\n  Don't ignore a pack-refs write failure\n  git-log: detect dup and fdopen failure\n\nJohannes Schindelin (2):\n  t7004: ship trustdb to avoid gpg warnings\n  git add: respect core.filemode with unmerged entries\n\nJunio C Hamano (2):\n  Add core.quotepath configuration variable.\n  Update draft Release Notes for 1.5.3\n\nLinus Torvalds (3):\n  Clean up internal command handling\n  Check for IO errors after running a command\n  git: Try a bit harder not to lose errno in stdio\n\nMark Levedahl (5):\n  gitk: Make selection highlight color configurable\n  gitk: Update fontsize in patch / tree list\n  gitk: Allow specifying tabstop as other than default 8 characters.\n  gitk: Use a spinbox for setting tabstop settings\n  gitk: Update selection background colorbar in prefs dialog\n\nMatthias Lederhofer (10):\n  rev-parse: document --is-inside-git-dir\n  rev-parse: introduce --is-bare-repository\n  test git rev-parse\n  introduce GIT_WORK_TREE to specify the work tree\n  Use new semantics of is_bare/inside_git_dir/inside_work_tree\n  extend rev-parse test for --is-inside-work-tree\n  test GIT_WORK_TREE\n  setup_git_directory: fix segfault if repository is found in cwd\n  filter-branch: always export GIT_DIR if it is set\n  make git barf when an alias changes environment variables\n\nMichael Krelin (1):\n  git-svn: honor ~/.subversion/ client cert file settings.\n\nPaul Mackerras (18):\n  gitk: Use the -q flag to git checkout\n  gitk: New infrastructure for working out branches & previous/next\n      tags\n  gitk: Don't try to list large numbers of tags or heads in the\n      details pane\n  gitk: Add some more comments to the optimize_rows procedure\n  gitk: Improve the behaviour of the initial selection\n  gitk: Implement a simple scheduler for the compute-intensive stuff\n  gitk: Cope with commit messages with carriage-returns and initial\n      blank lines\n  gitk: Disable the head context menu entries for the checked-out\n      branch\n  gitk: Store ids in rowrangelist and idrowranges rather than row\n      numbers\n  gitk: New algorithm for drawing the graph lines\n  gitk: Show local uncommitted changes as a fake commit\n  gitk: Speed up the reading of references\n  gitk: Get rid of the childlist variable\n  gitk: Add a \"reset branch to here\" row context-menu operation\n  gitk: Limit how often we change the canvas scrolling region\n  gitk: Fix bug causing nearby tags/heads to sometimes not be\n      displayed\n  gitk: Improve handling of whitespace and special chars in filenames\n  gitk: Add a progress bar to show progress while resetting\n\nQuy Tonthat (1):\n  git.spec: RPM failed, looking for wrong files.\n\nRené Scharfe (2):\n  diffcore-rename: don't change similarity index based on basename\n      equality\n  diff: round down similarity index\n\nSam Vilain (2):\n  git-svn: use git-log rather than rev-list | xargs cat-file\n  git-svn: cache max revision in rev_db databases\n\nShawn O. Pearce (3):\n  git-gui: Quiet our installation process\n  Teach bash how to complete +refspec on git-push\n  Correct usages of sed in git-tag for Mac OS X\n\nSimon Hausmann (1):\n  git-new-workdir: Fix shell warning about operator == used with\n      test.\n\nTheodore Ts'o (1):\n  Don't fflush(stdout) when it's not helpful\n"},{"id":"47235","messageId":"7vzm20q1l7.fsf_-_@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vk5tj3bj1.fsf@assigned-by-dhcp.cox.net","subject":"What's in git.git","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-13T06:06:44Z","receivedAt":"2007-07-13T06:06:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Executive summary:\n\n * (maint) hopefully the last maintenance release for v1.5.2\n   codebase, v1.5.2.4, is out.\n\n * (master) v1.5.3 is nicely progressing and we have v1.5.3-rc1\n   out, but it has a serious last minute glitch in pack-objects,\n   so please do not use \"git-gc\", or \"git-repack\" from vanilla\n   v1.5.3-rc1.\n\n   v1.5.3-rc1-1-g7d7baa5 or later should be Ok.\n\n * (next/pu) No topics are cooking in 'next' right now, although\n   I might apply a few series I did not pick up from the list in\n   the past few days, just to keep them from getting lost.\n\nAs usual, v1.5.3-rc1 means:\n\n * I personally will be using 'master' version for my work until\n   v1.5.3 final (I usually run 'next', and switch to 'master'\n   after -rc0); I ask contributors to do the same to shake out\n   the last minute bugs from 'master'.\n\n * No more features and large code churning on 'master' until\n   v1.5.3 final.\n\n * Bugfixes and documenation updates are always welcomed, but\n   even more so than usual until v1.5.3 final.\n\nI'll send out a draft release notes for v1.5.3 in a separate\nmessage.\n\n----------------------------------------------------------------\n\n* The 'maint' branch spawned 1.5.2.4 with accumulated fixes.\n  Most notably, we are in sync with git-gui 0.7.5.\n\n* The 'master' branch has these since the last announcement; \n  we are at v1.5.3-rc1 plus a few fixes.\n\nAdam Roben (1):\n  format-patch: Add format.subjectprefix config option\n\nAlecs King (1):\n  fix remote.origin.url in tutorial.txt\n\nAlex Riesen (4):\n  Handle missing prefix for \"Subject:\" as if no prefix given\n  Handle format.subjectprefix for every command which accepts\n      --pretty\n  Fix t5516 to create test repo without hooks\n  Add -v|--verbose to git remote to show remote url\n\nAndrew Ruder (2):\n  Remove USE_PAGER from git-pickaxe and git-annotate\n  Add urls.txt to git-clone man page\n\nBrian Downing (10):\n  pack-objects: Prefer shallower deltas if the size is equal\n  gitk: Fix for tree view ending in nested directories\n  Pack information tool\n  Correct shebang line for contrib/stats/packinfo.pl\n  Don't try to delta if target is much smaller than source\n  Support fetching the memory usage of a delta index\n  Add functions for parsing integers with size suffixes\n  Add pack-objects window memory usage limit\n  Add --window-memory option to git-repack\n  Add documentation for --window-memory, pack.windowMemory\n\nBrian Gernhardt (1):\n  Add core.pager config variable.\n\nCJ van den Berg (1):\n  git-submodule: Fix two instances of the same typo\n\nCarlos Rica (5):\n  t7004: Skip tests for signed tags in an old version of gpg.\n  t0030: Remove repeated instructions and add missing &&\n  t0030: Add tests with consecutive text lines and others with spaces\n      added.\n  t7004: Add tests for the git tag -n option.\n  Function stripspace now gets a buffer instead file descriptors.\n\nDaniel Barkalow (2):\n  Add allocation and freeing functions for struct refs\n  Some cosmetic changes to remote library\n\nDavid Kastrup (1):\n  Add missing functions to contrib/emacs/vc-git.el\n\nEmil Medve (1):\n  git-submodule: Instead of using only annotated tags, use any tags.\n\nEric Wong (2):\n  git-svn: allow dcommit to retain local merge information\n  git-svn: fix blocking with svn:// servers after do_switch\n\nFrank Lichtenheld (1):\n  cvsserver: always initialize state in argsplit()\n\nGerrit Pape (1):\n  git-commit: don't add multiple Signed-off-by: from the same\n      identity\n\nJakub Narebski (3):\n  Update git-merge documentation.\n  Document long options '--message=<msg>' and '--no-commit'\n  Document git commit --untracked-files and --verbose\n\nJames Bowes (1):\n  stash: allow running from a subdirectory\n\nJeff King (6):\n  git-stash: fix \"no arguments\" case in documentation\n  git-stash: fix \"can't shift that many\" with no arguments\n  git-stash: don't complain when listing in a repo with no stash\n  Documentation: quote {non-attributes} for asciidoc\n  Documentation: quote {non-attributes} for asciidoc\n  Documentation: minor cleanups to branch/checkout wording\n\nJeffrey C. Ollie (2):\n  Add an option to quiet git-init.\n  Quiet the output from git-init when cloning, if requested.\n\nJohannes Schindelin (28):\n  Move the pick_author code to git-sh-setup\n  Teach rebase an interactive mode\n  rebase -i: several cleanups\n  rebase -i: provide reasonable reflog for the rebased branch\n  Teach rebase -i about --preserve-merges\n  Make '!' aliases more useful\n  git-fsck: add --lost-found option\n  Document git-filter-branch\n  Add diff-option --ext-diff\n  filter-branch: add a test for the commit removal example\n  filter-branch: make output nicer\n  filter-branch: a few more touch ups to the man page\n  filter-branch documentation: clarify which filters are eval'ed\n  filter-branch: fail gracefully when a filter fails\n  Future-proof source for changes in xdemitconf_t\n  Teach git-stash to \"apply --index\"\n  Enable \"git rerere\" by the config variable rerere.enabled\n  git-branch: default to --track\n  branch.autosetupmerge: allow boolean values, or \"all\"\n  rebase -i: handle --continue more like non-interactive rebase\n  rebase -i: actually show the diffstat when being verbose\n  rebase -i: remember the settings of -v, -s and -p when interrupted\n  rebase -i: put a nice warning into the todo list\n  rerere: record resolution even if file is not in merge base\n  Fix core.sharedRepository = 2\n  Fix --cherry-pick with given paths\n  Add for_each_remote() function, and extend remote_find_tracking()\n  branch --track: code cleanup and saner handling of local branches\n\nJohannes Sixt (4):\n  Test 'git add' for unmerged entries when core.symlinks=false.\n  filter-branch: Avoid an error message in the map function.\n  filter-branch documentation: some more touch-ups.\n  Allow rebase to run if upstream is completely merged\n\nJonas Fonseca (1):\n  fsck --lost-found writes to subdirectories in .git/lost-found/\n\nJunio C Hamano (30):\n  diffcore_count_changes: pass diffcore_filespec\n  diffcore_filespec: add is_binary\n  diffcore-delta.c: update the comment on the algorithm.\n  diffcore-delta.c: Ignore CR in CRLF for text files\n  git-stash: require \"save\" to be explicit and update documentation\n  Update public documentation links for 1.5.2.3\n  \"git-push $URL\" without refspecs pushes only matching branches\n  Rewrite \"git-frotz\" to \"git frotz\"\n  git-stash: make \"save\" the default action again.\n  Mark disused commit walkers officially deprecated.\n  Update draft Release Notes for 1.5.3\n  Update reflog message created for stashes\n  Do not check if getcwd() result begins with a slash.\n  Fix git-stash(1) markup.\n  git-stash: allow more descriptive reminder message when saving\n  Introduce diff_filespec_is_binary()\n  Per-path attribute based hunk header selection.\n  Fix configuration syntax to specify customized hunk header\n      patterns.\n  diff: honor binariness specified in attributes\n  gitweb: make repeated calls to git_get_project_owner() bearable\n  diff.c: make built-in hunk header pattern a separate table\n  git-gui: use \"blame -w -C -C\" for \"where did it come from,\n      originally?\"\n  git-stash: try reusing cached stat info as much as possible\n  Fix merge-one-file for our-side-added/our-side-removed cases\n  Document custom hunk header selection\n  revision.c: remove duplicated parents after history simplification\n  Revert 88494423 (removal of duplicate parents in the output\n      codepath)\n  Re-code builtin-branch.c in UTF-8\n  Update list of older git docs\n  GIT v1.5.3-rc1\n\nLars Hjemli (1):\n  git-submodule(1): update description and key names\n\nLinus Torvalds (1):\n  Start deprecating \"git-command\" in favor of \"git command\"\n\nMarcus Fritzsch (1):\n  Fixed a formulation mistake in Documentation/user-manual.txt\n\nMatt Kraai (3):\n  Prefer EMAIL to username@hostname.\n  Change \"added.moved or removed\" to \"added, moved or removed\" in\n  Add [verse] to the SYNOPSIS section of git-submodule.txt.\n\nMatt McCutchen (3):\n  gitweb: make search form generate pathinfo-style URLs\n  gitweb: make \"No commits\" in project list gray, not bold green\n  Makefile: rebuild git.o on version change, clean up git$X flags\n\nMatthias Lederhofer (5):\n  ignore git-rebase--interactive\n  getenv/setenv: use constants if available\n  git-init: set core.worktree if GIT_WORK_TREE is specified\n  git-clone: split up long &&-command-chain and use a function for\n      cleanup\n  make git-clone GIT_WORK_TREE aware\n\nMichael Hendricks (2):\n  git-send-email: allow an email alias for --from\n  gitweb: configurable width for the projects list Description column\n\nMiklos Vajna (2):\n  gitweb: prefer git_get_project_owner() over get_file_owner()\n  gitweb: new cgi parameter: opt\n\nNanako Shiraishi (2):\n  Add git-stash script\n  Document git-stash\n\nNicolas Pitre (4):\n  apply delta depth bias to already deltified objects\n  script to display a distribution of longest common hash prefixes\n  reduce git-pack-objects memory usage a little more\n  Pack-objects: properly initialize the depth value\n\nPaul Mackerras (6):\n  gitk: Fix the find and highlight functions\n  gitk: Fix bug in the anc_or_desc routine\n  gitk: Remove the unused stopfindproc function\n  gitk: Fix bug causing \"can't read commitrow(0,n)\" error\n  gitk: Use git log and add support for --left-right\n  gitk: Improve handling of -- and ambiguous arguments\n\nRené Scharfe (1):\n  diff-lib.c: don't strdup twice\n\nSean Estabrooks (1):\n  Alter git-checkout reflog message to include \"from\" branch\n\nShawn O. Pearce (36):\n  git-gui: Start blame windows as tall as possible\n  git-gui: Correct resizing of remote branch delete dialog\n  git-gui: Honor rerere.enabled configuration option\n  git-gui: New Git version check support routine\n  git-gui: Teach class system to support [$this cmd] syntax\n  git-gui: Abstract the revision picker into a mega widget\n  git-gui: Refactor the delete branch dialog to use class system\n  git-gui: Optimize for newstyle refs/remotes layout\n  git-gui: Maintain remote and source ref for tracking branches\n  git-gui: Allow users to match remote branch names locally\n  git-gui: Fast-forward existing branch in branch create dialog\n  git-gui: Enhance choose_rev to handle hundreds of branches\n  git-gui: Sort tags descending by tagger date\n  git-gui: Option to default new branches to match tracking branches\n  git-gui: Automatically refresh tracking branches when needed\n  git-gui: Better handling of detached HEAD\n  git-gui: Refactor our ui_status_value update technique\n  git-gui: Refactor branch switch to support detached head\n  git-gui: Unabbreviate commit SHA-1s prior to display\n  git-gui: Default selection to first matching ref\n  git-gui: Allow double-click in checkout dialog to start checkout\n  git-gui: Extract blame viewer status bar into mega-widget\n  git-gui: Change the main window progress bar to use status_bar\n  git-gui: Show a progress meter for checking out files\n  git-gui: Always use absolute path to all git executables\n  git-gui: Correct gitk installation location\n  git-gui: Assume unfound commands are known by git wrapper\n  git-gui: Treat `git version` as `git --version`\n  git-gui: Perform our own magic shbang detection on Windows\n  git-gui: Teach console widget to use git_read\n  git-gui: Improve the Windows and Mac OS X shortcut creators\n  git-gui: Paper bag fix for Cygwin shortcut creation\n  git-gui: Use sh.exe in Cygwin shortcuts\n  git-gui: Include a space in Cygwin shortcut command lines\n  Support wholesale directory renames in fast-import\n  git-gui: Change prior tree SHA-1 verification to use git_read\n\nSteffen Prohaska (1):\n  filter-branch: added missing warn function\n\nSteven Walter (1):\n  Documentation for git-log --follow\n\nSven Verdoolaege (2):\n  git-submodule: provide easy way of adding new submodules\n  git-clone: fetch possibly detached HEAD over dumb http\n\nUwe Kleine-König (2):\n  stash: end commit log with a newline\n  repack: don't report \"Nothing new to pack.\" if -q is given\n"},{"id":"47238","messageId":"7vlkdkq00o.fsf_-_@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vzm20q1l7.fsf_-_@assigned-by-dhcp.cox.net","subject":"Draft release notes for v1.5.3, as of -rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-13T06:40:39Z","receivedAt":"2007-07-13T06:40:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"GIT v1.5.3 Release Notes (draft)\n========================\n\nUpdates since v1.5.2\n--------------------\n\n* The commit walkers other than http are officially deprecated,\n  but still supported for now.\n\n* The submodule support has Porcelain layer.\n\n* There are a handful pack-objects changes to help you cope better\n  with repositories with pathologically large blobs in them.\n\n* For people who need to import from Perforce, a front-end for\n  fast-import is in contrib/fast-import/.\n\n* Comes with git-gui 0.8.0.\n\n* Comes with updated gitk.\n\n* New commands and options.\n\n  - The hunk header output from \"git diff\" family can be customized\n    with the attributes mechanism.  See gitattributes(5) for details.\n\n  - \"git stash\" allows you to quickly save away your work in\n    progress and replay it later on an updated state.\n\n  - \"git rebase\" learned an \"interactive\" mode that let you\n    pick and reorder which commits to rebuild.\n\n  - \"git fsck\" can save its findings in $GIT_DIR/lost-found,\n    without a separate invocation of \"git lost-found\" command.\n\n  - $GIT_WORK_TREE environment variable can be used together with\n    $GIT_DIR to work in a subdirectory of a working tree that is\n    not located at \"$GIT_DIR/..\".\n\n  - \"git log\" learned a new option \"--follow\", to follow\n    renaming history of a single file.\n\n  - \"git-filter-branch\" lets you rewrite the revision history of\n    the current branch, creating a new branch. You can specify a\n    number of filters to modify the commits, files and trees.\n\n  - \"git-cvsserver\" learned new options (--base-path, --export-all,\n    --strict-paths) inspired by git-daemon.\n\n  - \"git-submodule\" command helps you manage the projects from\n    the superproject that contain them.\n\n  - In addition to core.compression configuration option,\n    core.loosecompression and pack.compression options can\n    independently tweak zlib compression levels used for loose\n    and packed objects.\n\n  - \"git-ls-tree -l\" shows size of blobs pointed at by the\n    tree entries, similar to \"/bin/ls -l\".\n\n  - \"git-rev-list\" learned --regexp-ignore-case and\n    --extended-regexp options to tweak its matching logic used\n    for --grep fitering.\n\n  - \"git-describe --contains\" is a handier way to call more\n    obscure command \"git-name-rev --tags\".\n\n  - \"git gc --aggressive\" tells the command to spend more cycles\n    to optimize the repository harder.\n\n  - \"git repack\" can be told to split resulting packs to avoid\n    exceeding limit specified with \"--max-pack-size\".\n\n  - \"git fsck\" gained --verbose option.  This is really really\n    verbose but it might help you identify exact commit that is\n    corrupt in your repository.\n\n  - \"git format-patch\" learned --numbered-files option.  This\n    may be useful for MH users.\n\n  - \"git format-patch\" learned format.subjectprefix configuration\n    variable, which serves the same purpose as \"--subject-prefix\"\n    option.\n\n  - \"git tag -n -l\" shows tag annotations while listing tags.\n\n  - \"git cvsimport\" can optionally use the separate-remote layout.\n\n  - \"git blame\" can be told to see through commits that change\n    whitespaces and indentation levels with \"-w\" option.\n\n  - \"git send-email\" can be told not to thread the messages when\n    sending out more than one patches.\n\n  - \"git config\" learned NUL terminated output format via -z to\n    help scripts.\n\n  - \"git init -q\" makes the command quieter.\n\n* Updated behavior of existing commands.\n\n  - \"git svn dcommit\" retains local merge information.\n\n  - \"git config\" to set values also honors type flags like --bool\n    and --int.\n\n  - core.quotepath configuration can be used to make textual git\n    output to emit most of the characters in the path literally.\n\n  - \"git mergetool\" chooses its backend more wisely, taking\n    notice of its environment such as use of X, Gnome/KDE, etc.\n\n  - \"gitweb\" shows merge commits a lot nicer than before.  The\n    default view uses more compact --cc format, while the UI\n    allows to choose normal diff with any parent.\n\n  - snapshot files \"gitweb\" creates from a repository at\n    $path/$project/.git are more useful.  We use $project part\n    in the filename, which we used to discard.\n\n  - \"git cvsimport\" creates lightweight tags; there is no\n    interesting information we can record in an annotated tag,\n    and the handcrafted ones the old code created was not\n    properly formed anyway.\n\n  - \"git-push\" pretends that you immediately fetched back from\n    the remote by updating corresponding remote tracking\n    branches if you have any.\n\n  - The diffstat given after a merge (or a pull) honors the\n    color.diff configuration.\n\n  - \"git-apply --whitespace=strip\" removes blank lines added at\n    the end of the file.\n\n  - \"git-fetch\" over git native protocols with \"-v\" option shows\n    connection status, and the IP address of the other end, to\n    help diagnosing problems.\n\n  - We used to have core.legacyheaders configuration, when\n    set to false, allowed git to write loose objects in a format\n    that mimicks the format used by objects stored in packs.  It\n    turns out that this was not so useful.  Although we will\n    continue to read objects written in that format, we do not\n    honor that configuration anymore and create loose objects in\n    the legacy/traditional format.\n\n  - \"--find-copies-harder\" option to diff family can now be\n    spelled as \"-C -C\" for brevity.\n\n  - \"git-mailsplit\" (hence \"git-am\") can read from Maildir\n    formatted mailboxes.\n\n  - \"git-cvsserver\" does not barf upon seeing \"cvs login\"\n    request.\n\n  - \"pack-objects\" honors \"delta\" attribute set in\n    .gitattributes.  It does not attempt to deltify blobs that\n    come from paths with delta attribute set to false.\n\n  - \"new-workdir\" script (in contrib) can now be used with a\n    bare repository.\n\n  - \"git-mergetool\" learned to use gvimdiff.\n\n  - \"gitview\" (in contrib) has a better blame interface.\n\n  - \"git log\" and friends did not handle a commit log message\n    that is larger than 16kB; they do now.\n\n  - \"--pretty=oneline\" output format for \"git log\" and friends\n    deals with \"malformed\" commit log messages that have more\n    than one lines in the first paragraph better.  We used to\n    show the first line, cutting the title at mid-sentence; we\n    concatenate them into a single line and treat the result as\n    \"oneline\".\n\n* Builds\n\n  - old-style function definitions (most notably, a function\n    without parameter defined with \"func()\", not \"func(void)\")\n    have been eradicated.\n\n* Performance Tweaks\n\n  - git-pack-objects avoids re-deltification cost by caching\n    small enough delta results it creates while looking for the\n    best delta candidates.\n\n  - git-pack-objects learned a new heuristcs to prefer delta\n    that is shallower in depth over the smallest delta\n    possible.  This improves both overall packfile access\n    performance and packfile density.\n\n  - diff-delta code that is used for packing has been improved\n    to work better on big files.\n\n  - when there are more than one pack files in the repository,\n    the runtime used to try finding an object always from the\n    newest packfile; it now tries the same packfile as we found\n    the object requested the last time, which exploits the\n    locality of references.\n\n  - verifying pack contents done by \"git fsck --full\" got boost\n    by carefully choosing the order to verify objects in them.\n\n\nFixes since v1.5.2\n------------------\n\nAll of the fixes in v1.5.2 maintenance series are included in\nthis release, unless otherwise noted.\n\n* Bugfixes\n\n  - \"gitweb\" had trouble handling non UTF-8 text with older\n    Encode.pm Perl module.\n"},{"id":"47245","messageId":"20070713092908.GO1528MdfPADPa@greensroom.kotnet.org","threadId":"8140","inReplyTo":"7vlkdkq00o.fsf_-_@assigned-by-dhcp.cox.net","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Sven Verdoolaege","fromEmail":"skimo@kotnet.org","sentAt":"2007-07-13T09:29:09Z","receivedAt":"2007-07-13T09:29:09Z","isPatch":false,"sender":{"key":"skimo@kotnet.org","avatar":null},"body":"On Thu, Jul 12, 2007 at 11:40:39PM -0700, Junio C Hamano wrote:\n>   - \"git-filter-branch\" lets you rewrite the revision history of\n>     the current branch, creating a new branch. You can specify a\n>     number of filters to modify the commits, files and trees.\n\nAre you sure you want to announce this so publicly given that\nDscho has basically declared git-filter-branch dead?\n(I know, I'm mostly to blame.)\n\nskimo\n"},{"id":"47266","messageId":"20070713135034.GK19073@lavos.net","threadId":"8140","inReplyTo":"7vlkdkq00o.fsf_-_@assigned-by-dhcp.cox.net","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Brian Downing","fromEmail":"bdowning@lavos.net","sentAt":"2007-07-13T13:50:34Z","receivedAt":"2007-07-13T13:50:34Z","isPatch":false,"sender":{"key":"bdowning@lavos.net","avatar":"https://avatars.githubusercontent.com/u/366426?v=4"},"body":"On Thu, Jul 12, 2007 at 11:40:39PM -0700, Junio C Hamano wrote:\n> GIT v1.5.3 Release Notes (draft)\n> ========================\n> \n> * New commands and options.\n\n  - \"git repack\" learned a \"window-memory\" limit which dynamically\n    reduces the window size to stay within the specified memory usage.\n\n\"git-repack -a -d -f --window=100000 --window-memory=512m\" seems to be\ngood for those overnight make-it-smaller-damn-the-torpedoes archival\nrepackings.  (You can't just set --window to BIGNUM as it still\nallocates an array of that size.)  Thanks to Nicolas Pitre's depth bias\npatch a high --depth doesn't seem to be quite as critical anymore to\nsave space; it still helps, but things much much better at a lower\ndepth.\n\nAs a point of reference, it took around two hours to repack a repository\ncontaining 108,440 objects, around 35,000 files (most with no history),\nand my aforementioned troublesome 20MB RTF file (which uses about 60MB\nper revision when sitting in the window due to the delta index cache)\nwith the above command.  This is on a 2GHz Core 2 Duo in 64-bit mode.\n\n-bcd\n"},{"id":"47270","messageId":"7v644opbgh.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"20070713135034.GK19073@lavos.net","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-13T15:31:10Z","receivedAt":"2007-07-13T15:31:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"bdowning@lavos.net (Brian Downing) writes:\n\n> On Thu, Jul 12, 2007 at 11:40:39PM -0700, Junio C Hamano wrote:\n>> GIT v1.5.3 Release Notes (draft)\n>> ========================\n>> \n>> * New commands and options.\n>\n>   - \"git repack\" learned a \"window-memory\" limit which dynamically\n>     reduces the window size to stay within the specified memory usage.\n\nThanks.\n\n> \"git-repack -a -d -f --window=100000 --window-memory=512m\" seems to be\n> good for those overnight make-it-smaller-damn-the-torpedoes archival\n> repackings.  (You can't just set --window to BIGNUM as it still\n> allocates an array of that size.)  Thanks to Nicolas Pitre's depth bias\n> patch a high --depth doesn't seem to be quite as critical anymore to\n> save space; it still helps, but things much much better at a lower\n> depth.\n\nThis probably should go to Documentation/git-repack.txt\nsomewhere.\n"},{"id":"47354","messageId":"Pine.LNX.4.64.0707141517450.14781@racer.site","threadId":"8140","inReplyTo":"20070713092908.GO1528MdfPADPa@greensroom.kotnet.org","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-14T14:22:22Z","receivedAt":"2007-07-14T14:22:22Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 13 Jul 2007, Sven Verdoolaege wrote:\n\n> On Thu, Jul 12, 2007 at 11:40:39PM -0700, Junio C Hamano wrote:\n> >   - \"git-filter-branch\" lets you rewrite the revision history of\n> >     the current branch, creating a new branch. You can specify a\n> >     number of filters to modify the commits, files and trees.\n> \n> Are you sure you want to announce this so publicly given that\n> Dscho has basically declared git-filter-branch dead?\n> (I know, I'm mostly to blame.)\n\nIt is really unfortunate that rewrite-commits came in so late in the \nrelease cycle, and I am quite sure it should not be in 1.5.3.  There is \njust too much new in it, and too many things to flesh out.\n\nJunio, if you want to include it in 1.5.3, it should be marked as alpha \ncode, as it has not seen any time in \"next\", let alone \"master\".\n\nHowever, no matter if rewrite-commits is included in 1.5.3, I am not sure \nwhat to do about filter-branch.\n\nSince it saw a lot of testing in its admin-rewritehist form, and has had \nat least some eye pairs looking over it, I have the feeling that it is \nstable enough to include.  How to tell people that it will soon be \nobsoleted by rewrite-commits, I have no idea.\n\nIt would be a much less difficult problem if the syntax of filter-branch \nand rewrite-commits was identical.  Maybe we should make it so, by \nchanging filter-branch?\n\nThoughts?\n\nCiao,\nDscho\n"},{"id":"47365","messageId":"7vvecmj1ju.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"Pine.LNX.4.64.0707141517450.14781@racer.site","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-14T18:13:57Z","receivedAt":"2007-07-14T18:13:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> It is really unfortunate that rewrite-commits came in so late in the \n> release cycle, and I am quite sure it should not be in 1.5.3.  There is \n> just too much new in it, and too many things to flesh out.\n>\n> Junio, if you want to include it in 1.5.3, it should be marked as alpha \n> code, as it has not seen any time in \"next\", let alone \"master\".\n\nI am not considering rewrite-commits for inclusion right now.\n\nI was hoping that filter-branch will stay.  Its interface is\nsomething people are already familiar with since the days of its\nits older incarnation cg-admin-rewritehist, and it would be\nreally really nice that anything that attempts to replace it\nbuilds on and extends its external interface.\n\nMaybe rewrite-commits can be used to delegate the implementation\nof heavy lifting from filter-branch?  IOW can the latter be\njust a thin wrapper around the former?\n"},{"id":"47483","messageId":"Pine.LNX.4.64.0707160053130.14781@racer.site","threadId":"8140","inReplyTo":"7vvecmj1ju.fsf@assigned-by-dhcp.cox.net","subject":"Re: Draft release notes for v1.5.3, as of -rc1","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-15T23:53:58Z","receivedAt":"2007-07-15T23:53:58Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sat, 14 Jul 2007, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > It is really unfortunate that rewrite-commits came in so late in the \n> > release cycle, and I am quite sure it should not be in 1.5.3.  There is \n> > just too much new in it, and too many things to flesh out.\n> >\n> > Junio, if you want to include it in 1.5.3, it should be marked as alpha \n> > code, as it has not seen any time in \"next\", let alone \"master\".\n> \n> I am not considering rewrite-commits for inclusion right now.\n\nFair enough.\n\n> I was hoping that filter-branch will stay.  Its interface is something \n> people are already familiar with since the days of its its older \n> incarnation cg-admin-rewritehist, and it would be really really nice \n> that anything that attempts to replace it builds on and extends its \n> external interface.\n> \n> Maybe rewrite-commits can be used to delegate the implementation of \n> heavy lifting from filter-branch?  IOW can the latter be just a thin \n> wrapper around the former?\n\nThat is a very good idea.\n\nCiao,\nDscho\n"},{"id":"48882","messageId":"7vvec4synj.fsf_-_@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vzm20q1l7.fsf_-_@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-28T08:47:12Z","receivedAt":"2007-07-28T08:47:12Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It's been a while since I sent this the last time.\n\nWe are nearing 1.5.3 final; I pulled gitk updates tonight, and\nexpect git-gui updates to 0.8.0 over the weekend.  There are a\nhandful trivial fixes since 1.5.3-rc3.\n\nI am hoping one topic (bs/lock) to graduate from 'next' and\nanother from nowhere (js/worktree) before 1.5.3-rc4, probably by\nmid next-week.\n\n----------------------------------------------------------------\n\n* The 'maint' branch has these fixes since the last announcement.\n\nJulian Phillips (1):\n  Force listingblocks to be monospaced in manpages\n\nJunio C Hamano (1):\n  Do not expect unlink(2) to fail on a directory.\n\n\n* The 'master' branch has these since the last announcement\n  in addition to the above.\n\nAdam Roben (1):\n  Add GIT_EDITOR environment and core.editor configuration variables\n\nAlex Riesen (1):\n  Fix git-rebase -i to allow squashing of fast-forwardable commits\n\nAlexandre Julliard (2):\n  git.el: Support for incremental status updates.\n  git.el: Pass an explicit argument to enable smerge-mode.\n\nBrian Gernhardt (1):\n  Document commit.template configuration variable.\n\nCarlos Rica (1):\n  Rename read_pipe() with read_fd() and make its buffer\n      nul-terminated.\n\nDavid Kastrup (2):\n  contrib/emacs/Makefile: Also install .el files.\n  Documentation/gitignore.txt: Fix the seriously misleading priority\n      explanation\n\nEmil Medve (1):\n  Use $(RM) in Makefiles instead of 'rm -f'\n\nEric Wong (2):\n  git-svn: remove leading slashes from fetch lines in the generate\n      config\n  git-svn: fix commiting renames over DAV with funky file names\n\nFrancis Moreau (1):\n  Fix git-branch documentation when using remote refs\n\nGreg KH (1):\n  make git-send-email.perl handle email addresses with no names when\n      Email::Valid is present\n\nJakub Narebski (3):\n  gitweb cleanup: Move @diff_opts declaration earlier\n  gitweb: Fix support for legacy gitweb config for snapshots\n  gitweb: More detailed error messages for snapshot format\n\nJim Meyering (2):\n  git-cvsserver: detect/diagnose write failure, etc.\n  pretty-options.txt: tiny doc fix\n\nJohannes Schindelin (13):\n  filter-branch: get rid of \"set -e\"\n  rebase -i: call editor just once for a multi-squash\n  fsck --lost-found: write blob's contents, not their SHA-1\n  mailinfo: fix 'fatal: cannot convert from utf-8 to utf-8'\n  Shut \"git rebase -i\" up when no --verbose was given\n  rebase -i: exchange all \"if [ .. ]\" by \"if test ..\"\n  filter-branch: Big syntax change; support rewriting multiple refs\n  Teach revision machinery about --no-walk\n  git log -g: Complain, but do not fail, when no reflogs are there\n  Teach approxidate() to understand \"never\"\n  git am: skip pine's internal folder data\n  rebase -i: fix overzealous output redirection\n  rebase -i: fix interrupted squashing\n\nJosh Triplett (1):\n  Remove useless uses of cat, and replace with filename arguments\n\nJunio C Hamano (24):\n  Make show_rfc2822_date() just another date output format.\n  Wire new date formats to --date=<format> parser.\n  Document new --date=<format>\n  Add contrib/stats/mailmap.pl script\n  Update .mailmap\n  Documentation/git-commit-tree: remove description of a nonexistent\n      limitation\n  GIT v1.5.3-rc2\n  Update INSTALL\n  Fix VISUAL/EDITOR preference order in Documentation/config.txt.\n  Synonyms: -i == --regexp-ignore-case, -E == --extended-regexp\n  Mark user-manual as UTF-8\n  user-manual: fix typolets.\n  t9200: Be careful when checking CVS/Entries\n  GIT 1.5.3-rc3\n  Make sure git-stash works from subdirectory.\n  gitweb: fix broken snapshot\n  git-submodule module_name: avoid using unwieldy \"value_regexp\"\n      feature.\n  git-submodule: remove redundant call to git-describe\n  When locking in a symlinked repository, try to lock the original.\n  git_mkstemp(): be careful not to overflow the path buffer.\n  Update description of -z option.\n  git-stash: do not remove a ref by hand.\n  Fix git-stash apply --index\n  git-stash apply --index: optimize postprocessing\n\nKumar Gala (1):\n  send-email: Update regex parsing for pine aliases\n\nLinus Torvalds (2):\n  Do a better job at guessing unknown character sets\n  Fix up duplicate parents removal\n\nMarco Costalba (1):\n  Avoid to duplicate commit message when is not encoded\n\nMarius Storm-Olsen (1):\n  Fix git-p4 on Windows to not use the Posix sysconf function.\n\nMark Levedahl (1):\n  gitk: Ignore ctrl-z as EOF on windows\n\nMatt McCutchen (1):\n  gitweb: snapshot cleanups & support for offering multiple formats\n\nMatthieu Moy (1):\n  More permissive \"git-rm --cached\" behavior without -f.\n\nNanako Shiraishi (2):\n  Document \"git stash message...\"\n  git-stash: Make sure reflog is created for refs/stash\n\nNguyễn Thái Ngọc Duy (1):\n  git-write-tree should not crash if prefix does not exist\n\nPaul Mackerras (5):\n  gitk: Fix bug introduced by previous commit\n  gitk: Show changes in index and changes in working directory\n      separately\n  gitk: Make the fake commit for the index changes green rather than\n      magenta\n  gitk: Wait for the window to become visible after creating it\n  gitk: Fix bugs in the Find function\n\nPeter Hagervall (1):\n  Make every builtin-*.c file #include \"builtin.h\"\n\nRené Scharfe (2):\n  filter-branch: fix dash complaining about \"Missing '))'\"\n  cleanup unpack-trees.c: shrink struct tree_entry_list\n\nRichard MUSIL (1):\n  git-svn: Minimalistic patch which allows svn usernames with\n      space(s).\n\nRobin Rosenberg (3):\n  Support output ISO 8601 format dates\n  cvsexportcommit: avoid racy CVS problem.\n  Document --unified/-U option\n\nScott Lamb (2):\n  git-p4: use subprocess in p4CmdList\n  git-p4: input to \"p4 files\" by stdin instead of arguments\n\nSean Estabrooks (3):\n  Remove \"WITH_P4IMPORT\" knob from the Makefile\n  Remove p4 rpm from git.spec.in.\n  Demote git-p4import to contrib status.\n\nShawn O. Pearce (3):\n  Correct trivial typo in fast-import documentation\n  Teach fast-import to recursively copy files/directories\n  gitk: Bind keyboard actions to the command key on Mac OS\n\nSimon Hausmann (4):\n  git-p4: Cleanup, make listExistingP4Branches a global function for\n      later use.\n  git-p4: Fix upstream branch detection for submit/rebase with\n      multiple branches.\n  git-p4: Cleanup, used common function for listing imported p4\n      branches\n  git-p4: Fix p4 user cache population on Windows.\n\nStephen Rothwell (1):\n  send-email: discard blank around address in extract_valid_address\n      as well.\n\nSteven Grimm (2):\n  Document how to tell git to not launch a pager\n  Teach git-commit about commit message templates.\n\nSven Verdoolaege (2):\n  lockfile.c: schedule remove_lock_file only once.\n  unpack-trees.c: assume submodules are clean during check-out\n"},{"id":"48885","messageId":"85zm1g3nze.fsf@lola.goethe.zz","threadId":"8140","inReplyTo":"7vvec4synj.fsf_-_@assigned-by-dhcp.cox.net","subject":"Re: What's in git.git (stable)","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-28T08:56:53Z","receivedAt":"2007-07-28T08:56:53Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> It's been a while since I sent this the last time.\n>\n> We are nearing 1.5.3 final; I pulled gitk updates tonight, and\n> expect git-gui updates to 0.8.0 over the weekend.  There are a\n> handful trivial fixes since 1.5.3-rc3.\n\nI'd like to see some changes for mergetool's Emacs support: in\nmoderately current versions of Emacs and XEmacs, ediff is a much\npreferable tool to emerge.\n\nAlso, the mergetool determines when to use emerge for merging by\nlooking at the EDITOR/VISUAL variables.  While it recognizes the\npresence of \"emacsclient\" and \"gnuclient\" there for offering the\nemerge tool, it does not actually use those settings for calling\nEmacs/XEmacs.  If you use the desktop package, this means that you get\na bear of a startup time while a _new_ instance of Emacs gets loaded\nagainst the wishes of the setup, and the command line parameters will\nbe interpreted relatively to the last file restored into the desktop\nrather than the current directory (arguably a bug in the desktop\npackage which I plan to fix eventually, but in the meantime the\ncurrent package is farspread).\n\nI'll try to come up with a fix this weekend if nobody beats me to it.\nAs it stands, the mergetool is somewhere between subpar and unusable\nby default for a considerable number of Emacs users.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"48888","messageId":"7vk5sksxxr.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"85zm1g3nze.fsf@lola.goethe.zz","subject":"Re: What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-28T09:02:40Z","receivedAt":"2007-07-28T09:02:40Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> I'd like to see some changes for mergetool's Emacs support: in\n> moderately current versions of Emacs and XEmacs, ediff is a much\n> preferable tool to emerge.\n\nBetween ediff and emerge, I think Ted gave a well thought out\nanalysis on the list earlier, so you might want to consider the\nissues he raised if/when you tackle this.\n\nThis is late in the game, however, so your change probably won't\nbe merged before I can tag 1.5.3 final, but I'd expect that a\nbetter Emacs support will be widely welcomed.\n"},{"id":"48891","messageId":"85bqdw27mb.fsf@lola.goethe.zz","threadId":"8140","inReplyTo":"85zm1g3nze.fsf@lola.goethe.zz","subject":"Re: What's in git.git (stable)","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-28T09:35:40Z","receivedAt":"2007-07-28T09:35:40Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n[...]\n\n> If you use the desktop package, this means that you get a bear of a\n> startup time while a _new_ instance of Emacs gets loaded against the\n> wishes of the setup, and the command line parameters will be\n> interpreted relatively to the last file restored into the desktop\n> rather than the current directory (arguably a bug in the desktop\n> package which I plan to fix eventually, but in the meantime the\n> current package is farspread).\n\nI can't reproduce anything similar outside of mergetool, so it appears\nmore likely that mergetool is passing wrong relative file names.\n\nHave to leave now for the day.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"48898","messageId":"20070728122847.GA22349@cip.informatik.uni-erlangen.de","threadId":"8140","inReplyTo":"7vvec4synj.fsf_-_@assigned-by-dhcp.cox.net","subject":"Re: What's in git.git (stable)","fromName":"Thomas Glanzmann","fromEmail":"thomas@glanzmann.de","sentAt":"2007-07-28T12:28:47Z","receivedAt":"2007-07-28T12:28:47Z","isPatch":false,"sender":{"key":"thomas@glanzmann.de","avatar":null},"body":"Hello Junio,\ngit HEAD compiles under 'Solaris 8/Forte 11' and 'Solaris 10/Forte 12'\nfor me.\n\n\tThomas\n"},{"id":"48949","messageId":"20070729031612.GB17204@thunk.org","threadId":"8140","inReplyTo":"85bqdw27mb.fsf@lola.goethe.zz","subject":"Re: What's in git.git (stable)","fromName":"Theodore Tso","fromEmail":"tytso@mit.edu","sentAt":"2007-07-29T03:16:12Z","receivedAt":"2007-07-29T03:16:12Z","isPatch":false,"sender":{"key":"tytso@mit.edu","avatar":"https://avatars.githubusercontent.com/u/51416?v=4"},"body":"On Sat, Jul 28, 2007 at 11:35:40AM +0200, David Kastrup wrote:\n> David Kastrup <dak@gnu.org> writes:\n> \n> > If you use the desktop package, this means that you get a bear of a\n> > startup time while a _new_ instance of Emacs gets loaded against the\n> > wishes of the setup, and the command line parameters will be\n> > interpreted relatively to the last file restored into the desktop\n> > rather than the current directory (arguably a bug in the desktop\n> > package which I plan to fix eventually, but in the meantime the\n> > current package is farspread).\n> \n> I can't reproduce anything similar outside of mergetool, so it appears\n> more likely that mergetool is passing wrong relative file names.\n\nSee my recent posting on this issue.  The problem is that the desktop\npackage fundamentally changes how emacs behaves when it starts up.\nAnd in order to fix it we will need to change git-mergetool to do an\n\"emacs --version\", parse the version number, and then start changing\nhow it calls emacs (and if you *really* want to use emacsclient,\nwhether it can use emacsclient) based on the version of emacs which is\ninstalled as the default for the user.  It's going to be really messy,\nand fundamentally, emacs as used by people who are using the desktop\npackage really wants to be the center of the universe, instead of\nsomething which gets called to run a \"merge application\".  Testing to\nmake sure this works on every single emacs version/variant, and every\nsingle user's weird-sh*t startup scripts isn't something I'm looking\nforward to.\n\nSo I really am beginning to think the right answer is to give up on\nusing git-mergetool to support anything other than basic emacs users\n(who just use emacs as an editor, what a concept), and for the H4rd\nC0re emacs l33t, they can use a contrib/git-mergetool.el that does\neverything inside emacs.  Since these are the people who want emacs to\nbe their desktop, their shell, *and* their window manager, they will\nprobably be happier that way....\n\n\t\t\t\t\t\t- Ted\n"},{"id":"48969","messageId":"85ir83zijd.fsf@lola.goethe.zz","threadId":"8140","inReplyTo":"20070729031612.GB17204@thunk.org","subject":"Re: What's in git.git (stable)","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-29T09:05:42Z","receivedAt":"2007-07-29T09:05:42Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Theodore Tso <tytso@mit.edu> writes:\n\n> So I really am beginning to think the right answer is to give up on\n> using git-mergetool to support anything other than basic emacs users\n> (who just use emacs as an editor, what a concept),\n\nIn contrast, you are trying to support only people by using Emacs\n_not_ as an editor, but as a mergetool under the control of git.\nThat's a mistake.\n\n> and for the H4rd C0re emacs l33t, they can use a\n> contrib/git-mergetool.el that does everything inside emacs.  Since\n> these are the people who want emacs to be their desktop, their\n> shell, *and* their window manager, they will probably be happier\n> that way....\n\nSorry, but you are way off here.  The normal, standard use of Emacs is\nto start it once and do everything in it.  Its startup time is such\nthat other uses are not feasible.\n\n(info \"(emacs) Entering Emacs\")\n\n       Many editors are designed to edit one file.  When done with\n    that file, you exit the editor.  The next time you want to edit a\n    file, you must start the editor again.  Working this way, it is\n    convenient to use a command-line argument to say which file to\n    edit.\n\n       However, killing Emacs after editing one each and starting it\n    afresh for the next file is both unnecessary and harmful, since it\n    denies you the full power of Emacs.  Emacs can visit more than one\n    file in a single editing session, and that is the right way to use\n    it.  Exiting the Emacs session loses valuable accumulated context,\n    such as the kill ring, registers, undo history, and mark ring.\n    These features are useful for operating on multiple files, or even\n    continuing to edit one file.  If you kill Emacs after each file,\n    you don't take advantage of them.\n\n       The recommended way to use GNU Emacs is to start it only once,\n    just after you log in, and do all your editing in the same Emacs\n    session.  Each time you edit a file, you visit it with the\n    existing Emacs, which eventually has many files in it ready for\n    editing.  Usually you do not kill Emacs until you are about to log\n    out.  *Note Files::, for more information on visiting more than\n    one file.\n\n       To edit a file from another program while Emacs is running, you\n    can use the `emacsclient' helper program to open a file in the\n    already running Emacs.  *Note Emacs Server::.\n\n\nSo git's mergetool philosophy is currently _straight_ set against the\nway Emacs is designed to work.\n\nOne solution would be to call emacs -q in order to weed out users with\nthe impunity of customizing Emacs to suit their needs rather than\nthose of git.\n\nBut the sanest is really to call Emacs just the way the user\nconfigured $EDITOR to call it and pass it an initial merge command.\nAnd then decide from the results on the disk what to further do.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"48976","messageId":"Pine.LNX.4.64.0707291224460.14781@racer.site","threadId":"8140","inReplyTo":"20070729031612.GB17204@thunk.org","subject":"Re: What's in git.git (stable)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-29T11:27:03Z","receivedAt":"2007-07-29T11:27:03Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sat, 28 Jul 2007, Theodore Tso wrote:\n\n> So I really am beginning to think the right answer is to give up on \n> using git-mergetool to support anything other than basic emacs users \n> (who just use emacs as an editor, what a concept), and for the H4rd C0re \n> emacs l33t, they can use a contrib/git-mergetool.el that does everything \n> inside emacs.  Since these are the people who want emacs to be their \n> desktop, their shell, *and* their window manager, they will probably be \n> happier that way....\n\nWell, maybe not happier.  But at least they will be forced to write a \npatch (if they really want to use git _their_ way, and they'll have to \ndefend their patch if they break all other people's work flow), instead of \nwriting a lot of long and useless emails.\n\nIOW I do not think \"we\" have to do something about it.\n\nCiao,\nDscho\n"},{"id":"48988","messageId":"85hcnnwblu.fsf@lola.goethe.zz","threadId":"8140","inReplyTo":"Pine.LNX.4.64.0707291224460.14781@racer.site","subject":"[Untested! proposal] git-mergetool.sh: introduce ediff option","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-29T13:51:34Z","receivedAt":"2007-07-29T13:51:34Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"\nThis is not yet tested (still have to do that): it's a base for\ndiscussion and something which I think reasonable.  It does not touch\nthe old behavior of \"emerge\" apart from calling Emacs with option -q\nforegoing user-specific initializations, and preselects \"ediff\" only\nwhere EDITOR/VISUAL suggest Emacs being used as a normal editor.\n\nHere goes:\n\nMost actual Emacs users prefer ediff to emerge concerning the\nconsolidation of versions.  In general, people habitually using Emacs\nwill have this preference reflected in the EDITOR/VISUAL environment\nvariables.\n\nIf such a preference can be found there, ediff will be used/offered in\npreference of emerge (which retains its previous behavior).\n\nIn ediff mode, success or failure of the merge will be discerned by\nEmacs either having written or not written the merge buffer; no\nattempt of interpreting the exit code is made.\n\nThis is much closer to the working habits of Emacs users than the\nemerge behavior which uses Emacs as a one-shot session editor.\n\nIn order to bypass things like desktop files being loaded, emerge mode\nnow passes the \"-q\" option to Emacs.  This will make it work in more\nsituations likely to occur, at the price of excluding possibly\nharmless user customizations with the rest.\n---\n git-mergetool.sh |   50 ++++++++++++++++++++++++++++++++++++--------------\n 1 files changed, 36 insertions(+), 14 deletions(-)\n\ndiff --git a/git-mergetool.sh b/git-mergetool.sh\nindex 47a8055..8ed3ed4 100755\n--- a/git-mergetool.sh\n+++ b/git-mergetool.sh\n@@ -251,13 +251,27 @@ merge_file () {\n \t    ;;\n \temerge)\n \t    if base_present ; then\n-\t\temacs -f emerge-files-with-ancestor-command \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$path\"\n+\t\temacs -q -f emerge-files-with-ancestor-command \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$path\"\n \t    else\n-\t\temacs -f emerge-files-command \"$LOCAL\" \"$REMOTE\" \"$path\"\n+\t\temacs -q -f emerge-files-command \"$LOCAL\" \"$REMOTE\" \"$path\"\n \t    fi\n \t    status=$?\n \t    save_backup\n \t    ;;\n+\tediff)\n+\t    case \"${EDITOR:-${VISUAL:-emacs}}\" in\n+\t\t*/emacs*|*/gnuclient*|*/xemacs*)\n+\t\t    emacs_candidate=\"${EDITOR:-${VISUAL:-emacs}}\";;\n+\t\t*)\n+\t\t    emacs_candidate=emacs;;\n+\t    esac\n+\t    if base_present ; then\n+\t\t${emacs_candidate} --eval \"(ediff-merge-files-with-ancestor (pop command-line-args-left) (pop command-line-args-left) (pop command-line-args-left) nil (pop-command-line-args-left))\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$path\"\n+\t    else\n+\t\t${emacs_candidate} --eval \"(ediff-merge-files (pop command-line-args-left) (pop command-line-args-left) nil (pop-command-line-args-left))\" \"$LOCAL\" \"$REMOTE\" \"$path\"\n+\t    fi\n+\t    check_unchanged\n+\t    save_backup\n     esac\n     if test \"$status\" -ne 0; then\n \techo \"merge of $path failed\" 1>&2\n@@ -299,7 +313,7 @@ done\n if test -z \"$merge_tool\"; then\n     merge_tool=`git config merge.tool`\n     case \"$merge_tool\" in\n-\tkdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | \"\")\n+\tkdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | ediff | vimdiff | gvimdiff | \"\")\n \t    ;; # happy\n \t*)\n \t    echo >&2 \"git config option merge.tool set to unknown tool: $merge_tool\"\n@@ -319,23 +333,26 @@ if test -z \"$merge_tool\" ; then\n             merge_tool_candidates=\"kdiff3 $merge_tool_candidates\"\n         fi\n     fi\n-    if echo \"${VISUAL:-$EDITOR}\" | grep 'emacs' > /dev/null 2>&1; then\n-        merge_tool_candidates=\"$merge_tool_candidates emerge\"\n-    fi\n+    case \"${EDITOR:-${VISUAL}}\" in\n+\t*/emacs*|*/gnuclient*|*/xemacs*)\n+            merge_tool_candidates=\"$merge_tool_candidates ediff\"\n+    esac\n     if echo \"${VISUAL:-$EDITOR}\" | grep 'vim' > /dev/null 2>&1; then\n         merge_tool_candidates=\"$merge_tool_candidates vimdiff\"\n     fi\n     merge_tool_candidates=\"$merge_tool_candidates opendiff emerge vimdiff\"\n     echo \"merge tool candidates: $merge_tool_candidates\"\n     for i in $merge_tool_candidates; do\n-        if test $i = emerge ; then\n-            cmd=emacs\n-        else\n-            cmd=$i\n-        fi\n-        if type $cmd > /dev/null 2>&1; then\n-            merge_tool=$i\n-            break\n+\tcase $i in emerge)\n+\t\tcmd=emacs;;\n+\t    ediff)\n+\t\tmerge_tool=$i\n+\t\tbreak;;\n+\t    *) cmd=$i\n+\t    esac\n+\tif type $cmd > /dev/null 2>&1; then\n+\t    merge_tool=$i\n+\t    break\n         fi\n     done\n     if test -z \"$merge_tool\" ; then\n@@ -357,6 +374,11 @@ case \"$merge_tool\" in\n \t    exit 1\n \tfi\n \t;;\n+    ediff)\n+\tif ! (set ${EDITOR:-${VISUAL:-emacs}}; type \"$1\" > /dev/null 2>&1); then\n+\t    echo \"${EDITOR:-${VISUAL:-emacs}} is not available\"\n+\t    exit 1\n+\tfi\n     *)\n \techo \"Unknown merge tool: $merge_tool\"\n \texit 1\n-- \n1.5.2.3\n"},{"id":"48995","messageId":"20070729164001.GA9597@thunk.org","threadId":"8140","inReplyTo":"85ir83zijd.fsf@lola.goethe.zz","subject":"Re: What's in git.git (stable)","fromName":"Theodore Tso","fromEmail":"tytso@mit.edu","sentAt":"2007-07-29T16:40:01Z","receivedAt":"2007-07-29T16:40:01Z","isPatch":false,"sender":{"key":"tytso@mit.edu","avatar":"https://avatars.githubusercontent.com/u/51416?v=4"},"body":"On Sun, Jul 29, 2007 at 11:05:42AM +0200, David Kastrup wrote:\n> Theodore Tso <tytso@mit.edu> writes:\n> \n> > So I really am beginning to think the right answer is to give up on\n> > using git-mergetool to support anything other than basic emacs users\n> > (who just use emacs as an editor, what a concept),\n> \n> In contrast, you are trying to support only people by using Emacs\n> _not_ as an editor, but as a mergetool under the control of git.\n> That's a mistake.\n\nThe whole *point* of git-mergetool is to automatically call merge\ntools so you can do three-way merges under the control of git.  \n\nIf you just want an *editor* then you can just edit the files that are\nlisted as being in conflict after a failed merge or after running \"git\nstatus\".  You can do that today without using git-mergetool at all!\n\n> Sorry, but you are way off here.  The normal, standard use of Emacs is\n> to start it once and do everything in it.  Its startup time is such\n> that other uses are not feasible.\n\nHuh?  The startup time of running emacs for me is well under a second\n(and I have a 20k ~/.emacs.el file that loads a number of other\nfiles).  I'm sure if you put enough *crap* into your .emacs.el file,\nyou can make it take a huge amount of time, but I suspect your idea of\nwhat is \"normal\" for emacs is more than a little skewed.\n\n> So git's mergetool philosophy is currently _straight_ set against the\n> way Emacs is designed to work.\n\nSo don't use git-mergetool.  Like I said, I suspect the right answer\nis contrib/git-mergetool.el, and do everything inside emacs.  If you\nare as extreme as someone who pulls in gazillions of emacs packages,\nand you are using emacs as a desktop, a shell, and a window manager,\nthen you can probably do much better using a pure emacs lisp merge\nsystem.\n\nGit mergetool is fundamentally designed to work with tools like meld,\nkdiff3, xxdiff, tkdiff, etc.  These are all merge tools, and they work\na certain way.  They expect, and need, to be driven a certain way.  If\nyou insist on following a fundamentally different paradigm, then past\na certain point git-mergetool is not going to make you happy no matter\nwhat I can do.  The point is, git-mergetool does *need* to do know\nwhen you are done doing a merge, and it needs to know if you've\ndecided to abandon a merge.  Right now ediff doesn't fit well into\nthat paradigm.  And that's fundamentally ediff's fault; we can do some\nkludgery on the git-mergetool side, but the end result will always be\nunsatisfactory, and will require that the person using it to *know*\nthat it is done.\n\nI, personally, don't feel like trying to twist git-mergetool into\ndoing the right thing depending on whether you have emacs21, emacs22,\nemacs23-snapshot, whether or not the desktop package is in use,\nwhether or not the user is using emacsclient or not, yadda, yadda,\nyaddda.  If you want to take a crack at doing *all* of that mess, and\nprovide a complete solution, send me patches and I'll look at them.\n\nI think it will add a huge amount of *crap* into git-mergetool in\norder to support all possible use cases (I'm not interesting in\nputting in hackery just for your favorite use case, if it causes other\nusers to scratch their heads in befuddlement and confusion), but feel\nfree to prove me wrong.  \n\nAs someone who has used emacs for over two decades, and have written\nvery sophisticated emacs lisp code during nearly all of those 21 years\n(1986--2007; my first use of emacs was on a Vax 750 running BSD 4.3\n--- if you want to talk about emacs taking a long time to start up, I\nremember what it was like 20 years ago), I'm pretty well aware of what\nyou can and can not do in emacs, and I think I can say with fairly\ngood authority that for the amount of effort it would take to try to\nget git-mergetool to hack around all of these different cases, writing\ngit-mergetool.el will probably be easier, and result in a cleaner,\nbetter integration with people who like to live their entire lives in\na single emacs session.\n\n\t\t\t\t\t- Ted\n"},{"id":"49016","messageId":"20070729205232.GA10148@thunk.org","threadId":"8140","inReplyTo":"85hcnnwblu.fsf@lola.goethe.zz","subject":"Re: [Untested! proposal] git-mergetool.sh: introduce ediff option","fromName":"Theodore Tso","fromEmail":"tytso@mit.edu","sentAt":"2007-07-29T20:52:32Z","receivedAt":"2007-07-29T20:52:32Z","isPatch":false,"sender":{"key":"tytso@mit.edu","avatar":"https://avatars.githubusercontent.com/u/51416?v=4"},"body":"On Sun, Jul 29, 2007 at 03:51:34PM +0200, David Kastrup wrote:\n> \n> Most actual Emacs users prefer ediff to emerge concerning the\n> consolidation of versions.  In general, people habitually using Emacs\n> will have this preference reflected in the EDITOR/VISUAL environment\n> variables.\n\nProof, please?  Do you have any polls?  What evidence do you have?\nFor the past two decades, I have EDITOR set to emacs, but I am not an\nediff fan.  Yes, that's anecdotal evidence, but so are your assertions.\n\n> If such a preference can be found there, ediff will be used/offered in\n> preference of emerge (which retains its previous behavior).\n\nEdiff is currently far more confusing for someone who just uses emacs\nas an editor.  There are plenty of users who never learned the vi\ncommands, but who use emacs as a reasonably easy-to-use text editor.\nNot everyone who uses emacs is a power-user.....\n\n> In ediff mode, success or failure of the merge will be discerned by\n> Emacs either having written or not written the merge buffer; no\n> attempt of interpreting the exit code is made.\n\nSometimes resolving the merge file results in no changes.  So the fact\nthat ediff is buggy in that it doesn't return an exit code is a real\nproblem.  We could possibly work around the problem saving and then\nchecking the modtime --- but only if ediff actually ends up rewriting\nthe file.\n\n> In order to bypass things like desktop files being loaded, emerge mode\n> now passes the \"-q\" option to Emacs.  This will make it work in more\n> situations likely to occur, at the price of excluding possibly\n> harmless user customizations with the rest.\n\nBut that screws over users who want their customizations, but who\ndon't use the desktop package.  (And I have a news flash for you; the\ndesktop package is *not* include as part of emacs21.  It's not part of\nDebian's emacs21 package, version 21.4.)  So do not believe your claim\nthat emacs's desktop package is commonly used.   \n\nProbably a better choice is a config parameter which allows users to\nspecify a set of options to be passed to emacs when git fires up an\nemacs program.  That would allow some people to specfy --no-desktop if\nthey are using a new enough emacs program that supports it.  It would\nalso allow users to use other emacs command-line options that they\nmight like, i.e., -nw, or --title, etc.\n\n> +\tediff)\n> +\t    case \"${EDITOR:-${VISUAL:-emacs}}\" in\n> +\t\t*/emacs*|*/gnuclient*|*/xemacs*)\n> +\t\t    emacs_candidate=\"${EDITOR:-${VISUAL:-emacs}}\";;\n> +\t\t*)\n> +\t\t    emacs_candidate=emacs;;\n> +\t    esac\n> +\t    if base_present ; then\n> +\t\t${emacs_candidate} --eval \"(ediff-merge-files-with-ancestor (pop command-line-args-left) (pop command-line-args-left) (pop command-line-args-left) nil (pop-command-line-args-left))\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$path\"\n\n... and this will blow up if EMACS is set to emacsclient, and emacs\nversion is 21.  (And BTW, Debian stable and the current Ubuntu, Edgy\nEft, are still shipping emacs21.  So are a number of current major\ndistro's.  So if you think the vast majority of users are using\nemacs22, you are either on drugs, and have a very skewed view of what\nare \"normal\" emacs users.)\n\nThere is a reason why git-mergetool currently hardcodes the use of\n\"emacs\", instead of just blindly using the value of $EDITOR or\n$VISUAL.  So what you're doing here in your patch is completely\nbusted.  If you insist on using emacs_candidate, we need to run emacs\n--version and parse the output, and only using the value of EMACS or\nVISUAL if the major version number of emacs is at least 22.\n\n(It would probably be a good idea to do this once and cache the\nresult, so we don't have to repeatedly for each file that git\nmergetool needs to process.)\n\n> -    if echo \"${VISUAL:-$EDITOR}\" | grep 'emacs' > /dev/null 2>&1; then\n> -        merge_tool_candidates=\"$merge_tool_candidates emerge\"\n> -    fi\n> +    case \"${EDITOR:-${VISUAL}}\" in\n> +\t*/emacs*|*/gnuclient*|*/xemacs*)\n> +            merge_tool_candidates=\"$merge_tool_candidates ediff\"\n> +    esac\n\nChanging the default from emerge to ediff is a non-starter, sorry.  If\nyou really want to use ediff, you can set a config parameter to\nexplicitly request it.\n\n\t\t\t\t\t\t- Ted\n"},{"id":"49032","messageId":"853az6vldf.fsf@lola.goethe.zz","threadId":"8140","inReplyTo":"20070729205232.GA10148@thunk.org","subject":"Re: [Untested! proposal] git-mergetool.sh: introduce ediff option","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-29T23:30:20Z","receivedAt":"2007-07-29T23:30:20Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Theodore Tso <tytso@mit.edu> writes:\n\n> On Sun, Jul 29, 2007 at 03:51:34PM +0200, David Kastrup wrote:\n>\n> For the past two decades, I have EDITOR set to emacs, but I am not\n> an ediff fan.  Yes, that's anecdotal evidence, but so are your\n> assertions.\n\nOk.\n\n>> In ediff mode, success or failure of the merge will be discerned by\n>> Emacs either having written or not written the merge buffer; no\n>> attempt of interpreting the exit code is made.\n>\n> Sometimes resolving the merge file results in no changes.  So the fact\n> that ediff is buggy in that it doesn't return an exit code is a real\n> problem.\n\nEdiff starts out with a changed buffer when merging files.\ngit-mergetool can check for modification times (which is done on\nseveral backends), so it can catch whether or not the ediff buffer has\nbeen saved.\n\n> We could possibly work around the problem saving and then checking\n> the modtime --- but only if ediff actually ends up rewriting the\n> file.\n\nSee above.\n\n>> In order to bypass things like desktop files being loaded, emerge\n>> mode now passes the \"-q\" option to Emacs.  This will make it work\n>> in more situations likely to occur, at the price of excluding\n>> possibly harmless user customizations with the rest.\n>\n> But that screws over users who want their customizations, but who\n> don't use the desktop package.  (And I have a news flash for you;\n> the desktop package is *not* include as part of emacs21.  It's not\n> part of Debian's emacs21 package, version 21.4.)  So do not believe\n> your claim that emacs's desktop package is commonly used.\n\nSigh.\n\n$ dpkg -L emacs21-el|grep desktop\n/usr/share/emacs/21.4/lisp/desktop.el\n\n>> +\tediff)\n>> +\t    case \"${EDITOR:-${VISUAL:-emacs}}\" in\n>> +\t\t*/emacs*|*/gnuclient*|*/xemacs*)\n>> +\t\t    emacs_candidate=\"${EDITOR:-${VISUAL:-emacs}}\";;\n>> +\t\t*)\n>> +\t\t    emacs_candidate=emacs;;\n>> +\t    esac\n>> +\t    if base_present ; then\n>> +\t\t${emacs_candidate} --eval \"(ediff-merge-files-with-ancestor (pop command-line-args-left) (pop command-line-args-left) (pop command-line-args-left) nil (pop-command-line-args-left))\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$path\"\n>\n> ... and this will blow up if EMACS is set to emacsclient, and emacs\n> version is 21.\n\nI am currently working on ironing this out.  It is easy to check\nwhether emacsclient supports --eval and revert to emacs in that case.\nUnfortunately, it turns out that the above also blows up with\nemacsclient 22.1 (I hope to get some patches into Emacs so that this\nwill actually work in 22.2).  So I am currently reworking this, and it\nis indeed fragile stuff and quite a nuisance to get right.\n\n> (And BTW, Debian stable and the current Ubuntu, Edgy Eft, are still\n> shipping emacs21.  So are a number of current major distro's.  So if\n> you think the vast majority of users are using emacs22, you are\n> either on drugs, and have a very skewed view of what are \"normal\"\n> emacs users.)\n\nThe current Ubuntu happens to be Feisty Fawn, and it includes\nemacs-snapshot-gtk (among other options) with a workable emacsclient.\nBut I certainly will not ask for including a solution that would not\nproduce the best feasible results for all of emacs21, emacs22, and\nxemacs-21.x.  As I said, the patch was just provided as material for\ndiscussion and does not yet work.\n\n> There is a reason why git-mergetool currently hardcodes the use of\n> \"emacs\", instead of just blindly using the value of $EDITOR or\n> $VISUAL.\n\nWhich is not really nice to XEmacs users, by the way.\n\n> So what you're doing here in your patch is completely busted.  If\n> you insist on using emacs_candidate, we need to run emacs --version\n> and parse the output, and only using the value of EMACS or VISUAL if\n> the major version number of emacs is at least 22.\n\nIt is actually more straightforward to check the exit code of\nemacsclient --eval t >/dev/null 2>&1\nwhich is basically what I do now.  Even if one wanted to parse the\noutput of --version, emacsclient --version would be faster.\n\n> (It would probably be a good idea to do this once and cache the\n> result, so we don't have to repeatedly for each file that git\n> mergetool needs to process.)\n\nMy current version of the patch already does this.  However, the\nstartup/exit behavior is still somewhat broken though marginally\nusable (getting both ediff started and the resulting buffer registered\nas a server buffer without messing up ediff's window setup is the\nchallenge), so I am still ironing stuff out.\n\n>> -    if echo \"${VISUAL:-$EDITOR}\" | grep 'emacs' > /dev/null 2>&1; then\n>> -        merge_tool_candidates=\"$merge_tool_candidates emerge\"\n>> -    fi\n>> +    case \"${EDITOR:-${VISUAL}}\" in\n>> +\t*/emacs*|*/gnuclient*|*/xemacs*)\n>> +            merge_tool_candidates=\"$merge_tool_candidates ediff\"\n>> +    esac\n>\n> Changing the default from emerge to ediff is a non-starter, sorry.\n> If you really want to use ediff, you can set a config parameter to\n> explicitly request it.\n\nHow would you feel about preferring ediff when EDITOR is emacsclient\nor gnuclient, and emerge otherwise?\n\nOf course only once ediff will work satisfactorily with all Emacs and\nXEmacs variants out there.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"50092","messageId":"7vtzrb9847.fsf@assigned-by-dhcp.cox.net","threadId":"8140","inReplyTo":"7vvec4synj.fsf_-_@assigned-by-dhcp.cox.net","subject":"What's in git.git (stable)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-08-07T06:22:32Z","receivedAt":"2007-08-07T06:22:32Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"* The 'maint' branch has these fixes since the last\n  announcement, which are all included in 'master' as well.\n  Because 1.5.3 is just around the corner, I think it is\n  pointless to do 1.5.2.5 from here, though.\n\nChristian Couder (1):\n  rev-list --bisect: fix allocation of \"int*\" instead of \"int\".\n\nJunio C Hamano (1):\n  setup.c:verify_non_filename(): don't die unnecessarily while\n      disambiguating\n\nLinus Torvalds (1):\n  apply: remove directory that becomes empty by renaming the last\n      file away\n\n* The 'master' branch has these since 1.5.3-rc4.\n\nAdam Roben (1):\n  Documentation/git-svn: how to clone a git-svn-created repository\n\nGerrit Pape (1):\n  git-am: initialize variable $resume on startup\n\nJ. Bruce Fields (4):\n  user-manual: update for new default --track behavior\n  user-manual: mention git-gui\n  documentation: use the word \"index\" in the git-add manual page\n  documentation: use the word \"index\" in the git-commit man page\n\nJakub Narebski (1):\n  gitweb: Fix handling of $file_name in feed generation\n\nJohannes Schindelin (1):\n  checkout-index needs a working tree\n\nJunio C Hamano (8):\n  git-completion: add \"git stash\"\n  INSTALL: add warning on docbook-xsl 1.72 and 1.73\n  unpack-trees.c: assume submodules are clean during check-out\n  Fix install-doc-quick target\n  user-manual: mention git stash\n  setup.c:verify_non_filename(): don't die unnecessarily while\n      disambiguating\n  pager: find out pager setting from configuration\n  Fix \"make GZ=1 quick-install-doc\"\n\nJyotirmoy Bhattacharya (1):\n  Fixed git-push manpage\n\nLinus Torvalds (1):\n  apply: remove directory that becomes empty by renaming the last\n      file away\n\nRandal L. Schwartz (1):\n  add \"test-absolute-path\" to .gitignore\n\nShawn O. Pearce (1):\n  Document GIT_SSH environment variable alongside other variables\n\nUwe Kleine-König (1):\n  send-email: teach sanitize_address to do rfc2047 quoting\n"}]}