{"thread":{"id":"1772","subject":"git-clone seems dead","startedAt":"2005-09-11T18:13:24Z","lastAt":"2005-09-13T11:07:20Z","messageCount":11,"participants":["Peter Eriksen","Junio C Hamano","Greg Louis"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"8310","messageId":"vhp64t7v5ff.fsf@ebar091.ebar.dtu.dk","threadId":"1772","inReplyTo":null,"subject":"git-clone seems dead","fromName":"Peter Eriksen","fromEmail":"s022018@student.dtu.dk","sentAt":"2005-09-11T18:13:24Z","receivedAt":"2005-09-11T18:13:24Z","isPatch":false,"sender":{"key":"s022018@student.dtu.dk","avatar":null},"body":"Hello,\n\nThe command \"git clone\" doesn't work for me, and I have no idea why.\nWhat I want to do is exactly what the tutorial describes:\n\n<cite>\nAgain, this can all be simplified with\n\ngit clone rsync://rsync.kernel.org/pub/scm/git/git.git/ my-git\ncd my-git\ngit checkout\n</cite>\n\nSee\nhttp://kernel.org/git/?p=git/git.git;a=blob;h=6e100dbb60f5756db0f453193e53c28bf947d7cc;hb=720d150c48fc35fca13c6dfb3c76d60e4ee83b87;f=Documentation/tutorial.txt#l652\n\nThe problem is reproduced by the following sequence of commands:\n\nmkdir ~/bin\nwget http://kernel.org/pub/software/scm/git/git-core-0.99.6.tar.gz\ntar -zxf git-core-0.99.6.tar.gz\ncd git-core-0.99.6\nmake\nmake install\ncd ..\ngit clone rsync://rsync.kernel.org/pub/scm/git/git.git/ my-git\n\nAll commands works fine except \"git clone\" which prints:\n\n<cite>\ndefaulting to local storage area\n* git clone [-l [-s]] [-q] [-u <upload-pack>] <repo> <dir>\n</cite>\n\nand leaves my-git/.git empty.  So the problem is, that I can't\nget \"git clone\" to work, and I think, I am making correct steps.\n\nRegards,\n\nPeter\n"},{"id":"8316","messageId":"7vd5nfs9y0.fsf@assigned-by-dhcp.cox.net","threadId":"1772","inReplyTo":"vhp64t7v5ff.fsf@ebar091.ebar.dtu.dk","subject":"Re: git-clone seems dead","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-09-11T19:04:07Z","receivedAt":"2005-09-11T19:04:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Peter Eriksen <s022018@student.dtu.dk> writes:\n\n> All commands works fine except \"git clone\" which prints:\n>\n> <cite>\n> defaulting to local storage area\n> * git clone [-l [-s]] [-q] [-u <upload-pack>] <repo> <dir>\n> </cite>\n>\n> and leaves my-git/.git empty.  So the problem is, that I can't\n> get \"git clone\" to work, and I think, I am making correct steps.\n\nHmph.  All your steps seem sane, and after removing my git\ninstallation on one of my machines I tried the exact steps as\nabove but did not get this.\n\nThe message 'defaulting to local storage area' comes from git-init-db,\nand '* git clone ...' comes from usage.\n\n    dir=\"$2\"\n    mkdir \"$dir\" &&\n    D=$(\n            (cd \"$dir\" && git-init-db && pwd)\n    ) &&\n    test -d \"$D\" || usage\n\nIf you had my-git directory you would get the usage but not\n'defaulting...', so that is not it.  The only possibility I\ncould think of is your 'pwd' says something different than the\nworking directory name?  I am very confused..\n"},{"id":"8331","messageId":"20050911220421.GA14593@athame.dynamicro.on.ca","threadId":"1772","inReplyTo":"7vd5nfs9y0.fsf@assigned-by-dhcp.cox.net","subject":"Re: git-clone seems dead","fromName":"Greg Louis","fromEmail":"glouis@dynamicro.on.ca","sentAt":"2005-09-11T22:04:21Z","receivedAt":"2005-09-11T22:04:21Z","isPatch":false,"sender":{"key":"glouis@dynamicro.on.ca","avatar":null},"body":"On 20050911 (Sun) at 1204:07 -0700, Junio C Hamano wrote:\n> Peter Eriksen <s022018@student.dtu.dk> writes:\n> \n> > All commands works fine except \"git clone\" which prints:\n> >\n> > <cite>\n> > defaulting to local storage area\n> > * git clone [-l [-s]] [-q] [-u <upload-pack>] <repo> <dir>\n> > </cite>\n> >\n> > and leaves my-git/.git empty.  So the problem is, that I can't\n> > get \"git clone\" to work, and I think, I am making correct steps.\n> \n> Hmph.  All your steps seem sane, and after removing my git\n> installation on one of my machines I tried the exact steps as\n> above but did not get this.\n> \n> The message 'defaulting to local storage area' comes from git-init-db,\n> and '* git clone ...' comes from usage.\n> \n>     dir=\"$2\"\n>     mkdir \"$dir\" &&\n>     D=$(\n>             (cd \"$dir\" && git-init-db && pwd)\n>     ) &&\n>     test -d \"$D\" || usage\n> \n> If you had my-git directory you would get the usage but not\n> 'defaulting...', so that is not it.  The only possibility I\n> could think of is your 'pwd' says something different than the\n> working directory name?  I am very confused..\n> \nI had the same.  I was using bash with CDPATH; when CDPATH is in use\nand you do a cd to a relative directory, bash prints the absolute\npathname on stdout during the cd.  So all those relative cd's in $(cd\nxxx && ... && pwd) in git-clone and a few other places cause bash to\nprint the absolute path on stdout, greatly confusing the code that uses\nthe output text that it thinks came from pwd.  I have a patch to add\n&>/dev/null in what I think are all the right places, if you want it,\nbut it may be easiest just to unset CDPATH and see if that fixes the\ntrouble.\n\n-- \n| G r e g  L o u i s         | gpg public key: 0x400B1AA86D9E3E64 |\n|  http://www.bgl.nu/~glouis |   (on my website or any keyserver) |\n|  http://wecanstopspam.org in signatures helps fight junk email. |\n"},{"id":"8332","messageId":"20050911230136.GA15224@athame.dynamicro.on.ca","threadId":"1772","inReplyTo":"20050911220421.GA14593@athame.dynamicro.on.ca","subject":"[PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Greg Louis","fromEmail":"glouis@dynamicro.ca","sentAt":"2005-09-11T23:01:36Z","receivedAt":"2005-09-11T23:01:36Z","isPatch":true,"sender":{"key":"glouis@dynamicro.ca","avatar":null},"body":"Redirect cd output to /dev/null\n\nIf someone has the CDPATH environment variable set, bash echoes the\nfull destination path on stdout when cd is invoked with a relative\ntarget.  This breaks code that uses the output of, for example,\n$(cd somewhere && ... && pwd).  Adding &>/dev/null to the cd\ncommand corrects the breakage in a portable way.\n\nSigned-off-by: Greg Louis <glouis@dynamicro.ca>\n\n---\nOn 20050911 (Sun) at 1804:21 -0400, Greg Louis wrote:\n\n> I have a patch to add\n> &>/dev/null in what I think are all the right places, if you want it,\n> but it may be easiest just to unset CDPATH and see if that fixes the\n> trouble.\n\nHunk 2 of the patch to git-clone.sh fixes the problem described by the\noriginator of this thread (at least it does for me).\n\n git-bisect.sh    |    7 ++++---\n git-clone.sh     |    6 +++---\n git-ls-remote.sh |    2 +-\n git-repack.sh    |    2 +-\n 4 files changed, 9 insertions(+), 8 deletions(-)\n\n018c87b5f7e7af2ca792c3000ce3f91a02108981\ndiff --git a/git-bisect.sh b/git-bisect.sh\n--- a/git-bisect.sh\n+++ b/git-bisect.sh\n@@ -88,7 +88,7 @@ bisect_good() {\n bisect_next_check() {\n \tnext_ok=no\n         test -f \"$GIT_DIR/refs/bisect/bad\" &&\n-\tcase \"$(cd \"$GIT_DIR\" && echo refs/bisect/good-*)\" in\n+\tcase \"$(cd \"$GIT_DIR\" &>/dev/null && echo refs/bisect/good-*)\" in\n \trefs/bisect/good-\\*) ;;\n \t*) next_ok=yes ;;\n \tesac\n@@ -112,7 +112,7 @@ bisect_next() {\n \tbisect_next_check fail\n \tbad=$(git-rev-parse --verify refs/bisect/bad) &&\n \tgood=$(git-rev-parse --sq --revs-only --not \\\n-\t\t$(cd \"$GIT_DIR\" && ls refs/bisect/good-*)) &&\n+\t\t$(cd \"$GIT_DIR\" &>/dev/null  && ls refs/bisect/good-*)) &&\n \trev=$(eval \"git-rev-list --bisect $good $bad\") || exit\n \tif [ -z \"$rev\" ]; then\n \t    echo \"$bad was both good and bad\"\n@@ -133,7 +133,8 @@ bisect_next() {\n \n bisect_visualize() {\n \tbisect_next_check fail\n-\tgitk bisect/bad --not `cd \"$GIT_DIR/refs\" && echo bisect/good-*`\n+\tgitk bisect/bad --not `cd \"$GIT_DIR/refs &>/dev/null\" && \\\n+\t\techo bisect/good-*`\n }\n \n bisect_reset() {\ndiff --git a/git-clone.sh b/git-clone.sh\n--- a/git-clone.sh\n+++ b/git-clone.sh\n@@ -11,7 +11,7 @@ usage() {\n }\n \n get_repo_base() {\n-\t(cd \"$1\" && (cd .git ; pwd)) 2> /dev/null\n+\t(cd \"$1\" &>/dev/null && (cd .git &>/dev/null ; pwd)) 2> /dev/null\n }\n \n if [ -n \"$GIT_SSL_NO_VERIFY\" ]; then\n@@ -89,7 +89,7 @@ fi\n dir=\"$2\"\n mkdir \"$dir\" &&\n D=$(\n-\t(cd \"$dir\" && git-init-db && pwd)\n+\t(cd \"$dir\" &>/dev/null && git-init-db && pwd)\n ) &&\n test -d \"$D\" || usage\n \n@@ -104,7 +104,7 @@ yes,yes)\n \tcase \"$local_shared\" in\n \tno)\n \t    # See if we can hardlink and drop \"l\" if not.\n-\t    sample_file=$(cd \"$repo\" && \\\n+\t    sample_file=$(cd \"$repo\" &>/dev/null && \\\n \t\t\t  find objects -type f -print | sed -e 1q)\n \n \t    # objects directory should not be empty since we are cloning!\ndiff --git a/git-ls-remote.sh b/git-ls-remote.sh\n--- a/git-ls-remote.sh\n+++ b/git-ls-remote.sh\n@@ -48,7 +48,7 @@ http://* | https://* )\n rsync://* )\n \tmkdir $tmpdir\n \trsync -rq \"$peek_repo/refs\" $tmpdir || exit 1\n-\t(cd $tmpdir && find refs -type f) |\n+\t(cd $tmpdir &>/dev/null && find refs -type f) |\n \twhile read path\n \tdo\n \t\tcat \"$tmpdir/$path\" | tr -d '\\012'\ndiff --git a/git-repack.sh b/git-repack.sh\n--- a/git-repack.sh\n+++ b/git-repack.sh\n@@ -33,7 +33,7 @@ case \",$all_into_one,\" in\n \tpack_objects=\n \t# This part is a stop-gap until we have proper pack redundancy\n \t# checker.\n-\texisting=`cd \"$PACKDIR\" && \\\n+\texisting=`cd \"$PACKDIR\" &>/dev/null && \\\n \t    find . -type f \\( -name '*.pack' -o -name '*.idx' \\) -print`\n \t;;\n esac\n\n\n\n-- \n| G r e g  L o u i s         | gpg public key: 0x400B1AA86D9E3E64 |\n|  http://www.bgl.nu/~glouis |   (on my website or any keyserver) |\n|  http://wecanstopspam.org in signatures helps fight junk email. |\n"},{"id":"8356","messageId":"7vwtlnm4zx.fsf@assigned-by-dhcp.cox.net","threadId":"1772","inReplyTo":"20050911230136.GA15224@athame.dynamicro.on.ca","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-09-12T01:47:30Z","receivedAt":"2005-09-12T01:47:30Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I recall somebody else had trouble when we say 'cd blah' in our\nscript and the CDPATH in the user's environment interfere and\ntook us elsewhere.\n\nI do not have any problem with people who have CDPATH defined as\na plain shell variable (not exported) in their interactive\nshells, but I really do not see a point of having CDPATH as an\nenvironment variable, exported to be honored by any unsuspecting\nshell scripts.\n\nUntil somebody convinces me that CDPATH in the environment is a\ngood idea, I do not have much sympathy to people with such an\nenvironment.\n"},{"id":"8368","messageId":"vhpvf167i9q.fsf@erlang.gbar.dtu.dk","threadId":"1772","inReplyTo":"7vwtlnm4zx.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Peter Eriksen","fromEmail":"s022018@student.dtu.dk","sentAt":"2005-09-12T09:22:09Z","receivedAt":"2005-09-12T09:22:09Z","isPatch":true,"sender":{"key":"s022018@student.dtu.dk","avatar":null},"body":"Junio C Hamano <junkio@cox.net> writes:\n...\n> I do not have any problem with people who have CDPATH defined as\n> a plain shell variable (not exported) in their interactive\n> shells, but I really do not see a point of having CDPATH as an\n> environment variable, exported to be honored by any unsuspecting\n> shell scripts.\n\nPoint taken.  I fixed my environment by making CDPATH non-exporting,\nand now git-clone seems to work.  Thanks Greg and Junio!\n\nRegards,\n\nPeter\n"},{"id":"8371","messageId":"20050912105637.GA5290@athame.dynamicro.on.ca","threadId":"1772","inReplyTo":"7vwtlnm4zx.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Greg Louis","fromEmail":"glouis@dynamicro.on.ca","sentAt":"2005-09-12T10:56:37Z","receivedAt":"2005-09-12T10:56:37Z","isPatch":true,"sender":{"key":"glouis@dynamicro.on.ca","avatar":null},"body":"On 20050911 (Sun) at 1847:30 -0700, Junio C Hamano wrote:\n> I really do not see a point of having CDPATH as an            \n> environment variable, exported to be honored by any unsuspecting\n> shell scripts.\n> \nWell, that's why I didn't originally bother submitting the patch -- was \njust going to use it internally.\n  \nI could argue that it's a relatively harmless contribution to\nrobustness of the git scripts, but if someone replied that total\nidiot-proofing isn't a worthwhile goal for a project of this sort, I   \nwouldn't necessarily disagree.\n\n-- \n| G r e g  L o u i s         | gpg public key: 0x400B1AA86D9E3E64 |\n|  http://www.bgl.nu/~glouis |   (on my website or any keyserver) |\n|  http://wecanstopspam.org in signatures helps fight junk email. |\n"},{"id":"8374","messageId":"7vbr2yfp0r.fsf@assigned-by-dhcp.cox.net","threadId":"1772","inReplyTo":"20050912105637.GA5290@athame.dynamicro.on.ca","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-09-12T12:29:08Z","receivedAt":"2005-09-12T12:29:08Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Greg Louis <glouis@dynamicro.on.ca> writes:\n\n> I could argue that it's a relatively harmless contribution to\n> robustness of the git scripts, but if someone replied that total\n> idiot-proofing isn't a worthwhile goal for a project of this sort, I   \n> wouldn't necessarily disagree.\n\nI have been made aware of the CDPATH issue since Carl Baldwin\ndiagnosed it last week, but have not done anything about it\nbecause I am ambivalent about what the right thing to do is.\n\nWe could:\n\n (0) do nothing and let people shoot in the foot themselves.\n\n (1) unset CDPATH silently while we run.  Most conveniently done\n     by doing so at the beginning of git-setup-sh, and scripts\n     that do not use the setup script but still does \"cd\".\n\n (2) detect CDPATH in the same places as (1), complain and die.\n\nAmong these, (1) would be naturally the approach of least\nresistance.  It would make things \"just work\" for everybody, and\nI do not have to deal with bug reports from people with a broken\nenvironment, nor have to waste time preaching why CDPATH as an\nenvironment is bad.\n\nThat, however, would guard only me without helping the world.\nSuch a broken environment would still harm other scripts.  In\nthat sense (2) would be a better approach -- the \"complain and\ndie\" step would make it explicit what we do not like about their\nenvironments.  But that would put me in the position of \"CDPATH\nconsidered harmful\" preacher -- I do not want to waste time on\ndefending that position every time a misguided soul wants to\nkeep CDPATH in his environment for whatever reason.  I may end\nup even explaining the difference between plain shell variable\nand environment variable depending on how misguided that soul is\nX-<.\n\nAnd unlike (1), it would be more baggage to carry around.  It's\nonly difference between 1 line vs 3 to 4 lines of shell scripts,\nbut 1 line just to idiot proof feels far more attractive to me\nthan 4 lines that starts and commits me to a crusade I do not\nparticularly care about.\n\nYes, I do realize that I am contradicting myself when I say (1)\ndoes not help the world but I do not particularly want to spend\ntime and effort on helping the world anyway.  If I really wanted\nto make the world a better place, I should do (2) and be\nprepared to spend some time defending that position.  Otherwise\nI should just weasel out of the problem by doing (1), keep\nsilent about the issue, let other people who supply scripted\nsolution suffer and call it their problem.\n\nI would probably end up doing (1), though.\n"},{"id":"8401","messageId":"20050912163637.GA22018@athame.dynamicro.on.ca","threadId":"1772","inReplyTo":"7vbr2yfp0r.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Greg Louis","fromEmail":"glouis@dynamicro.on.ca","sentAt":"2005-09-12T16:36:37Z","receivedAt":"2005-09-12T16:36:37Z","isPatch":true,"sender":{"key":"glouis@dynamicro.on.ca","avatar":null},"body":"On 20050912 (Mon) at 0529:08 -0700, Junio C Hamano wrote:\n> Greg Louis <glouis@dynamicro.on.ca> writes:\n> \n> > I could argue that it's a relatively harmless contribution to\n> > robustness of the git scripts, but if someone replied that total\n> > idiot-proofing isn't a worthwhile goal for a project of this sort, I   \n> > wouldn't necessarily disagree.\n> \n> We could:\n> \n>  (0) do nothing and let people shoot in the foot themselves.\n> \n>  (1) unset CDPATH silently while we run.  Most conveniently done\n>      by doing so at the beginning of git-setup-sh, and scripts\n>      that do not use the setup script but still does \"cd\".\n> \n>  (2) detect CDPATH in the same places as (1), complain and die.\n\nOr (2+1==3) detect CDPATH in the same places as (1), complain with a\nbrief explanation (\"don't export CDPATH; it's really only useful in\ninteractive shells\") and unset it.  That way we'd educate, in a friendly\nway, people who thought they needed it for some reason, or who just\nnever noticed their vendor's /etc/profile was exporting the damn thing.\n\n> Among these, (1) would be naturally the approach of least\n> resistance.  It would make things \"just work\" for everybody,\n\nMy patch was about the equivalent of (1), and (1) is what I'd feel\nwas the most that git owes its users.  Option (0) could be justified on\nthe grounds that git users are presumably developers and ought to be\nable to catch that sort of blunder, but the facts that you didn't\noriginally twig to it, and that it took me a couple of hours to find it\nindependently, suggest that that's too cavalier an attitude (neither of\nus being a tyro).  Option (3) does qualify as excess baggage IMHO, and\noption (2) as a bit unhelpfully pedantic.\n\n> I would probably end up doing (1), though.\n\nAs would I if the decision were mine. \n\n(btw I'm on the list -- no Cc: needed)\n-- \n| G r e g  L o u i s         | gpg public key: 0x400B1AA86D9E3E64 |\n|  http://www.bgl.nu/~glouis |   (on my website or any keyserver) |\n|  http://wecanstopspam.org in signatures helps fight junk email. |\n"},{"id":"8414","messageId":"7v3boaawra.fsf@assigned-by-dhcp.cox.net","threadId":"1772","inReplyTo":"20050912163637.GA22018@athame.dynamicro.on.ca","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-09-12T19:53:13Z","receivedAt":"2005-09-12T19:53:13Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Greg Louis <glouis@dynamicro.on.ca> writes:\n\n> Or (2+1==3) detect CDPATH in the same places as (1), complain with a\n> brief explanation (\"don't export CDPATH; it's really only useful in\n> interactive shells\") and unset it.\n\nI like your wording above, so probably that is what is going to\nhappen.  Thanks for the suggestion.\n\n> My patch was about the equivalent of (1), and (1) is what I'd feel\n> was the most that git owes its users.\n\nCDPATH has two problems.  1. It takes scripts to unexpected\nplaces (somebody had CDPATH=..:../..:$HOME and the \"cd\" in\ngit-clone.sh:get_repo_base took him to $HOME/.git when he said\n\"clone foo bar\" to clone a repository in \"foo\" which had\n\"foo/.git\").  CDPATH mechanism does not implicitly give \".\" at\nthe beginning of CDPATH, which is the most irritating part.\n2. the extra echo when it does its thing.\n\nI was under the impression that the patch fixed 2. without doing\nanything about 1., but I may be mistaken.\n\n> Option (0) could be justified on the grounds that git users\n> are presumably developers and ought to be able to catch that\n> sort of blunder, but the facts that you didn't originally twig\n> to it, and that it took me a couple of hours to find it\n> independently, suggest that that's too cavalier an attitude\n> (neither of us being a tyro).\n\nMaybe.  I did not trigger it and did not immediately spot what\nwas wrong when I heard the symptom because I do not use CDPATH\nanywhere myself -- I am old fashioned ;-).\n"},{"id":"8459","messageId":"20050913110720.GA4826@athame.dynamicro.on.ca","threadId":"1772","inReplyTo":"7v3boaawra.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Redirect cd output to /dev/null, was: git-clone seems dead","fromName":"Greg Louis","fromEmail":"glouis@dynamicro.on.ca","sentAt":"2005-09-13T11:07:20Z","receivedAt":"2005-09-13T11:07:20Z","isPatch":true,"sender":{"key":"glouis@dynamicro.on.ca","avatar":null},"body":"On 20050912 (Mon) at 1253:13 -0700, Junio C Hamano wrote:\n> Greg Louis <glouis@dynamicro.on.ca> writes:\n> \n> > Or (2+1==3) detect CDPATH in the same places as (1), complain with a\n> > brief explanation (\"don't export CDPATH; it's really only useful in\n> > interactive shells\") and unset it.\n> \n> I like your wording above, so probably that is what is going to\n> happen.  Thanks for the suggestion.\n\nYou're very welcome.\n\n> CDPATH has two problems.  1. It takes scripts to unexpected\n> places (somebody had CDPATH=..:../..:$HOME and the \"cd\" in\n> git-clone.sh:get_repo_base took him to $HOME/.git when he said\n> \"clone foo bar\" to clone a repository in \"foo\" which had\n> \"foo/.git\").  CDPATH mechanism does not implicitly give \".\" at\n> the beginning of CDPATH, which is the most irritating part.\n> 2. the extra echo when it does its thing.\n> \n> I was under the impression that the patch fixed 2. without doing\n> anything about 1., but I may be mistaken.\n\nOh, I agree entirely that unsetting CDPATH altogether is cleaner and\nmore complete (and much less ugly) than putting &>/dev/null all over\nthe place.  I should have said something like, \"My patch is\n_philosophically_ about equivalent to (1)\" to make it clear I was\nreferring to the context, ie the alternative approaches you had\nproposed.\n\n-- \n| G r e g  L o u i s         | gpg public key: 0x400B1AA86D9E3E64 |\n|  http://www.bgl.nu/~glouis |   (on my website or any keyserver) |\n|  http://wecanstopspam.org in signatures helps fight junk email. |\n"}]}