{"thread":{"id":"4800","subject":"What's in git.git","startedAt":"2006-07-08T00:37:25Z","lastAt":"2006-07-08T21:28:00Z","messageCount":3,"participants":["Junio C Hamano","Johannes Schindelin","Jakub Narebski"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"23398","messageId":"7vlkr5szi2.fsf@assigned-by-dhcp.cox.net","threadId":"4800","inReplyTo":null,"subject":"What's in git.git","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-07-08T00:37:25Z","receivedAt":"2006-07-08T00:37:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Many fixes came in since 1.4.1 was done.  Please see the\nshort-log for what's new in \"master\".\n\nIn the \"next\" branch, these are cooking:\n\n - Early parts of Perly Git by Petr Baudis with help from others\n   are merged to \"next\".  Please report breakages before other\n   Perl scripts are converted to use this.\n\n - \"diff --text\" by Stephan Feder.  I think this one is correct\n   and should be very safe, but bugs happen to \"obvious\" code\n   too, so I have not merged it to \"master\" yet.\n \n - Move git-svn by Eric Wong out of contrib to make it a\n   first-class citizen.\n\n - \"git-merge-tree\" improvements by Linus.  I may want to update\n   this to use our diff routines, but probably after OLS.\n\nIn \"pu\", there are a few more:\n\n - An updated result minimization code in merge-base.  I think\n   this is correct and is not too expensive.  I'd like to run a\n   few more test on this and merge it to \"next\".\n\n - Updated upload-pack to avoid letting the downloader to\n   traverse commits from a branch all the way down to root in\n   vain, when that root is knot known to upload-pack.  This\n   needs another round of test with something like Linus's 2.6\n   repository and MIPS repository, which costs me quite a lot of\n   time so I am postponing it right now.\n\n - Built-in git-prune by Linus.  I have read the code and did\n   not spot problems, and it indeed is a lot faster.  But this\n   is git-prune, so I am playing it a bit more cautiously than I\n   usually do.\n\n - GIT_TRACE by Matthias Lederhofer.  What it lets you do is\n   interesting (although I personally do not foresee myself\n   using it), and I am in favor of its inclusion.  The issue\n   that the mechanism does not let you trace some commands\n   (scripts) raised on the list has stalled this topic branch.\n   I'd either want people to agree that it is not a problem, or\n   if they feel it is a problem, have a fix for that, before\n   merging this to \"next\".\n\n - Auto configuration by Pasky and Jakub.  This deserves a fresh\n   paragraph.\n\nThe first patch to use autoconf to build ./configure by Jakub\nNarebski is in \"pu\".  I am not against an autoconfiguration\nmechanism to maintain config.mak.gen mechanically as an _option_,\nand if we are going to have a ./configure script, it would be\nbetter to avoid reinventing the tests autoconf people worked for\na long time to make robust and portable.  \n\nI hope further patches to this series will be added soon to\nautodetect the following in our Makefile (from \"pu\"):\n\n        NO_D_INO_IN_DIRENT\n        NO_D_TYPE_IN_DIRENT\n        NO_STRCASESTR\n        NO_STRLCPY\n        NO_SETENV\n        USE_PIC\n        NEEDS_SSL_WITH_CRYPTO\n        NEEDS_LIBICONV\n        NEEDS_SOCKET\n        WITH_OWN_SUBPROCESS_PY\n        NO_IPV6\n        NO_SOCKADDR_STORAGE\n        NO_ICONV\n\nThese are not something you can change without replacing libc\n(or installed Python) wholesale, so autodetection would be\nalways correct.\n\nAlso the following would be nice if autodetection worked for\nmost of the users with ./configure command line override:\n\n\tCC\n        AR\n\tTAR\n        INSTALL\n\tSHELL_PATH\n        PERL_PATH\n        PYTHON_PATH\n\tBASIC_CFLAGS \tmostly for -I include paths\n        BASIC_LDFLAGS\tmostly for -L library paths\n\tALL_LDFLAGS\n\tNO_OPENSSL\n        MOZILLA_SHA1\n        PPC_SHA1\n        ARM_SHA1\n        NO_CURL\n        NO_EXPAT\n        CURLDIR\n        OPENSSLDIR\n        ICONVDIR\n        EXPATDIR (we do not have one, but I think it should be there\n\t\t  to allow -lexpat installed elsewhere just like\n                  we have CURLDIR and OPENSSLDIR)\n\nNote that I listed NO_OPENSSL, NO_CURL, and NO_EXPAT here not\nwith the first category, because you may not want to build git\nwith them even when you do have these libraries.\n\nThe directories our stuff will go is builder's policy, so I do\nnot think automating it is particularly useful, but I am not\nopposed if ./configure allowed people to say --prefix=blah.\n\nBecause the autodetection of non-policy part is what I primarily\nwant from ./configure, people who run ./configure without giving\nparticular --prefix and friends to it should not be burned by\nthe choice ./configure makes by default.  I presume they can\nhave their own customized prefix and friends in config.mak which\nwill be included after config.mak.gen so hopefully that is a\nnon-issue.\n\n----------------------------------------------------------------\n\n* The 'master' branch has these since the last announcement.\n\n   Dennis Stosberg:\n      gitweb: Declare global variables with \"our\"\n\n   Eric Wong:\n      Add git-instaweb, instantly browse the working repo with gitweb\n      instaweb: fix unportable ';' usage in sed\n      t8001-annotate: fix a bash-ism in this test\n      git-svn: avoid fetching files outside of the URL we're tracking\n      builtin-log: respect diff configuration options\n\n   Jakub Narebski:\n      send-email: format 2822 datestring ourselves.\n\n   Joachim B Haga:\n      Make zlib compression level configurable, and change default.\n      core.compression documentation formatting fix.\n\n   Johannes Schindelin:\n      refactor merge_bases() as preparation to libify merge-base\n      move get_merge_bases() to core lib.\n      Makefile: replace ugly and unportable sed invocation\n      Make git-fmt-merge-msg a builtin\n\n   Junio C Hamano:\n      Makefile: add framework to verify and bench sha1 implementations.\n      test-sha1: test hashing large buffer\n      t4013: add tests for diff/log family output options.\n      t4013: add more tests around -c and --cc\n      Fix some more diff options changes.\n      t4013 test updates for new output code.\n      combine-diff.c: type sanity.\n      format-patch: fix diff format option implementation\n      t4013: add format-patch tests.\n      t4013: note improvements brought by the new output code.\n      gitweb: optimize per-file history generation\n      t4013: add \"diff\" UI program tests.\n      builtin-diff: turn recursive on when defaulting to --patch format.\n      commit.c: do not redefine UNINTERESTING bit.\n      Makefile: tighten git-http-{fetch,push} dependencies\n      get_merge_bases: clean up even when there is no common commit.\n      revert clear-commit-marks for now.\n      boolean: accept yes and no as well\n      send-email: do not barf when Term::ReadLine does not like your terminal\n      t6200: fmt-merge-msg test.\n      git-grep: fix parsing of pathspec separator '--'\n      git-grep: fix exit code when we use external grep.\n      git-grep: use a bit more specific error messages.\n      Re-fix clear_commit_marks().\n      git-reset: complain and exit upon seeing an unknown parameter.\n      builtin-rev-parse.c: constness tightening\n      show-branch: match documentation and usage\n      rev-parse documentation: talk about range notation.\n\n   Linus Torvalds:\n      revision.c: fix \"dense\" under --remove-empty\n      Improve git-peek-remote\n\n   Luben Tuikov:\n      gitweb: Enable tree (directory) history display\n\n   Rene Scharfe:\n      Add get_merge_bases_clean()\n      Add '...' operator for revisions\n      Make clear_commit_marks() clean harder\n      Fold get_merge_bases_clean() into get_merge_bases()\n      rev-list: free commit_list in ... handler\n\n   Robin Rosenberg:\n      Empty author may be presented by svn as an empty string or a null value.\n\n   Ryan Anderson:\n      annotate: Support annotation of files on other revisions.\n      annotate: Correct most merge following to annotate correctly.\n\n   Santi Béjar:\n      Teach rev-parse the ... syntax.\n\n   Stephan Feder:\n      Do not drop data from '\\0' until eol in patch output\n\n   Timo Hirvonen:\n      Merge with_raw, with_stat and summary variables to output_format\n      Make --raw option available for all diff commands\n      Set default diff output format after parsing command line\n      DIFF_FORMAT_RAW is not default anymore\n      Add msg_sep to diff_options\n      Don't xcalloc() struct diffstat_t\n      whatchanged: Default to DIFF_FORMAT_RAW\n      Print empty line between raw, stat, summary and patch\n      diff-tree: Use ---\\n as a message separator\n      log --raw: Don't descend into subdirectories by default\n      Fix diff-tree -s\n\n   Unknown:\n      A better-scheduled PPC SHA-1 implementation.\n\n   Ville Skyttä:\n      Fix print-log and diff compatibility with recent vc versions\n\n\n* The 'next' branch, in addition, has these.\n\n   Dennis Stosberg:\n      \"test\" in Solaris' /bin/sh does not support -e\n      Makefile fix for Solaris\n      Add possibility to pass CFLAGS and LDFLAGS specific to the perl subdir\n\n   Eric Wong:\n      git-svn: migrate out of contrib\n      git-svn: migrate out of contrib (follow-up)\n      diff.c: respect diff.renames config option\n\n   Jakub Narebski:\n      Allow INSTALL, bindir, mandir to be set in main Makefile\n      Rename man1 and man7 variables to man1dir and man7dir\n\n   Johannes Schindelin:\n      Git.xs: older perl do not know const char *\n      Makefile: export NO_SVN_TESTS\n\n   Junio C Hamano:\n      Perl interface: add build-time configuration to allow building with -fPIC\n      Perl interface: make testsuite work again.\n      perl: fix make clean\n      Git.pm: tentative fix to test the freshly built Git.pm\n      Perly Git: arrange include path settings properly.\n      Makefile: Set USE_PIC on x86-64\n      Perly git: work around buggy make implementations.\n      Git.pm: clean generated files.\n      Perly Git: make sure we do test the freshly built one.\n      INSTALL: a tip for running after building but without installing.\n      git-grep: boolean expression on pattern matching.\n      mailinfo: assume input is latin-1 on the header as we do for the body\n      diffcore-rename: try matching up renames without populating filespec first.\n      diff.c: --no-color to defeat diff.color configuration.\n      Update diff-options and config documentation.\n      git log -p --merge [[--] paths...]\n\n   Linus Torvalds:\n      xdiff: generate \"anti-diffs\" aka what is common to two files\n      Prepare \"git-merge-tree\" for future work\n      Improved three-way blob merging code\n\n   Pavel Roskin:\n      Fix probing for already installed Error.pm\n      Delete manuals if compiling without docs\n      Make perl interface a separate package\n\n   Petr Baudis:\n      Introduce Git.pm (v4)\n      Git.pm: Implement Git::exec_path()\n      Git.pm: Call external commands using execv_git_cmd()\n      Git.pm: Implement Git::version()\n      Add Error.pm to the distribution\n      Git.pm: Better error handling\n      Git.pm: Handle failed commands' output\n      Git.pm: Enhance the command_pipe() mechanism\n      Git.pm: Implement options for the command interface\n      Git.pm: Add support for subdirectories inside of working copies\n      Convert git-mv to use Git.pm\n      Git.pm: assorted build related fixes.\n      Git.pm: Try to support ActiveState output pipe\n      Git.pm: Swap hash_object() parameters\n      Git.pm: Fix Git->repository(\"/somewhere/totally/elsewhere\")\n      Git.pm: Support for perl/ being built by a different compiler\n      Git.pm: Remove PerlIO usage from Git.xs\n      Git.pm: Avoid ppport.h\n      Git.pm: Don't #define around die\n      Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging\n      Git.pm: Add config() method\n      Convert git-send-email to use Git.pm\n      Git.pm: Introduce ident() and ident_person() methods\n\n   Stephan Feder:\n      Teach --text option to diff\n      Teach diff -a as shorthand for --text\n      Add -a and --text to common diff options help\n      diff-options: Explain --text and -a\n\n   Timo Hirvonen:\n      --name-only, --name-status, --check and -s are mutually exclusive\n\n\n* The 'pu' branch, in addition, has these.\n\n   A Large Angry SCM:\n      Additional merge-base tests (revised)\n\n   Jakub Narebski:\n      autoconf: Use autoconf to write installation directories to config.mak.autogen\n\n   Junio C Hamano:\n      merge-base: update the clean-up postprocessing\n      upload-pack: use object pointer not copy of sha1 to keep track of has/needs.\n      upload-pack: lift MAX_NEEDS and MAX_HAS limitation\n      upload-pack: minor clean-up in multi-ack logic\n      upload-pack: stop the other side when they have more roots than we do.\n      Work around sed and make interactions on the backslash at the end of line.\n\n   Linus Torvalds:\n      builtin \"git prune\"\n\n   Matthias Lederhofer:\n      GIT_TRACE: show which built-in/external commands are executed\n\n   Peter Baumann:\n      git-cvsexportcommit can't handle merge commits correctly\n\n   Petr Baudis:\n      Make it possible to set up libgit directly (instead of from the environment)\n      Git.pm: Introduce fast get_object() method\n      Convert git-annotate to use Git.pm\n\n   Timo Hirvonen:\n      Remove awkward compatibility warts\n      GIT_TRACE: fix a mixed declarations and code warning\n"},{"id":"23402","messageId":"Pine.LNX.4.63.0607080414210.29667@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4800","inReplyTo":"7vlkr5szi2.fsf@assigned-by-dhcp.cox.net","subject":"Re: What's in git.git","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-07-08T02:28:42Z","receivedAt":"2006-07-08T02:28:42Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 7 Jul 2006, Junio C Hamano wrote:\n\n>  - Early parts of Perly Git by Petr Baudis with help from others\n>    are merged to \"next\".  Please report breakages before other\n>    Perl scripts are converted to use this.\n\nI saw many problems on my machines with this, just as I expected. Please \nplay it _really_ safe. I hated to be forced to rewrite git-fmt-merge-msg \nin C, but I just could not use 'next' without that. I would hate it even \nmore to rewrite git-mv in C just to make the tests happy (they are not on \nmy iBook right now).\n\n>  - GIT_TRACE by Matthias Lederhofer.  What it lets you do is\n>    interesting (although I personally do not foresee myself\n>    using it), and I am in favor of its inclusion.  The issue\n>    that the mechanism does not let you trace some commands\n>    (scripts) raised on the list has stalled this topic branch.\n>    I'd either want people to agree that it is not a problem, or\n>    if they feel it is a problem, have a fix for that, before\n>    merging this to \"next\".\n\nYou probably allude to my comments, which were meant more as a hint to go \ntowards C, instead of scripts. There is a lot to be said about C, but the \nfact is: if you have most of the core of git in C (if not all of it), you \nhave less problems (especially when integrating over _all_ platforms and \nsetups).\n\nAs it is, I am all for inclusion of GIT_TRACE support. If need be, \neverybody can add GIT_TRACE support to the script she is debugging. And if \nshe's nice, she can send a patch to the list, too.\n\n>  - Auto configuration by Pasky and Jakub.  This deserves a fresh\n>    paragraph.\n\nI can see why some may want autoconf (or a clone of MPlayer's configure) \nin git. But the fact is: on many platforms, the Makefile works out of the \nbox. Especially on cygwin, where _any_ shell script -- and autoconf \ngenerated scripts in particular -- are slower than a dog's poo, it is \n_soooo_ much better to be able to just say \"make\".\n\nPlease, please, _please_ keep autoconfiguration _strictly_ opt-in.\n\n>    Linus Torvalds:\n>       builtin \"git prune\"\n\nFWIW, I read the code, too, and I agree it is ready for 'next'. After my \nfirst read, I was curious why the parameter \"object_array *p\" was needed \nfor all the process_* functions. It turned out that add_object() needs \nthis. Just in case anybody else wonders.\n\nCiao,\nDscho\n"},{"id":"23441","messageId":"e8p80a$jk3$1@sea.gmane.org","threadId":"4800","inReplyTo":"7vlkr5szi2.fsf@assigned-by-dhcp.cox.net","subject":"Re: What's in git.git","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-07-08T21:28:00Z","receivedAt":"2006-07-08T21:28:00Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> I hope further patches to this series will be added soon to\n> autodetect the following in our Makefile (from \"pu\"):\n\nI have just (re)sent series of patches adding autodetection\nof building options via autoconf generated configure.\n \n>         NO_D_INO_IN_DIRENT\n>         NO_D_TYPE_IN_DIRENT\n>         NO_STRCASESTR\n>         NO_STRLCPY\n>         NO_SETENV\n>         NO_SOCKADDR_STORAGE\nDone.\n\n>         USE_PIC\nTo be written by somebody better versed in autoconf.\n\n>         NEEDS_SSL_WITH_CRYPTO\n>         NEEDS_LIBICONV\n>         NEEDS_SOCKET\nNeeds checking.\n\n>         WITH_OWN_SUBPROCESS_PY\n>         NO_IPV6\n>         NO_ICONV\nNeeds explanation, and probably custom test.\n\n> These are not something you can change without replacing libc\n> (or installed Python) wholesale, so autodetection would be\n> always correct.\n> \n> Also the following would be nice if autodetection worked for\n> most of the users with ./configure command line override:\n> \n>       CC\n>       AR\n>       TAR\nDone, I think\n\n>       INSTALL\nNeeds lightweight install-sh script. If I remember correctly someone \nprovided such script because of lack of install on some exotic \narchitecture. Easily provided.\n\n>       SHELL_PATH\n>       PERL_PATH\n>       PYTHON_PATH\nTo be done using --with-shell=PATH, --with-perl=PATH, \n--with-python=PATH, easily.\n\n>       BASIC_CFLAGS    mostly for -I include paths\n>       BASIC_LDFLAGS   mostly for -L library paths\n>       ALL_LDFLAGS\nI don't know how to do this (for now), probably quite easy.\n\n>       NO_OPENSSL\n>       MOZILLA_SHA1\n>       PPC_SHA1\n>       ARM_SHA1\n>       NO_CURL\n>       NO_EXPAT\n>       CURLDIR\n>       OPENSSLDIR\n>       ICONVDIR\n>       EXPATDIR (we do not have one, but I think it should be there\n>                 to allow -lexpat installed elsewhere just like\n>                 we have CURLDIR and OPENSSLDIR)\nShould be done in next series of patches... provided I'd have enough \nfree time for this... \n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"}]}