{"thread":{"id":"28883","subject":"[fyi] patches used by git distributors","startedAt":"2011-11-08T09:02:51Z","lastAt":"2012-03-08T12:21:55Z","messageCount":6,"participants":["Jonathan Nieder","Junio C Hamano","Erik Faye-Lund","Todd Zullinger"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"179129","messageId":"20111108090251.GB17954@elie.hsd1.il.comcast.net","threadId":"28883","inReplyTo":null,"subject":"[fyi] patches used by git distributors","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-11-08T09:02:51Z","receivedAt":"2011-11-08T09:02:51Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nIn an ideal world, each patch applied by downstream distributors would\nfall into one of two categories: (a) adapting the package to some\nesoteric distro-specific requirement (i.e., special-interest patches)\nor (b) in the process of being generalized and reviewed for eventual\napplication upstream, so everyone can benefit from it.  Unfortunately\nthat takes time.  I should do better --- sorry about that.\n\nAs an experiment, here's a quick summary of the patches being used\nin Debian, for people curious about that and for people interested in\ngrabbing useful patches to polish and not knowing where to start.\n\n(Links point to relevant discussion, not necessarily the patch used):\n\nFrédéric Brière (1):\n      gitk: Skip over AUTHOR/COMMIT_DATE when searching all fields [1]\n\nGerrit Pape (1):\n      bug#506445: hooks/post-receive-email: set encoding to utf-8 [2]\n\nJonathan Nieder (12):\n      remove shebang line from shell libraries [3]\n      pre-rebase hook: capture documentation in a <<here document [4]\n      gitk: use symbolic font names \"sans\" and \"monospace\"\n      transport: expose git_tcp_connect and friends in new tcp.h [5]\n      daemon: make host resolution into a separate function [5]\n      daemon: move locate_host to tcp.c [5]\n      tcp: unify ipv4 and ipv6 code paths [5]\n      daemon: check for errors retrieving IP address [5]\n      tcp: make dns_resolve return an error code [5]\n      transport: optionally honor DNS SRV records [5]\n      srv: make errors less quiet [5]\n      Makefile: add a knob to turn off hardlinks within same directory [6]\n\nThe patches listed above are on the candidate+patches branch of [7].\nQuestions and improvements can go to git@packages.debian.org.\n\nA few other packaging projects:\n\n - git://pkgs.fedoraproject.org/git.git master --- 3 patches (using\n   SERVER_NAME for home link, reviving vc-git.el, compatibility with\n   newer cvsps)\n - http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/git/files/ ---\n   1 patch (capping individual reads and writes at INT_MAX chars)\n - https://build.opensuse.org/package/files?package=git&project=devel%3Atools%3Ascm\n   --- 4 patches (a python build fix, making gitweb::prevent_xss\n   default to true, turning off hardlinks for builtins at installation\n   time, protecting COMP_WORDBREAKS from mangling in the completion\n   script)\n - http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-vcs/git/files/\n   --- 1 patch (a NO_CVS knob for the makefile).  Very nice.\n - http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/scmgit-base/patches/\n   --- 3 patches (putting CFLAGS at the end of ALL_CFLAGS so it can\n   override BASIC_CFLAGS, setting INSTALLDIRS=vendor in perl makefile,\n   improving tk support on Darwin 8)\n - http://www.openbsd.org/cgi-bin/cvsweb/ports/devel/git/patches/ ---\n   8 patches (updating OpenBSD makefile defaults, using raw perlio in\n   gitweb blob view, removing \"set -e\" in t9117, passing --text [well,\n   -a] to grep in t9200, avoiding nonportable regex \\+ in t9400)\n - ftp://ftp.cygwin.org/pub/cygwin/release/git/git-1.7.5.1-1-src.tar.bz2\n   --- 3 patches (tcl 8.4.1 support, updating Cygwin makefile defaults,\n   case-insensitive path comparison in makefile, special Windows-specific\n   wish script preamble)\n\n[1] http://thread.gmane.org/gmane.comp.version-control.git/142160\n[2] http://thread.gmane.org/gmane.comp.version-control.git/181737\n[3] http://bugs.debian.org/368792\n[4] http://thread.gmane.org/gmane.comp.version-control.git/150737\n[5] http://thread.gmane.org/gmane.comp.version-control.git/175106\n[6] http://thread.gmane.org/gmane.comp.version-control.git/183361\n[7] http://smarden.org/git/git.git\n    gitweb: http://repo.or.cz/w/git/debian.org\n"},{"id":"179156","messageId":"7vmxc6xs73.fsf@alter.siamese.dyndns.org","threadId":"28883","inReplyTo":"20111108090251.GB17954@elie.hsd1.il.comcast.net","subject":"Re: [fyi] patches used by git distributors","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-11-08T20:41:36Z","receivedAt":"2011-11-08T20:41:36Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\nNote that I didn't check any of the patches that are not linked in\nreferences section.\n\n\n> Gerrit Pape (1):\n>       bug#506445: hooks/post-receive-email: set encoding to utf-8 [2]\n>\n> Jonathan Nieder (12):\n>       remove shebang line from shell libraries [3]\n\nIf this is about git-sh-setup, I think it is probably a good idea to\nupstream it.\n\n>       pre-rebase hook: capture documentation in a <<here document [4]\n\nI do not mind this but if you are to do so you should remove the \"exit 0\"\nbefore that block.\n\n>       transport: expose git_tcp_connect and friends in new tcp.h [5]\n>       daemon: make host resolution into a separate function [5]\n>       daemon: move locate_host to tcp.c [5]\n>       tcp: unify ipv4 and ipv6 code paths [5]\n>       daemon: check for errors retrieving IP address [5]\n>       tcp: make dns_resolve return an error code [5]\n>       transport: optionally honor DNS SRV records [5]\n>       srv: make errors less quiet [5]\n\nIt seems that this received almost no interest from anybody. I suspect\nthat the reason was because the cover letter was poorly written that\npeople did not realize the need for it.\n\n>       Makefile: add a knob to turn off hardlinks within same directory [6]\n\nI think the real fix for this issue should be either made in btrfs or even\nbetter \"tar x\", instead of forcing everybody who consumes a tarball to use\nsymlink or copies. That is, work-around should be made when a _particular_\nrecipient wants to extract a tarball that stores hardlinks to the same\ninode than the filesystem the recipient _happens_ to be trying to extract\nit on, not before.\n"},{"id":"179157","messageId":"7vfwhyxs06.fsf@alter.siamese.dyndns.org","threadId":"28883","inReplyTo":"7vmxc6xs73.fsf@alter.siamese.dyndns.org","subject":"Re: [fyi] patches used by git distributors","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-11-08T20:45:45Z","receivedAt":"2011-11-08T20:45:45Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n-ECANNOTPARSE, sorry.\n\n... That is, work-around should be made when a _particular_\nrecipient wants to extract a tarball that stores more hardlinks to the same\ninode than the filesystem the recipient _happens_ to be trying to extract\nit on supports.\n"},{"id":"179273","messageId":"CABPQNSbUTrckA+ZEmY6ge8C8bvOGbNXb3E+8VtH9xjc3GLpAug@mail.gmail.com","threadId":"28883","inReplyTo":"20111108090251.GB17954@elie.hsd1.il.comcast.net","subject":"Re: [fyi] patches used by git distributors","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2011-11-10T12:07:10Z","receivedAt":"2011-11-10T12:07:10Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Tue, Nov 8, 2011 at 10:02 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:\n> Hi,\n>\n> In an ideal world, each patch applied by downstream distributors would\n> fall into one of two categories: (a) adapting the package to some\n> esoteric distro-specific requirement (i.e., special-interest patches)\n> or (b) in the process of being generalized and reviewed for eventual\n> application upstream, so everyone can benefit from it.  Unfortunately\n> that takes time.  I should do better --- sorry about that.\n>\n> As an experiment, here's a quick summary of the patches being used\n> in Debian, for people curious about that and for people interested in\n> grabbing useful patches to polish and not knowing where to start.\n>\n> (Links point to relevant discussion, not necessarily the patch used):\n>\n> Frédéric Brière (1):\n>      gitk: Skip over AUTHOR/COMMIT_DATE when searching all fields [1]\n>\n> Gerrit Pape (1):\n>      bug#506445: hooks/post-receive-email: set encoding to utf-8 [2]\n>\n> Jonathan Nieder (12):\n>      remove shebang line from shell libraries [3]\n>      pre-rebase hook: capture documentation in a <<here document [4]\n>      gitk: use symbolic font names \"sans\" and \"monospace\"\n>      transport: expose git_tcp_connect and friends in new tcp.h [5]\n>      daemon: make host resolution into a separate function [5]\n>      daemon: move locate_host to tcp.c [5]\n>      tcp: unify ipv4 and ipv6 code paths [5]\n>      daemon: check for errors retrieving IP address [5]\n>      tcp: make dns_resolve return an error code [5]\n>      transport: optionally honor DNS SRV records [5]\n>      srv: make errors less quiet [5]\n>      Makefile: add a knob to turn off hardlinks within same directory [6]\n>\n> The patches listed above are on the candidate+patches branch of [7].\n> Questions and improvements can go to git@packages.debian.org.\n>\n> A few other packaging projects:\n>\n>  - git://pkgs.fedoraproject.org/git.git master --- 3 patches (using\n>   SERVER_NAME for home link, reviving vc-git.el, compatibility with\n>   newer cvsps)\n>  - http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/git/files/ ---\n>   1 patch (capping individual reads and writes at INT_MAX chars)\n>  - https://build.opensuse.org/package/files?package=git&project=devel%3Atools%3Ascm\n>   --- 4 patches (a python build fix, making gitweb::prevent_xss\n>   default to true, turning off hardlinks for builtins at installation\n>   time, protecting COMP_WORDBREAKS from mangling in the completion\n>   script)\n>  - http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-vcs/git/files/\n>   --- 1 patch (a NO_CVS knob for the makefile).  Very nice.\n>  - http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/scmgit-base/patches/\n>   --- 3 patches (putting CFLAGS at the end of ALL_CFLAGS so it can\n>   override BASIC_CFLAGS, setting INSTALLDIRS=vendor in perl makefile,\n>   improving tk support on Darwin 8)\n>  - http://www.openbsd.org/cgi-bin/cvsweb/ports/devel/git/patches/ ---\n>   8 patches (updating OpenBSD makefile defaults, using raw perlio in\n>   gitweb blob view, removing \"set -e\" in t9117, passing --text [well,\n>   -a] to grep in t9200, avoiding nonportable regex \\+ in t9400)\n>  - ftp://ftp.cygwin.org/pub/cygwin/release/git/git-1.7.5.1-1-src.tar.bz2\n>   --- 3 patches (tcl 8.4.1 support, updating Cygwin makefile defaults,\n>   case-insensitive path comparison in makefile, special Windows-specific\n>   wish script preamble)\n>\n\nHere's what we have for msysGit (the commits themselves can be found\nin git://github.com/msysgit/git.git devel):\n\n$ git log --no-merges --first-parent --oneline 319312f..origin/devel\n9e47e31 Unicode console: fix font warning on Vista and Win7\n778774d MSVC: require pton and ntop emulation\na49c818 MSVC: fix winansi.c compile errors\n9ca8039 MSVC: fix poll-related macro redefines\n0a6d148 MSVC: Remove unneeded header stubs\n18f5b9e Compile fix for MSVC: Include <io.h>\nfd6f6aa Compile fix for MSVC: Do not include sys/resources.h\nae69aaf Handle the branch.<name>.rebase value 'interactive'\n5d1168b Teach 'git pull' to handle --rebase=interactive\n5d6f1d9 Windows: define S_ISUID properly\n5084033 Fixed wrong path delimiter in exe finding\n77a30da gitweb (SyntaxHighlighter): interpret #l<line-number>\n4654bdd Only switch on the line number toggle when highlighting is activated\n3efcd98 Gitweb: add support for Alex Gorbatchev's SyntaxHighlighter in\nJavascript\n1d9ac66 MinGW: disable CRT command line globbing\ne0f2492 Win32: move main macro to a function\n8258c82 Win32: fix potential multi-threading issue\nc45b052 Win32 dirent: improve dirent implementation\nab7ab7a Win32 dirent: clarify #include directives\n9d46513 Win32 dirent: change FILENAME_MAX to MAX_PATH\n18cf321 Win32 dirent: remove unused dirent.d_reclen member\n2741409 Win32 dirent: remove unused dirent.d_ino member\na27af5c Revert \"MinGW: Add missing file mode bit defines\"\n3e4b790 submodule: Fix t7400, t7405, t7406 for msysGit\nf72cc9a t5407: Fix line-ending dependency in post-rewrite.args\n77de716 submodule: Use cat instead of echo to avoid DOS line-endings\nfece0cb t3102: Windows filesystems may not use a literal asterisk in filenames.\nd3abd84 Disable test on MinGW that challenges its bash quoting\n3f65607 MinGW: Skip test redirecting to fd 4\n2e1f250 mingw: do not hide bare repositories\n8089c85c Git.pm: Use stream-like writing in cat_blob()\nd3d677e Amend \"git grep -O -i: if the pager is 'less', pass the '-i' option\"\ned7b275 git grep -O -i: if the pager is 'less', pass the '-i' option\n30d3f9e Handle new t1501 test case properly with MinGW\n64f7bec Do not compile compat/**/*.c with -Wold-style-definition\n68acf50 Fix old-style function declaration\naa1c11f Make CFLAGS more strict\nc592e94 grep -I: do not bother to read known-binary files\n352f3d0 Let deny.currentBranch=updateInstead ignore submodules\n5cf00b3 add -e: ignore dirty submodules\nbf239f8 Handle http.* config variables pointing to files gracefully on Windows\n621a958 Gitweb: make line number toggling work for Firefox and Safari\nff19df4 gitweb: Allow line number toggling with Javascript\nfeab003 Give commit message reencoding for output on MinGW a chance\n6f86c3e Warn if the Windows console font doesn't support Unicode\nbfcdc94 Detect console streams more reliably on Windows\n9b505ab Support Unicode console output on Windows\ne3356ac Enable color output in Windows cmd.exe\n3bef266 Fix another invocation of git from gitk with an overly long command-line\nd0a4bbe git gui: set GIT_ASKPASS=git-gui--askpass if not set yet\n7602e52 Make mingw_offset_1st_component() behave consistently for all paths.\n1c072a6 config.c: trivial fix for compile-time warning\n1f3a4f8 Allow using UNC path for git repository\n3d08379 work around misdetection of stdin attached to a tty\nfef92f8 git am: ignore dirty submodules\nd23ce6f t7602: cope with CR/LF\n3649391 Add a Windows-specific fallback to getenv(\"HOME\");\nede54b1 send-email: handle Windows paths for display just like we do\nfor processing\n32eefc4 send-email: accept absolute path even on Windows\n6274596 Add a few more values for receive.denyCurrentBranch\n2afff36 Work around funny CR issue\nb81e593 mingw: add tests for the hidden attribute on the git directory\nf9445e4 Work around the command line limit on Windows\n59e0e60 git-gui: provide question helper for retry fallback on Windows\n9e89381 Revert \"git-gui: set GIT_DIR and GIT_WORK_TREE after setup\"\n40e6ef7 criss cross rename failure workaround\nd24ec01 When initializing .git/, record the current setting of core.hideDotFiles\nc40046b core.hidedotfiles: hide '.git' dir by default\n73afc46 MinGW: Add missing file mode bit defines\n\nSome of these might be useful for upstream as well...\n"},{"id":"179285","messageId":"20111110161248.GE28719@inocybe.localdomain","threadId":"28883","inReplyTo":"20111108090251.GB17954@elie.hsd1.il.comcast.net","subject":"Re: [fyi] patches used by git distributors","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2011-11-10T16:12:48Z","receivedAt":"2011-11-10T16:12:48Z","isPatch":false,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"Hi Jonathan,\n\nThanks for putting this together.\n\nJonathan Nieder wrote:\n> In an ideal world, each patch applied by downstream distributors would\n> fall into one of two categories: (a) adapting the package to some\n> esoteric distro-specific requirement (i.e., special-interest patches)\n> or (b) in the process of being generalized and reviewed for eventual\n> application upstream, so everyone can benefit from it.  Unfortunately\n> that takes time.  I should do better --- sorry about that.\n\n> A few other packaging projects:\n>\n>  - git://pkgs.fedoraproject.org/git.git master --- 3 patches (using\n>    SERVER_NAME for home link, reviving vc-git.el, compatibility with\n>    newer cvsps)\n\nTo review the patches we have in Fedora/EPEL:\n\n- git-1.5-gitweb-home-link.patch¹\n\nThis predates my involvement in git packaging.  The default for\n++GITWEB_HOME_LINK_STR++ is projects.  The patch just uses\ngit://$SERVER_NAME if SERVER_NAME is available, falling back to\nprojects if it is not.\n\nI'm not sure exactly why that's an improvement over using projects, to\nbe honest.  It's only a text string and it links to the gitweb home,\nnot to the contents of the string, so whether it reads projects or\ngit://$SERVER_NAME it takes the user to the same place.  Definitely\ndoesn't seem like something we'd want to push into gitweb and I'm\nwondering why we even want to carry it in Fedora/EPEL at this point in\nthe morning. :)\n\n- git-1.7-el5-emacs-support.patch²\n\nThis is only applied to builds for EL-5, where emacs is too old for\nthe current emacs git support.  From the commit message:\n\n    This is the vc-git.el from 1.6.4.1, the last version to include\n    it.  Most uses will be better served by the vc-git.el which is\n    provided by emacs >= 22.2, but on EL-5 we don't have the luxury of\n    a modern emacs.\n\nBasically, to not break emacs support for folks who were using\ngit-1.5.x from EPEL, we had to provide something to allow us to push\ngit-1.7.x.  It seems there are relatively few emacs-git users running\nEL-5, as getting testers for this was difficult.  At the same time,\nwe've gotten 0 bug reports.  So it either works about as well as it\ndid with git-1.5.x or no one uses it to notice that it doesn't work.\n\n- git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch³\n\nThis one became necessary when Fedora moved to cvsps 2.2b1 and git\ncvsimport got noisy⁴.  As cvsps is pretty much dead upstream, it didn't\nseem like this patch was worthy of inclusion in git.\n\nIf any of these seem like candidates for inclusion, I'm happy to\nproperly submit them.\n\n¹ http://pkgs.fedoraproject.org/gitweb/?p=git.git;a=blob;f=git-1.5-gitweb-home-link.patch;hb=HEAD\n² http://pkgs.fedoraproject.org/gitweb/?p=git.git;a=blob;f=git-1.7-el5-emacs-support.patch;hb=HEAD\n³ http://pkgs.fedoraproject.org/gitweb/?p=git.git;a=blob;f=git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch;hb=HEAD\n⁴ https://bugzilla.redhat.com/490602\n\n-- \nTodd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDope will get you through times of no money better than money will get\nyou through times of no dope.\n    -- Freewheelin' Franklin\n\n"},{"id":"186431","messageId":"20120308122105.GA1562@burratino","threadId":"28883","inReplyTo":"7vmxc6xs73.fsf@alter.siamese.dyndns.org","subject":"[PATCH] pre-rebase hook: capture documentation in a <<here document","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2012-03-08T12:21:55Z","receivedAt":"2012-03-08T12:21:55Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Without this change, the sample hook does not pass a syntax check\n(sh -n):\n\n  $ sh -n hooks--pre-rebase.sample \n  hooks--pre-rebase.sample: line 101: syntax error near unexpected token `('\n  hooks--pre-rebase.sample: line 101: `   merged into it again (either directly or indirectly).'\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\nImproved-by: Junio C Hamano <gitster@pobox.com>\n---\nJunio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n\n>>       pre-rebase hook: capture documentation in a <<here document [4]\n>\n> I do not mind this but if you are to do so you should remove the \"exit 0\"\n> before that block.\n\nDone. ;)\n\nThanks, and sorry for the slow reply.\n\nJonathan\n\n templates/hooks--pre-rebase.sample |    6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/templates/hooks--pre-rebase.sample b/templates/hooks--pre-rebase.sample\nindex 053f1111..b7f81c19 100755\n--- a/templates/hooks--pre-rebase.sample\n+++ b/templates/hooks--pre-rebase.sample\n@@ -88,9 +88,7 @@ else\n \texit 1\n fi\n \n-exit 0\n-\n-################################################################\n+<<\\DOC_END\n \n This sample hook safeguards topic branches that have been\n published from being rewound.\n@@ -167,3 +165,5 @@ To compute (2):\n \tgit rev-list master..topic\n \n \tif this is empty, it is fully merged to \"master\".\n+\n+DOC_END\n-- \n1.7.9.2\n"}]}