{"thread":{"id":"26234","subject":"[PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","startedAt":"2011-01-07T20:48:10Z","lastAt":"2011-01-07T23:50:41Z","messageCount":6,"participants":["Robin H. Johnson","Jonathan Nieder","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"159156","messageId":"1294433290-9262-1-git-send-email-robbat2@gentoo.org","threadId":"26234","inReplyTo":null,"subject":"[PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Robin H. Johnson","fromEmail":"robbat2@gentoo.org","sentAt":"2011-01-07T20:48:10Z","receivedAt":"2011-01-07T20:48:10Z","isPatch":true,"sender":{"key":"robbat2@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/373898?v=4"},"body":"Presently, the CVS interface scripts are always built, and their\ntest-suites run based on a binary named 'cvs' happening to return zero.\nIf there something other than the real CVS there, bad things happened\nduring the test-suite run.\n\nThis patch implements NO_CVS in the manner of NO_PERL, and ensures that\nthe CVS scripts get the unimplemented variant when appropriate, as well\nas making sure that the tests properly declare CVS as a prerequisite\n(shortcut to test_done like the Perl prerequisites).\n\nSigned-off-by: Robin H. Johnson <robbat2@gentoo.org>\nX-Gentoo-Bug: 350330\nX-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=350330\n---\n Makefile                           |   37 ++++++++++++++++++++++++--------\n t/t9200-git-cvsexportcommit.sh     |    5 ++++\n t/t9400-git-cvsserver-server.sh    |    8 ++++++-\n t/t9401-git-cvsserver-crlf.sh      |   15 ++++++++----\n t/t9600-cvsimport.sh               |   41 ++++++++++++++++++++++-------------\n t/t9601-cvsimport-vendor-branch.sh |   11 +++++++++\n t/t9602-cvsimport-branches-tags.sh |   11 +++++++++\n t/t9603-cvsimport-patchsets.sh     |   11 +++++++++\n t/test-lib.sh                      |    1 +\n 9 files changed, 110 insertions(+), 30 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 775ee83..158489a 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -188,6 +188,8 @@ all::\n #\n # Define NO_TCLTK if you do not want Tcl/Tk GUI.\n #\n+# Define NO_CVS if you do not want any CVS interface utilities.\n+#\n # The TCL_PATH variable governs the location of the Tcl interpreter\n # used to optimize git-gui for your system.  Only used if NO_TCLTK\n # is not set.  Defaults to the bare 'tclsh'.\n@@ -347,6 +349,7 @@ LIB_OBJS =\n PROGRAM_OBJS =\n PROGRAMS =\n SCRIPT_PERL =\n+SCRIPT_PERL_CVS =\n SCRIPT_PYTHON =\n SCRIPT_SH =\n SCRIPT_LIB =\n@@ -384,17 +387,18 @@ SCRIPT_LIB += git-sh-setup\n SCRIPT_PERL += git-add--interactive.perl\n SCRIPT_PERL += git-difftool.perl\n SCRIPT_PERL += git-archimport.perl\n-SCRIPT_PERL += git-cvsexportcommit.perl\n-SCRIPT_PERL += git-cvsimport.perl\n-SCRIPT_PERL += git-cvsserver.perl\n SCRIPT_PERL += git-relink.perl\n SCRIPT_PERL += git-send-email.perl\n SCRIPT_PERL += git-svn.perl\n \n+SCRIPT_PERL_CVS += git-cvsexportcommit.perl\n+SCRIPT_PERL_CVS += git-cvsimport.perl\n+SCRIPT_PERL_CVS += git-cvsserver.perl\n+\n SCRIPT_PYTHON += git-remote-testgit.py\n \n SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \\\n-\t  $(patsubst %.perl,%,$(SCRIPT_PERL)) \\\n+\t  $(patsubst %.perl,%,$(SCRIPT_PERL) $(SCRIPT_PERL_CVS)) \\\n \t  $(patsubst %.py,%,$(SCRIPT_PYTHON)) \\\n \t  git-instaweb\n \n@@ -1721,13 +1725,25 @@ $(SCRIPT_LIB) : % : %.sh\n \t$(QUIET_GEN)$(cmd_munge_script) && \\\n \tmv $@+ $@\n \n+_SCRIPT_PERL_BUILD = \n+_SCRIPT_PERL_NOBUILD = \n+\n ifndef NO_PERL\n-$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak\n+\n+_SCRIPT_PERL_BUILD += $(SCRIPT_PERL)\n+\n+ifndef NO_CVS\n+_SCRIPT_PERL_BUILD += $(SCRIPT_PERL_CVS)\n+else # NO_CVS\n+_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL_CVS)\n+endif # NO_CVS\n+\n+$(patsubst %.perl,%,$(_SCRIPT_PERL_BUILD)): perl/perl.mak\n \n perl/perl.mak: GIT-CFLAGS perl/Makefile perl/Makefile.PL\n \t$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)\n \n-$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl\n+$(patsubst %.perl,%,$(_SCRIPT_PERL_BUILD)): % : %.perl\n \t$(QUIET_GEN)$(RM) $@ $@+ && \\\n \tINSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \\\n \tsed -e '1{' \\\n@@ -1784,14 +1800,17 @@ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/\n \tchmod +x $@+ && \\\n \tmv $@+ $@\n else # NO_PERL\n-$(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh\n+_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL) $(SCRIPT_PERL_CVS) git-instaweb\n+endif # NO_PERL\n+\n+# This is any perl scripts that were disabled it might be empty...\n+$(patsubst %.perl,%,$(_SCRIPT_PERL_NOBUILD)): % : unimplemented.sh\n \t$(QUIET_GEN)$(RM) $@ $@+ && \\\n \tsed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \\\n \t    -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \\\n \t    unimplemented.sh >$@+ && \\\n \tchmod +x $@+ && \\\n \tmv $@+ $@\n-endif # NO_PERL\n \n ifndef NO_PYTHON\n $(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS\n@@ -1826,7 +1845,7 @@ configure: configure.ac\n # These can record GIT_VERSION\n git.o git.spec \\\n \t$(patsubst %.sh,%,$(SCRIPT_SH)) \\\n-\t$(patsubst %.perl,%,$(SCRIPT_PERL)) \\\n+\t$(patsubst %.perl,%,$(SCRIPT_PERL) $(SCRIPT_PERL_CVS)) \\\n \t: GIT-VERSION-FILE\n \n TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))\ndiff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh\nindex e5da65b..4b3f010 100755\n--- a/t/t9200-git-cvsexportcommit.sh\n+++ b/t/t9200-git-cvsexportcommit.sh\n@@ -12,6 +12,11 @@ if ! test_have_prereq PERL; then\n \ttest_done\n fi\n \n+if ! test_have_prereq CVS; then\n+\tskip_all='skipping git cvsexportcommit tests, cvs not available'\n+\ttest_done\n+fi\n+\n cvs >/dev/null 2>&1\n if test $? -ne 1\n then\ndiff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh\nindex 9199550..52ea99d 100755\n--- a/t/t9400-git-cvsserver-server.sh\n+++ b/t/t9400-git-cvsserver-server.sh\n@@ -11,9 +11,15 @@ cvs CLI client via git-cvsserver server'\n . ./test-lib.sh\n \n if ! test_have_prereq PERL; then\n-\tskip_all='skipping git cvsserver tests, perl not available'\n+\tskip_all='skipping git-cvsserver tests, perl not available'\n \ttest_done\n fi\n+\n+if ! test_have_prereq CVS; then\n+\tskip_all='skipping git-cvsserver tests, cvs not available'\n+\ttest_done\n+fi\n+\n cvs >/dev/null 2>&1\n if test $? -ne 1\n then\ndiff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh\nindex ff6d6fb..f0d7aad 100755\n--- a/t/t9401-git-cvsserver-crlf.sh\n+++ b/t/t9401-git-cvsserver-crlf.sh\n@@ -38,15 +38,20 @@ not_present() {\n     fi\n }\n \n-cvs >/dev/null 2>&1\n-if test $? -ne 1\n+if ! test_have_prereq PERL\n then\n-    skip_all='skipping git-cvsserver tests, cvs not found'\n+    skip_all='skipping git-cvsserver tests, perl not available'\n     test_done\n fi\n-if ! test_have_prereq PERL\n+if ! test_have_prereq CVS\n then\n-    skip_all='skipping git-cvsserver tests, perl not available'\n+    skip_all='skipping git-cvsserver tests, cvs not available'\n+    test_done\n+fi\n+cvs >/dev/null 2>&1\n+if test $? -ne 1\n+then\n+    skip_all='skipping git-cvsserver tests, cvs not found'\n     test_done\n fi\n \"$PERL_PATH\" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {\ndiff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh\nindex 4c384ff..d601f32 100755\n--- a/t/t9600-cvsimport.sh\n+++ b/t/t9600-cvsimport.sh\n@@ -3,14 +3,25 @@\n test_description='git cvsimport basic tests'\n . ./lib-cvs.sh\n \n-test_expect_success PERL 'setup cvsroot environment' '\n+if ! test_have_prereq PERL\n+then\n+    skip_all='skipping git cvsimport tests, perl not available'\n+    test_done\n+fi\n+if ! test_have_prereq CVS\n+then\n+    skip_all='skipping git cvsimport tests, cvs not available'\n+    test_done\n+fi\n+\n+test_expect_success 'setup cvsroot environment' '\n \tCVSROOT=$(pwd)/cvsroot &&\n \texport CVSROOT\n '\n \n-test_expect_success PERL 'setup cvsroot' '$CVS init'\n+test_expect_success 'setup cvsroot' '$CVS init'\n \n-test_expect_success PERL 'setup a cvs module' '\n+test_expect_success 'setup a cvs module' '\n \n \tmkdir \"$CVSROOT/module\" &&\n \t$CVS co -d module-cvs module &&\n@@ -42,23 +53,23 @@ EOF\n \t)\n '\n \n-test_expect_success PERL 'import a trivial module' '\n+test_expect_success 'import a trivial module' '\n \n \tgit cvsimport -a -R -z 0 -C module-git module &&\n \ttest_cmp module-cvs/o_fortuna module-git/o_fortuna\n \n '\n \n-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'\n+test_expect_success 'pack refs' '(cd module-git && git gc)'\n \n-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '\n+test_expect_success 'initial import has correct .git/cvs-revisions' '\n \n \t(cd module-git &&\n \t git log --format=\"o_fortuna 1.1 %H\" -1) > expected &&\n \ttest_cmp expected module-git/.git/cvs-revisions\n '\n \n-test_expect_success PERL 'update cvs module' '\n+test_expect_success 'update cvs module' '\n \t(cd module-cvs &&\n \tcat <<EOF >o_fortuna &&\n O Fortune,\n@@ -86,7 +97,7 @@ EOF\n \t)\n '\n \n-test_expect_success PERL 'update git module' '\n+test_expect_success 'update git module' '\n \n \t(cd module-git &&\n \tgit config cvsimport.trackRevisions true &&\n@@ -97,7 +108,7 @@ test_expect_success PERL 'update git module' '\n \n '\n \n-test_expect_success PERL 'update has correct .git/cvs-revisions' '\n+test_expect_success 'update has correct .git/cvs-revisions' '\n \n \t(cd module-git &&\n \t git log --format=\"o_fortuna 1.1 %H\" -1 HEAD^ &&\n@@ -105,7 +116,7 @@ test_expect_success PERL 'update has correct .git/cvs-revisions' '\n \ttest_cmp expected module-git/.git/cvs-revisions\n '\n \n-test_expect_success PERL 'update cvs module' '\n+test_expect_success 'update cvs module' '\n \n \t(cd module-cvs &&\n \t\techo 1 >tick &&\n@@ -114,7 +125,7 @@ test_expect_success PERL 'update cvs module' '\n \t)\n '\n \n-test_expect_success PERL 'cvsimport.module config works' '\n+test_expect_success 'cvsimport.module config works' '\n \n \t(cd module-git &&\n \t\tgit config cvsimport.module module &&\n@@ -126,7 +137,7 @@ test_expect_success PERL 'cvsimport.module config works' '\n \n '\n \n-test_expect_success PERL 'second update has correct .git/cvs-revisions' '\n+test_expect_success 'second update has correct .git/cvs-revisions' '\n \n \t(cd module-git &&\n \t git log --format=\"o_fortuna 1.1 %H\" -1 HEAD^^ &&\n@@ -135,7 +146,7 @@ test_expect_success PERL 'second update has correct .git/cvs-revisions' '\n \ttest_cmp expected module-git/.git/cvs-revisions\n '\n \n-test_expect_success PERL 'import from a CVS working tree' '\n+test_expect_success 'import from a CVS working tree' '\n \n \t$CVS co -d import-from-wt module &&\n \t(cd import-from-wt &&\n@@ -148,12 +159,12 @@ test_expect_success PERL 'import from a CVS working tree' '\n \n '\n \n-test_expect_success PERL 'no .git/cvs-revisions created by default' '\n+test_expect_success 'no .git/cvs-revisions created by default' '\n \n \t! test -e import-from-wt/.git/cvs-revisions\n \n '\n \n-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'\n+test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'\n \n test_done\ndiff --git a/t/t9601-cvsimport-vendor-branch.sh b/t/t9601-cvsimport-vendor-branch.sh\nindex 827d39f..d730a41 100755\n--- a/t/t9601-cvsimport-vendor-branch.sh\n+++ b/t/t9601-cvsimport-vendor-branch.sh\n@@ -34,6 +34,17 @@\n test_description='git cvsimport handling of vendor branches'\n . ./lib-cvs.sh\n \n+if ! test_have_prereq PERL\n+then\n+    skip_all='skipping git cvsimport tests, perl not available'\n+    test_done\n+fi\n+if ! test_have_prereq CVS\n+then\n+    skip_all='skipping git cvsimport tests, cvs not available'\n+    test_done\n+fi\n+\n setup_cvs_test_repository t9601\n \n test_expect_success PERL 'import a module with a vendor branch' '\ndiff --git a/t/t9602-cvsimport-branches-tags.sh b/t/t9602-cvsimport-branches-tags.sh\nindex e1db323..68f0974 100755\n--- a/t/t9602-cvsimport-branches-tags.sh\n+++ b/t/t9602-cvsimport-branches-tags.sh\n@@ -6,6 +6,17 @@\n test_description='git cvsimport handling of branches and tags'\n . ./lib-cvs.sh\n \n+if ! test_have_prereq PERL\n+then\n+    skip_all='skipping git cvsimport tests, perl not available'\n+    test_done\n+fi\n+if ! test_have_prereq CVS\n+then\n+    skip_all='skipping git cvsimport tests, cvs not available'\n+    test_done\n+fi\n+\n setup_cvs_test_repository t9602\n \n test_expect_success PERL 'import module' '\ndiff --git a/t/t9603-cvsimport-patchsets.sh b/t/t9603-cvsimport-patchsets.sh\nindex 52034c8..db4d682 100755\n--- a/t/t9603-cvsimport-patchsets.sh\n+++ b/t/t9603-cvsimport-patchsets.sh\n@@ -14,6 +14,17 @@\n test_description='git cvsimport testing for correct patchset estimation'\n . ./lib-cvs.sh\n \n+if ! test_have_prereq PERL\n+then\n+    skip_all='skipping git cvsimport tests, perl not available'\n+    test_done\n+fi\n+if ! test_have_prereq CVS\n+then\n+    skip_all='skipping git cvsimport tests, cvs not available'\n+    test_done\n+fi\n+\n setup_cvs_test_repository t9603\n \n test_expect_failure 'import with criss cross times on revisions' '\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex cb1ca97..d594c95 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -1066,6 +1066,7 @@ case $(uname -s) in\n \t;;\n esac\n \n+test -z \"$NO_CVS\" && test_set_prereq CVS\n test -z \"$NO_PERL\" && test_set_prereq PERL\n test -z \"$NO_PYTHON\" && test_set_prereq PYTHON\n \n-- \n1.7.3.4\n"},{"id":"159165","messageId":"20110107220147.GB9194@burratino","threadId":"26234","inReplyTo":"1294433290-9262-1-git-send-email-robbat2@gentoo.org","subject":"Re: [PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-01-07T22:01:48Z","receivedAt":"2011-01-07T22:01:48Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Robin H. Johnson wrote:\n\n> Presently, the CVS interface scripts are always built, and their\n> test-suites run based on a binary named 'cvs' happening to return zero.\n> If there something other than the real CVS there, bad things happened\n> during the test-suite run.\n\nThis explanation seems quite odd to me.  Are you saying we can't rely\non the 'cvs' name being \"taken\" and should live in fear that someone\nwill implement an incompatible utility with the same name?  Did that\nactually happen?\n\nI would find it easier to believe\n\n\tBuilding and testing git's cvs support is slow, because ...\n\n\tSo give users with no interest in cvs interoperability a way\n\tout.  By defining NO_CVS you can avoid this time-consuming\n\tpiece of the build process.\n\nOr for a different patch:\n\n\tAdd a NO_CVS knob so users with no interest in cvs support\n\tcan avoid polluting their $(libexecdir) with unwanted entries.\n\nOr:\n\n\tIntroduce a new NO_CVS knob.  If set, the CVS interop scripts\n\twill be replaced by unimplemented.sh so sysadmins and\n\tdistributors can hopefully get a nice, clear error report instead\n\tof confusion when users try to run them with cvs not installed.\n"},{"id":"159167","messageId":"7v39p45pyw.fsf@alter.siamese.dyndns.org","threadId":"26234","inReplyTo":"1294433290-9262-1-git-send-email-robbat2@gentoo.org","subject":"Re: [PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-01-07T22:05:59Z","receivedAt":"2011-01-07T22:05:59Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Robin H. Johnson\" <robbat2@gentoo.org> writes:\n\n> Presently, the CVS interface scripts are always built, and their\n> test-suites run based on a binary named 'cvs' happening to return zero.\n> If there something other than the real CVS there, bad things happened\n> during the test-suite run.\n\nIs that a problem?\n\nIt makes sense to let people whose system happens to have a working cvs to\nomit cvs interoperability bits when they know the do not want them, and\nthat alone would be a good enough motivation.\n\nI'd even consider the above justification of yours detrimental---it would\nbe an excuse for other people to add patches to support NO_CAT, NO_DIFF,\nNO_LS, ... saying \"if a binary 'cat' that is not cat is there, things\nbreak, so work it around\".  That is a road to nonsense land.\n\n> This patch implements NO_CVS in the manner of NO_PERL, and ensures that\n> the CVS scripts get the unimplemented variant when appropriate, as well\n> as making sure that the tests properly declare CVS as a prerequisite\n> (shortcut to test_done like the Perl prerequisites).\n\nWhile the patch looks good, some people seem to prefer skipping individual\ntests without shortcut; see 900eab4 (t/t9600-cvsimport.sh: change from\nskip_all=* to prereq skip, 2010-08-13) for example.  I am slightly in\nfavor of the short-cut as I haven't heard convincing argument against it\nother than \"skipped statistics\" which I don't think is interesting nor\naccurate anyway.\n\nI wonder if \"check PERL and CVS prerequisite and say test_done\" should be\nmade into a helper in lib-cvs.sh or somewhere instead of repeating them in\nindividual tests, but that is a minor point.\n"},{"id":"159174","messageId":"robbat2-20110107T225218-562776173Z@orbis-terrarum.net","threadId":"26234","inReplyTo":"7v39p45pyw.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Robin H. Johnson","fromEmail":"robbat2@gentoo.org","sentAt":"2011-01-07T22:53:53Z","receivedAt":"2011-01-07T22:53:53Z","isPatch":true,"sender":{"key":"robbat2@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/373898?v=4"},"body":"On Fri, Jan 07, 2011 at 02:05:59PM -0800, Junio C Hamano wrote:\n> > Presently, the CVS interface scripts are always built, and their\n> > test-suites run based on a binary named 'cvs' happening to return zero.\n> > If there something other than the real CVS there, bad things happened\n> > during the test-suite run.\n> It makes sense to let people whose system happens to have a working cvs to\n> omit cvs interoperability bits when they know the do not want them, and\n> that alone would be a good enough motivation.\nOk, i'll respin to a different explanation.\n\n> While the patch looks good, some people seem to prefer skipping individual\n> tests without shortcut; see 900eab4 (t/t9600-cvsimport.sh: change from\n> skip_all=* to prereq skip, 2010-08-13) for example.  I am slightly in\n> favor of the short-cut as I haven't heard convincing argument against it\n> other than \"skipped statistics\" which I don't think is interesting nor\n> accurate anyway.\nI did it this was because of your prior comment on my perl prereq patch\nfor the send-email tests.\n\n> I wonder if \"check PERL and CVS prerequisite and say test_done\" should be\n> made into a helper in lib-cvs.sh or somewhere instead of repeating them in\n> individual tests, but that is a minor point.\nI'll see if I can respin to do this.\n\n-- \nRobin Hugh Johnson\nGentoo Linux: Developer, Trustee & Infrastructure Lead\nE-Mail     : robbat2@gentoo.org\nGnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85\n"},{"id":"159175","messageId":"robbat2-20110107T225413-429815896Z@orbis-terrarum.net","threadId":"26234","inReplyTo":"20110107220147.GB9194@burratino","subject":"Re: [PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Robin H. Johnson","fromEmail":"robbat2@gentoo.org","sentAt":"2011-01-07T22:55:54Z","receivedAt":"2011-01-07T22:55:54Z","isPatch":true,"sender":{"key":"robbat2@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/373898?v=4"},"body":"On Fri, Jan 07, 2011 at 04:01:48PM -0600, Jonathan Nieder wrote:\n> This explanation seems quite odd to me.  Are you saying we can't rely\n> on the 'cvs' name being \"taken\" and should live in fear that someone\n> will implement an incompatible utility with the same name?  Did that\n> actually happen?\nNot in the linked bug report, but it does explain a previous bug I had\nseen, where a user had a little script in /usr/local/bin that complained\nat him whenever he ran 'cvs', so he would learn to migrate away faster.\n\n> I would find it easier to believe\nI'm going to respin the patch with a new text, and one other improvement\nfrom Junio.\n\n-- \nRobin Hugh Johnson\nGentoo Linux: Developer, Trustee & Infrastructure Lead\nE-Mail     : robbat2@gentoo.org\nGnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85\n"},{"id":"159185","messageId":"7vei8o46jy.fsf@alter.siamese.dyndns.org","threadId":"26234","inReplyTo":"robbat2-20110107T225413-429815896Z@orbis-terrarum.net","subject":"Re: [PATCH] git-cvs*: Make building (and testing) of CVS interface scripts optionally selectable","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-01-07T23:50:41Z","receivedAt":"2011-01-07T23:50:41Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Robin H. Johnson\" <robbat2@gentoo.org> writes:\n\n> On Fri, Jan 07, 2011 at 04:01:48PM -0600, Jonathan Nieder wrote:\n>> This explanation seems quite odd to me.  Are you saying we can't rely\n>> on the 'cvs' name being \"taken\" and should live in fear that someone\n>> will implement an incompatible utility with the same name?  Did that\n>> actually happen?\n> Not in the linked bug report, but it does explain a previous bug I had\n> seen, where a user had a little script in /usr/local/bin that complained\n> at him whenever he ran 'cvs', so he would learn to migrate away faster.\n\nI suspect that NO_CVS is not the best way to help a person who is trying\nto wean herself off of cvs by having a phony cvs in a directory that is\nearly on the $PATH (be it $HOME/bin/cvs or /usr/local/bin/cvs).  Before\nceasing to actively build more histories in cvs, it would help to have an\naccess to git-cvsimport and friends to salvage what's already there, no?\n\nA change that models after PERL_PATH, not after NO_PERL, would be a more\nappropriate thing to do for that particular purpose.\n\nI still think the patch itself is a worthy thing to have, so everything\nabove is a tangent that is orthogonal to what your patch tries to do,\nthough.\n"}]}