{"thread":{"id":"25925","subject":"Problems using perl's Git.pm module","startedAt":"2010-12-02T11:40:03Z","lastAt":"2010-12-03T09:10:08Z","messageCount":19,"participants":["Josef Wolf","Ævar Arnfjörð Bjarmason","Jonathan Nieder","Junio C Hamano","demerphq"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"157102","messageId":"20101202114003.GA26070@raven.wolf.lan","threadId":"25925","inReplyTo":null,"subject":"Problems using perl's Git.pm module","fromName":"Josef Wolf","fromEmail":"jw@raven.inka.de","sentAt":"2010-12-02T11:40:03Z","receivedAt":"2010-12-02T11:40:03Z","isPatch":false,"sender":{"key":"jw@raven.inka.de","avatar":null},"body":"Hello folks,\n\nI am trying to use perl's Git.pm module, but for some reason, it keeps\nbailing out:\n\n  jw@raven:~/testrepos> git st\n  # On branch master\n  nothing to commit (working directory clean)\n  \n  jw@raven:~/testrepos> ./test.pl\n  # On branch master\n  nothing to commit (working directory clean)\n  status failed w/ code 1 at ./test.pl line 9\n  \n  jw@raven:~/testrepos> cat test.pl\n  #! /usr/bin/perl\n  \n  use strict;\n  use warnings;\n  use Git;\n  \n  my $repo = Git->repository (Directory => '.');\n  git_cmd_try { $repo->command_noisy('status') }\n                       '%s failed w/ code %d';\n  \n  print \"Never reach this line\\n\";\n  \n  jw@raven:~/testrepos> \n\nAny ideas why the status command keeps bailing out on an entire clean\nrepository?\n"},{"id":"157114","messageId":"AANLkTi=8=k9iNWzTnGz821k9A_CZNiEt_KkC8TXu6oS_@mail.gmail.com","threadId":"25925","inReplyTo":"20101202114003.GA26070@raven.wolf.lan","subject":"Re: Problems using perl's Git.pm module","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-12-02T13:23:32Z","receivedAt":"2010-12-02T13:23:32Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n> I am trying to use perl's Git.pm module, but for some reason, it keeps\n> bailing out:\n\nWhy are you using it? It's for internal use only.\n\nCouldn't you use one of the Perl Git wrappers on the CPAN?\n"},{"id":"157119","messageId":"20101202161955.GB3962@burratino","threadId":"25925","inReplyTo":"AANLkTi=8=k9iNWzTnGz821k9A_CZNiEt_KkC8TXu6oS_@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-12-02T16:19:55Z","receivedAt":"2010-12-02T16:19:55Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n\n>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>> bailing out:\n>\n> Why are you using it? It's for internal use only.\n\nWhere do you get that from?  (Not sure whether it's true, just curious.)\n\n> Couldn't you use one of the Perl Git wrappers on the CPAN?\n\nThis is still a reasonable suggestion, certainly.\n"},{"id":"157121","messageId":"AANLkTim7kTYJwnMdOD10D1o11xH7yuZXz1ZvabFL9ujE@mail.gmail.com","threadId":"25925","inReplyTo":"20101202161955.GB3962@burratino","subject":"Re: Problems using perl's Git.pm module","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-12-02T17:30:03Z","receivedAt":"2010-12-02T17:30:03Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Thu, Dec 2, 2010 at 17:19, Jonathan Nieder <jrnieder@gmail.com> wrote:\n> Ævar Arnfjörð Bjarmason wrote:\n>> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n>\n>>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>>> bailing out:\n>>\n>> Why are you using it? It's for internal use only.\n>\n> Where do you get that from?  (Not sure whether it's true, just curious.)\n\nIt, like our internal C is subject to change at any time. It's not\nintended for external use.\n\n>> Couldn't you use one of the Perl Git wrappers on the CPAN?\n>\n> This is still a reasonable suggestion, certainly.\n\nYes, it really is much better to use the CPAN modules that wrap\nGit. We might even want to use them ourselves someday.\n"},{"id":"157126","messageId":"7vpqtkrrtc.fsf@alter.siamese.dyndns.org","threadId":"25925","inReplyTo":"AANLkTi=8=k9iNWzTnGz821k9A_CZNiEt_KkC8TXu6oS_@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-12-02T17:46:23Z","receivedAt":"2010-12-02T17:46:23Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>> bailing out:\n>\n> Why are you using it? It's for internal use only.\n\nThat is not a valid question nor answer, I am afraid.\n\nIt probably is showing that perl/Git.pm is underdocumented.  We should\nmake it possible if not trivial for people who want to write the next\ngreat git-svn.perl or whatever that uses the module to interact with the\nrepository.\n\nI don't understand why the Josef's scriptlet passes Directory to the\ninitialization code.  Is it working with a bare repository?\n"},{"id":"157129","messageId":"7vipzcrrk9.fsf@alter.siamese.dyndns.org","threadId":"25925","inReplyTo":"20101202114003.GA26070@raven.wolf.lan","subject":"Re: Problems using perl's Git.pm module","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-12-02T17:51:50Z","receivedAt":"2010-12-02T17:51:50Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Josef Wolf <jw@raven.inka.de> writes:\n\n>   jw@raven:~/testrepos> git st\n>   # On branch master\n>   nothing to commit (working directory clean)\n\nI take it that you have \"alias.st.cmd = status\".\n\nObserve what this gives you:\n\n    $ git st; echo $?\n\nIf you are running pre-1.7.0 version of git, I think \"git status\" was a\nsynonym to \"git commit --dry-run\" and exited with non-zero status to\nsignal the caller that there is nothing to commit, which is...\n\n>   jw@raven:~/testrepos> ./test.pl\n>   # On branch master\n>   nothing to commit (working directory clean)\n>   status failed w/ code 1 at ./test.pl line 9\n\n...consistent with what we see here.\n"},{"id":"157132","messageId":"AANLkTikQdw3aafsfP+SCQ-z9_TZrPJx694QOSeNTrvp6@mail.gmail.com","threadId":"25925","inReplyTo":"7vpqtkrrtc.fsf@alter.siamese.dyndns.org","subject":"Re: Problems using perl's Git.pm module","fromName":"demerphq","fromEmail":"demerphq@gmail.com","sentAt":"2010-12-02T18:10:06Z","receivedAt":"2010-12-02T18:10:06Z","isPatch":false,"sender":{"key":"demerphq@gmail.com","avatar":null},"body":"On 2 December 2010 18:46, Junio C Hamano <gitster@pobox.com> wrote:\n> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>\n>> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n>>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>>> bailing out:\n>>\n>> Why are you using it? It's for internal use only.\n>\n> That is not a valid question nor answer, I am afraid.\n\nSo you are saying that it is for more than internal use?\n\nYves\n\n\n-- \nperl -Mre=debug -e \"/just|another|perl|hacker/\"\n"},{"id":"157133","messageId":"20101202181425.GG3962@burratino","threadId":"25925","inReplyTo":"AANLkTikQdw3aafsfP+SCQ-z9_TZrPJx694QOSeNTrvp6@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-12-02T18:14:25Z","receivedAt":"2010-12-02T18:14:25Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"demerphq wrote:\n> On 2 December 2010 18:46, Junio C Hamano <gitster@pobox.com> wrote:\n> > Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n>>> Why are you using it? It's for internal use only.\n>>\n>> That is not a valid question nor answer, I am afraid.\n>\n> So you are saying that it is for more than internal use?\n\nI assume so.  I had guessed the same thing (that it is meant to be\ngenerally useful), based on the following:\n\n - it is installed to be usable with a simple \"use Git\"\n   automatically\n\n - \"perldoc Git\" tells me that this module gives Perl scripts an easy\n   way to interface the Git version control system, not that it is an\n   implementation artifact\n\n - tools like \"git svn\" were not historically part of core git, and\n   usage by them was not exactly internal use.\n\nHope that helps.\nJonathan\n"},{"id":"157134","messageId":"7v4oawrqb0.fsf@alter.siamese.dyndns.org","threadId":"25925","inReplyTo":"AANLkTikQdw3aafsfP+SCQ-z9_TZrPJx694QOSeNTrvp6@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-12-02T18:18:59Z","receivedAt":"2010-12-02T18:18:59Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"demerphq <demerphq@gmail.com> writes:\n\n> On 2 December 2010 18:46, Junio C Hamano <gitster@pobox.com> wrote:\n>> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>>\n>>> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n>>>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>>>> bailing out:\n>>>\n>>> Why are you using it? It's for internal use only.\n>>\n>> That is not a valid question nor answer, I am afraid.\n>\n> So you are saying that it is for more than internal use?\n\nNo.\n\nImagine you were adding a new function to git-svn.perl and wanted to know\nwhy your addition that looked somewhat similar to what Josef sent did not\nwork as you expected.\n\nWe should be able to answer such a question, don't you think?  People\noften seem to badmouth this list as git develper's list that is unfriendly\nto end users.  I don't think that is true, but even if that were true (or\nespecially if that were true), shouldn't we be try to be friendly at least\nto a potential developer who tries to learn and use Git.pm module?\n"},{"id":"157136","messageId":"AANLkTin40H-tEUScW3tuVkWkpP0gexsqM_hxBitmdZHW@mail.gmail.com","threadId":"25925","inReplyTo":"7v4oawrqb0.fsf@alter.siamese.dyndns.org","subject":"Re: Problems using perl's Git.pm module","fromName":"demerphq","fromEmail":"demerphq@gmail.com","sentAt":"2010-12-02T18:32:21Z","receivedAt":"2010-12-02T18:32:21Z","isPatch":false,"sender":{"key":"demerphq@gmail.com","avatar":null},"body":"On 2 December 2010 19:18, Junio C Hamano <gitster@pobox.com> wrote:\n> demerphq <demerphq@gmail.com> writes:\n>\n>> On 2 December 2010 18:46, Junio C Hamano <gitster@pobox.com> wrote:\n>>> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>>>\n>>>> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n>>>>> I am trying to use perl's Git.pm module, but for some reason, it keeps\n>>>>> bailing out:\n>>>>\n>>>> Why are you using it? It's for internal use only.\n>>>\n>>> That is not a valid question nor answer, I am afraid.\n>>\n>> So you are saying that it is for more than internal use?\n>\n> No.\n>\n> Imagine you were adding a new function to git-svn.perl and wanted to know\n> why your addition that looked somewhat similar to what Josef sent did not\n> work as you expected.\n>\n> We should be able to answer such a question, don't you think?  People\n> often seem to badmouth this list as git develper's list that is unfriendly\n> to end users.  I don't think that is true, but even if that were true (or\n> especially if that were true), shouldn't we be try to be friendly at least\n> to a potential developer who tries to learn and use Git.pm module?\n\nCertainly. My question purely had to do with whether it is for\ninternal use or not.\n\nThe reason I asked is that I don't think it is for external use, and\nwanted to make sure you agree.\n\ncheers,\nYves\n\n\n\n\n\n-- \nperl -Mre=debug -e \"/just|another|perl|hacker/\"\n"},{"id":"157138","messageId":"AANLkTimKKssBbtuLKCqG9WGbOe+-CH4pc5PDaNxCH_PS@mail.gmail.com","threadId":"25925","inReplyTo":"20101202181425.GG3962@burratino","subject":"Re: Problems using perl's Git.pm module","fromName":"demerphq","fromEmail":"demerphq@gmail.com","sentAt":"2010-12-02T18:41:00Z","receivedAt":"2010-12-02T18:41:00Z","isPatch":false,"sender":{"key":"demerphq@gmail.com","avatar":null},"body":"On 2 December 2010 19:14, Jonathan Nieder <jrnieder@gmail.com> wrote:\n> demerphq wrote:\n>> On 2 December 2010 18:46, Junio C Hamano <gitster@pobox.com> wrote:\n>> > Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>\n>>>> Why are you using it? It's for internal use only.\n>>>\n>>> That is not a valid question nor answer, I am afraid.\n>>\n>> So you are saying that it is for more than internal use?\n>\n> I assume so.  I had guessed the same thing (that it is meant to be\n> generally useful), based on the following:\n>\n>  - it is installed to be usable with a simple \"use Git\"\n>   automatically\n\nWell that is true. But im not sure that is a good reason.\n\n\n>  - \"perldoc Git\" tells me that this module gives Perl scripts an easy\n>   way to interface the Git version control system, not that it is an\n>   implementation artifact\n\nAny perl module, or script, or podfile installed in a place that\nperldoc knows about is available to perldoc.\n\n>  - tools like \"git svn\" were not historically part of core git, and\n>   usage by them was not exactly internal use.\n\nWell, the counter  arguments are:\n\nNo back-compat layer for older gits. Tight binding to a particular git\n- no availability of upgrades independent of upgrading git. No\navailability or review of the module on the standard venues for doing\nso for Perl modules. CPAN, CPANTESTERS, smoke reports, etc.\n\nAnd well the line:\n\n# Totally unstable API.\n$VERSION = '0.01';\n\nSTRONGLY suggests that the module should not be used by code outside\nthe Git package itself.\n\nCheers,\nyves\n\n\n-- \nperl -Mre=debug -e \"/just|another|perl|hacker/\"\n"},{"id":"157143","messageId":"20101202190546.GI3962@burratino","threadId":"25925","inReplyTo":"AANLkTimKKssBbtuLKCqG9WGbOe+-CH4pc5PDaNxCH_PS@mail.gmail.com","subject":"[RFC/PATCH] Git.pm: discourage casual use","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-12-02T19:05:46Z","receivedAt":"2010-12-02T19:05:46Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Git's internal perl interface still does not have a stable API, and\nmeanwhile CPAN has a number of modules to fulfill the need for a perl\ngit interface.  The line\n\n\t# Totally unstable API.\n\t$VERSION = '0.01';\n\nin the source makes this clear enough, but users who just looked at\ngit-svn.perl and then tried \"perldoc Git\" would not notice.  Add a\nnote to the manual to warn the reader.\n\nInspired-by: Yves Orton <demerphq@gmail.com>\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\ndemerphq wrote:\n\n> And well the line:\n> \n> # Totally unstable API.\n> $VERSION = '0.01';\n> \n> STRONGLY suggests that the module should not be used by code outside\n> the Git package itself.\n\nSo how about something like this patch, to start?\n\ndiff --git a/perl/Git.pm b/perl/Git.pm\nindex 6cb0dd1..7f6c500 100644\n--- a/perl/Git.pm\n+++ b/perl/Git.pm\n@@ -63,12 +63,16 @@ require Exporter;\n \n =head1 DESCRIPTION\n \n-This module provides Perl scripts easy way to interface the Git version control\n-system. The modules have an easy and well-tested way to call arbitrary Git\n+This module provides an easy way to interact with the Git version control\n+system for Git's internal perl scripts.\n+The modules have an easy and well-tested way to call arbitrary Git\n commands; in the future, the interface will also provide specialized methods\n for doing easily operations which are not totally trivial to do over\n the generic command interface.\n \n+Note: this module should not be used by code outside the Git package itself,\n+since the API is not stable yet.\n+\n While some commands can be executed outside of any context (e.g. 'version'\n or 'init'), most operations require a repository context, which in practice\n means getting an instance of the Git object using the repository() constructor.\n"},{"id":"157149","messageId":"7veia0q8fx.fsf@alter.siamese.dyndns.org","threadId":"25925","inReplyTo":"20101202190546.GI3962@burratino","subject":"Re: [RFC/PATCH] Git.pm: discourage casual use","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-12-02T19:30:10Z","receivedAt":"2010-12-02T19:30:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\n> So how about something like this patch, to start?\n\nOk.  We may probably want to reduce the repetition of \"easy\", though.\n\n> diff --git a/perl/Git.pm b/perl/Git.pm\n> index 6cb0dd1..7f6c500 100644\n> --- a/perl/Git.pm\n> +++ b/perl/Git.pm\n> @@ -63,12 +63,16 @@ require Exporter;\n>  \n>  =head1 DESCRIPTION\n>  \n> -This module provides Perl scripts easy way to interface the Git version control\n> -system. The modules have an easy and well-tested way to call arbitrary Git\n> +This module provides an easy way to interact with the Git version control\n> +system for Git's internal perl scripts.\n> +The modules have an easy and well-tested way to call arbitrary Git\n>  commands; in the future, the interface will also provide specialized methods\n>  for doing easily operations which are not totally trivial to do over\n>  the generic command interface.\n>  \n> +Note: this module should not be used by code outside the Git package itself,\n> +since the API is not stable yet.\n> +\n>  While some commands can be executed outside of any context (e.g. 'version'\n>  or 'init'), most operations require a repository context, which in practice\n>  means getting an instance of the Git object using the repository() constructor.\n"},{"id":"157151","messageId":"20101202194536.GB4806@burratino","threadId":"25925","inReplyTo":"7veia0q8fx.fsf@alter.siamese.dyndns.org","subject":"Re: [RFC/PATCH] Git.pm: discourage casual use","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-12-02T19:45:36Z","receivedAt":"2010-12-02T19:45:36Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Junio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n\n>> So how about something like this patch, to start?\n>\n> Ok.  We may probably want to reduce the repetition of \"easy\", though.\n\nYes.\n---\ndiff --git a/perl/Git.pm b/perl/Git.pm\nindex 69e92aa..4700dd7 100644\n--- a/perl/Git.pm\n+++ b/perl/Git.pm\n@@ -65,12 +65,12 @@ require Exporter;\n \n This module provides an easy way to interact with the Git version control\n system for Git's internal perl scripts.\n-The modules have an easy and well-tested way to call arbitrary Git\n-commands; in the future, the interface will also provide specialized methods\n-for doing easily operations which are not totally trivial to do over\n+The modules include a robust way to call arbitrary Git commands;\n+in the future, the interface will also provide specialized methods\n+to simplify operations which are not totally trivial to do over\n the generic command interface.\n \n-Note: this module should not be used by code outside the Git package itself,\n+The module should not be used by code outside the Git package itself,\n since the API is not stable yet.\n \n While some commands can be executed outside of any context (e.g. 'version'\n"},{"id":"157179","messageId":"20101203081414.GB26070@raven.wolf.lan","threadId":"25925","inReplyTo":"7vipzcrrk9.fsf@alter.siamese.dyndns.org","subject":"Re: Problems using perl's Git.pm module","fromName":"Josef Wolf","fromEmail":"jw@raven.inka.de","sentAt":"2010-12-03T08:14:14Z","receivedAt":"2010-12-03T08:14:14Z","isPatch":false,"sender":{"key":"jw@raven.inka.de","avatar":null},"body":"On Thu, Dec 02, 2010 at 09:51:50AM -0800, Junio C Hamano wrote:\n> Josef Wolf <jw@raven.inka.de> writes:\n> \n> >   jw@raven:~/testrepos> git st\n> >   # On branch master\n> >   nothing to commit (working directory clean)\n> I take it that you have \"alias.st.cmd = status\".\n\nYes, I'm still strongly tied to svn ;-)\n\n> Observe what this gives you:\n> \n>     $ git st; echo $?\n\n1\n\n> If you are running pre-1.7.0 version of git, I think \"git status\" was a\n> synonym to \"git commit --dry-run\" and exited with non-zero status to\n> signal the caller that there is nothing to commit, which is...\n\nIt's 1.6.4.2, so I guess you're right.\n\nThanks!\n"},{"id":"157181","messageId":"20101203082701.GC26070@raven.wolf.lan","threadId":"25925","inReplyTo":"AANLkTi=8=k9iNWzTnGz821k9A_CZNiEt_KkC8TXu6oS_@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Josef Wolf","fromEmail":"jw@raven.inka.de","sentAt":"2010-12-03T08:27:01Z","receivedAt":"2010-12-03T08:27:01Z","isPatch":false,"sender":{"key":"jw@raven.inka.de","avatar":null},"body":"On Thu, Dec 02, 2010 at 02:23:32PM +0100, Ævar Arnfjörð Bjarmason wrote:\n> On Thu, Dec 2, 2010 at 12:40, Josef Wolf <jw@raven.inka.de> wrote:\n> > I am trying to use perl's Git.pm module, but for some reason, it keeps\n> > bailing out:\n> Why are you using it?\n\n1. It is always available whenever git is available, so I don't need to\n   search/install additional packages just to hack some scripts. If you\n   have to support multiple distros/OS'es, it starts getting a PITA to\n   find out what/how to install those additional packages.\n\n2. Since it is used by the core developers, I assumed that it would be\n   more robust than some third-party wrappers.\n\n3. Since it is bundled with git, I'd not expect any version mismatches.\n   With a third-party wrapper, version mismatches are much more likely.\n\n> Couldn't you use one of the Perl Git wrappers on the CPAN?\n\nWhich one would you suggest?\n"},{"id":"157182","messageId":"20101203083827.GD26070@raven.wolf.lan","threadId":"25925","inReplyTo":"AANLkTimKKssBbtuLKCqG9WGbOe+-CH4pc5PDaNxCH_PS@mail.gmail.com","subject":"Re: Problems using perl's Git.pm module","fromName":"Josef Wolf","fromEmail":"jw@raven.inka.de","sentAt":"2010-12-03T08:38:28Z","receivedAt":"2010-12-03T08:38:28Z","isPatch":false,"sender":{"key":"jw@raven.inka.de","avatar":null},"body":"On Thu, Dec 02, 2010 at 07:41:00PM +0100, demerphq wrote:\n> Well, the counter  arguments are:\n> \n> No back-compat layer for older gits. Tight binding to a particular git\n> - no availability of upgrades independent of upgrading git.\n\nI don't understand this one. Why do you need independent upgrades here?\nSince Git.pm comes with git core, the installed version of Git.pm should\nalways match the installed version of git.\n\n> No\n> availability or review of the module on the standard venues for doing\n> so for Perl modules. CPAN, CPANTESTERS, smoke reports, etc.\n\nA module on CPAN has better tests for perl integration.\nA module in git-core has better tests for git integration.\n\nYou trade one for the other. The question is which is more critical. IMHO,\ngit-integration is more critical.\n"},{"id":"157186","messageId":"AANLkTikDCNLLTdKyUT8_RXLWhJ8onMKh8EBpg_=iQUzW@mail.gmail.com","threadId":"25925","inReplyTo":"20101203083827.GD26070@raven.wolf.lan","subject":"Re: Problems using perl's Git.pm module","fromName":"demerphq","fromEmail":"demerphq@gmail.com","sentAt":"2010-12-03T09:02:19Z","receivedAt":"2010-12-03T09:02:19Z","isPatch":false,"sender":{"key":"demerphq@gmail.com","avatar":null},"body":"On 3 December 2010 09:38, Josef Wolf <jw@raven.inka.de> wrote:\n> On Thu, Dec 02, 2010 at 07:41:00PM +0100, demerphq wrote:\n>> Well, the counter  arguments are:\n>>\n>> No back-compat layer for older gits. Tight binding to a particular git\n>> - no availability of upgrades independent of upgrading git.\n>\n> I don't understand this one. Why do you need independent upgrades here?\n> Since Git.pm comes with git core, the installed version of Git.pm should\n> always match the installed version of git.\n\nBecause in my experience coding a tool against a particular version of\nGit.pm basically means that tool has to be on the same git version or\nhigher than the version you coded against.\n\nThere is no easy/safe way to update Git,pm to provide a consistent\ninterface to older gits.\n\n>\n>> No\n>> availability or review of the module on the standard venues for doing\n>> so for Perl modules. CPAN, CPANTESTERS, smoke reports, etc.\n>\n> A module on CPAN has better tests for perl integration.\n> A module in git-core has better tests for git integration.\n>\n> You trade one for the other. The question is which is more critical. IMHO,\n> git-integration is more critical.\n\nA CPAN module would be automatically tested by the CPANTESTERS\ncommunity against whatever git people happened to have lying around,\nand those tests would necessarily occur on a myriad of systems, and\nwhen failures occurred they would be automatically registered in CPAN\nrt bug tracking system, and available in various summarized and\ndetailed forms from multiple locations.\n\nThose test results and integration efforts would be automatically fed\nback to the module author, be publicly available on several websites,\nincluding via CPAN itself, and if it should happen that the p5p group\nwere to somehow break Git.pm somehow we would know about it, and be\nable to fix perl itself without Git.pm having to change. Admittedly\nthis is unlikely given the nature of the code.\n\nSo really, by tightly binding the package to git all that you\nguarantee is that the version of Git.pm installed by git will work\nwith the git you have installed. It does not say that any program\nwritten against that version of Git.pm will continue to work on a\nlater version, or that people stuck on a older version of git will be\nable to use it.\n\ncheers,\nYves\n\n\n\n\n\n\n\n-- \nperl -Mre=debug -e \"/just|another|perl|hacker/\"\n"},{"id":"157188","messageId":"20101203091008.GF18202@burratino","threadId":"25925","inReplyTo":"20101203082701.GC26070@raven.wolf.lan","subject":"Re: Problems using perl's Git.pm module","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-12-03T09:10:08Z","receivedAt":"2010-12-03T09:10:08Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Josef Wolf wrote:\n> On Thu, Dec 02, 2010 at 02:23:32PM +0100, Ævar Arnfjörð Bjarmason wrote:\n\n>> Couldn't you use one of the Perl Git wrappers on the CPAN?\n>\n> Which one would you suggest?\n\nJudging from [1], Git::Wrapper might be worth trying.\n\nThat said, if you have more questions or any ideas for Git.pm, they\nwould be welcome.  That is when the lack of declared stable API can\ncome in handy. ;-)\n\n[1] https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Perl\n"}]}