{"thread":{"id":"47778","subject":"categorization, documentation and packaging of \"git core\" commands","startedAt":"2018-02-07T13:18:24Z","lastAt":"2018-02-09T13:52:01Z","messageCount":9,"participants":["Robert P. J. Day","Todd Zullinger","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"338617","messageId":"alpine.LFD.2.21.1802070801470.19185@android-a172fe96dd584b41","threadId":"47778","inReplyTo":null,"subject":"categorization, documentation and packaging of \"git core\" commands","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-02-07T13:18:09Z","receivedAt":"2018-02-07T13:18:24Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"\n  (related to earlier thread but different enough that i'll start\nfresh.)\n\n  based on the collection of man page links here:\n\nhttps://www.kernel.org/pub/software/scm/git/docs/\n\ni took a look at how git 2.14.3 is laid out on my fedora 27 system,\nparticularly all of the executables under /usr/libexec/git-core/.\nafter manually cross-checking all of those executables against the\nlinks on the docs page, here's what i learned.\n\n  first, here are the executables under /usr/libexec/git-core/ that\nare unreferenced by that web page, but that should be fine as almost\nall of them would be considered underlying helpers or utilities\n(except for things like git-subtree, but we're still unclear on its\nstatus, right?):\n\n  git-add--interactive\n  git-bisect--helper\n  git-credential-cache--daemon\n  git-credential-libsecret\n  git-credential-netrc\n  git-difftool--helper\n  git-fsck-objects\n  git-gui--askpass\n  git-init-db\n  git-merge-octopus\n  git-merge-ours\n  git-merge-recursive\n  git-merge-resolve\n  git-merge-subtree\n  git-mergetool--lib\n  git-rebase--am\n  git-rebase--helper\n  git-rebase--interactive\n  git-rebase--merge\n  git-remote-ext\n  git-remote-fd\n  git-remote-ftp\n  git-remote-ftps\n  git-remote-http\n  git-remote-https\n  git-sh-i18n--envsubst\n  git-stage\n  git-submodule--helper\n  git-subtree\n  git-web--browse\n\non the other hand (and this is not so much a git issue as a fedora\npackaging issue), there are a number of command links at that web page\nthat are supplied by distinct RPM packages rather than by the basic\nfedora git package, so one would need to install the following\npackages to get some of those commands on fedora:\n\n  * gitk\n  * git-cvs\n  * git-svn\n  * git-p4\n  * git-email (provides git-send-email)\n\nfinally, from fedora, i am utterly unable to find a package that\nprovides git-archimport. pretty sure fedora used to have a \"git-arch\"\npackage but it's not there now.\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                        http://crashcourse.ca\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"338638","messageId":"20180207172902.GL1427@zaya.teonanacatl.net","threadId":"47778","inReplyTo":"alpine.LFD.2.21.1802070801470.19185@android-a172fe96dd584b41","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2018-02-07T17:29:02Z","receivedAt":"2018-02-07T17:29:11Z","isPatch":false,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"Robert P. J. Day wrote:\n> first, here are the executables under /usr/libexec/git-core/ that\n> are unreferenced by that web page, but that should be fine as almost\n> all of them would be considered underlying helpers or utilities\n> (except for things like git-subtree, but we're still unclear on its\n> status, right?):\n\nI don't think there's anything unclear about git subtree's\nstatus.  It's in contrib/ within the source, so it's not\npart of the core git suite.  Some distributions (Fedora\nbeing one of them) ship a git-subtree package to provide it\nfor users who want it.\n\n> on the other hand (and this is not so much a git issue as a fedora\n> packaging issue), there are a number of command links at that web page\n> that are supplied by distinct RPM packages rather than by the basic\n> fedora git package, so one would need to install the following\n> packages to get some of those commands on fedora:\n> \n>   * gitk\n>   * git-cvs\n>   * git-svn\n>   * git-p4\n>   * git-email (provides git-send-email)\n\nThese packages are in separate sub-packages in Fedora (and\nsome other distributions) because they are no required by\nall users and they pull in dependencies which are not wanted\non minimal installs.  In Fedora, you can install git-all to\nget all the available git sub-packages.\n\n> finally, from fedora, i am utterly unable to find a package that\n> provides git-archimport. pretty sure fedora used to have a \"git-arch\"\n> package but it's not there now.\n\nIt hasn't been in Fedora since 2011.  The tla command which\nis required for git-archimport  was retired, thus we removed\nthe git-arch package.  The rpm changelog shows this:\n\n* Tue Jul 26 2011 Todd Zullinger <tmz@pobox.com> - 1.7.6-4\n- Drop git-arch on fedora >= 16, the tla package has been retired\n\nAs does the git history for the package:\n\n    https://src.fedoraproject.org/rpms/git/c/3f0dc974fa\n\nThe tla package was retired because it failed to build for\nseveral releases:\n\n    https://src.fedoraproject.org/rpms/tla/blob/master/f/dead.package\n\n-- \nTodd\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGoing to trial with a lawyer who considers your whole life-style a\nCrime in Progress is not a happy prospect.\n    -- Hunter S. Thompson\n\n"},{"id":"338642","messageId":"alpine.LFD.2.21.1802071308250.9047@localhost.localdomain","threadId":"47778","inReplyTo":"20180207172902.GL1427@zaya.teonanacatl.net","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-02-07T18:09:55Z","receivedAt":"2018-02-07T18:10:03Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Wed, 7 Feb 2018, Todd Zullinger wrote:\n\n> Robert P. J. Day wrote:\n> > first, here are the executables under /usr/libexec/git-core/ that\n> > are unreferenced by that web page, but that should be fine as\n> > almost all of them would be considered underlying helpers or\n> > utilities (except for things like git-subtree, but we're still\n> > unclear on its status, right?):\n>\n> I don't think there's anything unclear about git subtree's status.\n> It's in contrib/ within the source, so it's not part of the core git\n> suite.  Some distributions (Fedora being one of them) ship a\n> git-subtree package to provide it for users who want it.\n\n  not true, \"git-subtree\" is part of fedora's lowest-level\n\"git-core\" package.\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                        http://crashcourse.ca\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"338651","messageId":"20180207184257.GM1427@zaya.teonanacatl.net","threadId":"47778","inReplyTo":"alpine.LFD.2.21.1802071308250.9047@localhost.localdomain","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2018-02-07T18:42:57Z","receivedAt":"2018-02-07T18:43:04Z","isPatch":false,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"Robert P. J. Day wrote:\n> On Wed, 7 Feb 2018, Todd Zullinger wrote:\n> \n>> Robert P. J. Day wrote:\n>>> first, here are the executables under /usr/libexec/git-core/ that\n>>> are unreferenced by that web page, but that should be fine as\n>>> almost all of them would be considered underlying helpers or\n>>> utilities (except for things like git-subtree, but we're still\n>>> unclear on its status, right?):\n>>\n>> I don't think there's anything unclear about git subtree's status.\n>> It's in contrib/ within the source, so it's not part of the core git\n>> suite.  Some distributions (Fedora being one of them) ship a\n>> git-subtree package to provide it for users who want it.\n> \n>   not true, \"git-subtree\" is part of fedora's lowest-level\n> \"git-core\" package.\n\nEek, my apologies for providing bad information.  I really\nshould know the Fedora git packaging better than that. :/\n\nAmusingly, I did suggest packaging it as a subpackage\nspecifically to avoid any confusion that it was a core\ncommand in the Fedora bug which requested it be included in\nthe git packaging:\n\n    https://bugzilla.redhat.com/show_bug.cgi?id=864651\n\nI'll see about changing that going forward in the Fedora\npackaging.  I think it deserves to be in a subpackage.\n\n-- \nTodd\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDoing a job RIGHT the first time gets the job done.\nDoing the job WRONG fourteen times gives you job security.\n\n"},{"id":"338661","messageId":"alpine.LFD.2.21.1802071500220.14248@localhost.localdomain","threadId":"47778","inReplyTo":"20180207172902.GL1427@zaya.teonanacatl.net","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-02-07T20:03:31Z","receivedAt":"2018-02-07T20:03:38Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Wed, 7 Feb 2018, Todd Zullinger wrote:\n\n> Robert P. J. Day wrote:\n\n... snip ...\n\n> > finally, from fedora, i am utterly unable to find a package that\n> > provides git-archimport. pretty sure fedora used to have a\n> > \"git-arch\" package but it's not there now.\n>\n> It hasn't been in Fedora since 2011.  The tla command which is\n> required for git-archimport was retired, thus we removed the\n> git-arch package.  The rpm changelog shows this:\n>\n> * Tue Jul 26 2011 Todd Zullinger <tmz@pobox.com> - 1.7.6-4\n> - Drop git-arch on fedora >= 16, the tla package has been retired\n>\n> As does the git history for the package:\n>\n>     https://src.fedoraproject.org/rpms/git/c/3f0dc974fa\n>\n> The tla package was retired because it failed to build for\n> several releases:\n>\n>     https://src.fedoraproject.org/rpms/tla/blob/master/f/dead.package\n\n  huh ... well, that raises the question, if tla has been unbuildable\nfor that long (possibly for other distros), what is the value in\ncontinuing to support git-archimport?\n\n  https://www.kernel.org/pub/software/scm/git/docs/git-archimport.html\n\ni don't really care one way or the other, but perhaps git-archimport\nshould be broken out as a \"non-core\" component of git. related post\ncoming shortly ...\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                        http://crashcourse.ca\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"338663","messageId":"20180207201417.GB9141@sigill.intra.peff.net","threadId":"47778","inReplyTo":"alpine.LFD.2.21.1802071500220.14248@localhost.localdomain","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2018-02-07T20:14:17Z","receivedAt":"2018-02-07T20:14:27Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Feb 07, 2018 at 03:03:31PM -0500, Robert P. J. Day wrote:\n\n>   huh ... well, that raises the question, if tla has been unbuildable\n> for that long (possibly for other distros), what is the value in\n> continuing to support git-archimport?\n> \n>   https://www.kernel.org/pub/software/scm/git/docs/git-archimport.html\n\nI don't think that we do really support archimport. It's just that we\ntend to leave things sitting around if they're not actively causing us\nwork, in the off chance that somebody might find them useful.\n\nI'd be OK with declaring archimport dead and unmaintained, and dropping\nit totally (I almost did so a few months ago when it _did_ cause me\nextra work, because it contained a bunch of shell injections that I\nturned up while auditing the whole code base).\n\n-Peff\n"},{"id":"338666","messageId":"alpine.LFD.2.21.1802071529080.14481@localhost.localdomain","threadId":"47778","inReplyTo":"20180207172902.GL1427@zaya.teonanacatl.net","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-02-07T20:38:48Z","receivedAt":"2018-02-07T20:38:57Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Wed, 7 Feb 2018, Todd Zullinger wrote:\n\n> Robert P. J. Day wrote:\n> > first, here are the executables under /usr/libexec/git-core/ that\n> > are unreferenced by that web page, but that should be fine as\n> > almost all of them would be considered underlying helpers or\n> > utilities (except for things like git-subtree, but we're still\n> > unclear on its status, right?):\n>\n> I don't think there's anything unclear about git subtree's status.\n> It's in contrib/ within the source, so it's not part of the core git\n> suite.  Some distributions (Fedora being one of them) ship a\n> git-subtree package to provide it for users who want it.\n>\n> > on the other hand (and this is not so much a git issue as a fedora\n> > packaging issue), there are a number of command links at that web\n> > page that are supplied by distinct RPM packages rather than by the\n> > basic fedora git package, so one would need to install the\n> > following packages to get some of those commands on fedora:\n> >\n> >   * gitk\n> >   * git-cvs\n> >   * git-svn\n> >   * git-p4\n> >   * git-email (provides git-send-email)\n>\n> These packages are in separate sub-packages in Fedora (and some\n> other distributions) because they are no required by all users and\n> they pull in dependencies which are not wanted on minimal installs.\n> In Fedora, you can install git-all to get all the available git\n> sub-packages.\n\n  not to belabour this (and i'm sure it's *way* too late for that),\nbut fedora has the following packaging scheme.  first, there's a bunch\nof stuff in \"git-core\", which has no dependencies on any other\ngit-related packages.\n\n  then there's \"git\", which has the following property:\n\n  $ rpm -qR git\n  /bin/sh\n  /usr/bin/perl\n  emacs-filesystem >= 25.3\n  git-core = 2.14.3-2.fc27\n  git-core-doc = 2.14.3-2.fc27\n  ... snip ...\n\n  $ rpm -ql git\n  ... snip ...\n  /usr/libexec/git-core/git-add--interactive\n  /usr/libexec/git-core/git-am\n  /usr/libexec/git-core/git-credential-libsecret\n  /usr/libexec/git-core/git-credential-netrc\n  /usr/libexec/git-core/git-difftool\n  /usr/libexec/git-core/git-difftool--helper\n  /usr/libexec/git-core/git-instaweb\n  /usr/libexec/git-core/git-request-pull\n  /usr/libexec/git-core/git-submodule\n  /usr/libexec/git-core/git-submodule--helper\n  ... snip ...\n  /usr/share/man/man1/git-am.1.gz\n  /usr/share/man/man1/git-difftool.1.gz\n  /usr/share/man/man1/git-instaweb.1.gz\n  /usr/share/man/man1/git-request-pull.1.gz\n  /usr/share/man/man1/git-submodule.1.gz\n  /usr/share/man/man1/gitweb.1.gz\n  /usr/share/man/man5/gitweb.conf.5.gz\n  $\n\nso with fedora, \"git\" drags in \"git-core\" and a small number of\nadditional git utilities. all of this leads one to wonder -- is there\nany comprehensible relationship between:\n\n  1) commands that claim to be in the \"git suite\"\n  2) commands that come from contrib/\n  3) commands listed at\n     https://www.kernel.org/pub/software/scm/git/docs/\n  4) how different distros package all of the above\n\nas i think we've noticed, it's not at all clear how git decides what\nis and isn't part of the \"official\" git suite.\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                        http://crashcourse.ca\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"338670","messageId":"20180207211830.GO1427@zaya.teonanacatl.net","threadId":"47778","inReplyTo":"alpine.LFD.2.21.1802071529080.14481@localhost.localdomain","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2018-02-07T21:18:30Z","receivedAt":"2018-02-07T21:18:40Z","isPatch":false,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"Robert P. J. Day wrote:\n> not to belabour this (and i'm sure it's *way* too late for that),\n> but fedora has the following packaging scheme.  first, there's a bunch\n> of stuff in \"git-core\", which has no dependencies on any other\n> git-related packages.\n\nThe split in Fedora between git and git-core is done to\nminimize the dependencies required for a minimal git\ninstall.  The initial reason was to to allow installing the\ngit-core package on systems, in containers, etc. without\nrequiring perl and its various dependencies to be installed.\n\nThe name git-core was not chosen to imply any official\nstatus as core versus contrib from upstream.\n\n(Farther back in the past, the main git package (and the\nupstream tarball, IIRC) was named git-core due to conflicts\nwith another tool named git (GNU interactive tools).)\n\n> so with fedora, \"git\" drags in \"git-core\" and a small number of\n> additional git utilities. all of this leads one to wonder -- is there\n> any comprehensible relationship between:\n> \n>   1) commands that claim to be in the \"git suite\"\n>   2) commands that come from contrib/\n>   3) commands listed at\n>      https://www.kernel.org/pub/software/scm/git/docs/\n>   4) how different distros package all of the above\n> \n> as i think we've noticed, it's not at all clear how git decides what\n> is and isn't part of the \"official\" git suite.\n\nI don't think there's any good reason to use the packaging\nof any distribution as the source for what the git project\nconsiders officially part of the suite.  For that, you\nshould look at the git source and particularly\ncontrib/README.  The first paragraph says:\n\n    Although these pieces are available as part of the official git\n    source tree, they are in somewhat different status.  The\n    intention is to keep interesting tools around git here, maybe\n    even experimental ones, to give users an easier access to them,\n    and to give tools wider exposure, so that they can be improved\n    faster.\n\nIf anything the Fedora packging does in the splitting or\nnaming of the git packages is something the git project\nfeels is incorrect or needlessly confusing, I (with my\nFedora maintainer hat on) would be happy to make any changes\nI can to improve things.\n\n-- \nTodd\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nSome god must protect drunkards and fools, there are so many of them\nstill around.\n\n"},{"id":"338877","messageId":"alpine.LFD.2.21.1802090848250.7128@android-a172fe96dd584b41","threadId":"47778","inReplyTo":"20180207211830.GO1427@zaya.teonanacatl.net","subject":"Re: categorization, documentation and packaging of \"git core\" commands","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-02-09T13:51:53Z","receivedAt":"2018-02-09T13:52:01Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Wed, 7 Feb 2018, Todd Zullinger wrote:\n\n> Robert P. J. Day wrote:\n> > not to belabour this (and i'm sure it's *way* too late for that),\n> > but fedora has the following packaging scheme.  first, there's a\n> > bunch of stuff in \"git-core\", which has no dependencies on any\n> > other git-related packages.\n>\n> The split in Fedora between git and git-core is done to minimize the\n> dependencies required for a minimal git install.  The initial reason\n> was to to allow installing the git-core package on systems, in\n> containers, etc. without requiring perl and its various dependencies\n> to be installed.\n>\n> The name git-core was not chosen to imply any official status as\n> core versus contrib from upstream.\n\n  ... snip ...\n\n  oh, i understand completely (i particularly like that fedora\nsupports a \"git-extras\" package with loads of cool stuff). remember\nthat this all started when i pointed out that, over at\nhttps://git-scm.com/doc, there is a link entitled \"Reference Manual\"\n(https://git-scm.com/docs) that assures the reader, \"The official and\ncomprehensive man pages that are included in the Git package itself\",\nso it's just a matter of someone deciding what *exactly* corresponds\nto \"the Git package itself\" to make sure all relevant man pages can be\nfound there.\n\n  just being pedantic, as is my wont.\n\nrday\n"}]}