{"thread":{"id":"34287","subject":"[PATCH] Do not call built-in aliases from scripts","startedAt":"2013-06-27T12:47:54Z","lastAt":"2013-06-28T20:43:31Z","messageCount":14,"participants":["Sebastian Schuberth","Junio C Hamano","John Szakmeister","John Keeping","Johannes Schindelin","Johannes Sixt"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"222075","messageId":"CAHGBnuNUjaWH2UDsa6jGjf32M+b8-iezw4pKXR985mROFSLOKQ@mail.gmail.com","threadId":"34287","inReplyTo":null,"subject":"[PATCH] Do not call built-in aliases from scripts","fromName":"Sebastian Schuberth","fromEmail":"sschuberth@gmail.com","sentAt":"2013-06-27T12:47:54Z","receivedAt":"2013-06-27T12:47:54Z","isPatch":true,"sender":{"key":"sschuberth@gmail.com","avatar":"https://avatars.githubusercontent.com/u/349154?v=4"},"body":"Call built-in commands via the main executable (non-dashed form) without\nrelying on the aliases (dashed form) to be present. On some platforms,\ne.g. those that do not properly support file system links, it is\ninconvenient to ship the built-in aliases, so do not depend on their\npresence.\n\nSigned-off-by: Sebastian Schuberth <sschuberth@gmail.com>\n---\n git-am.sh                |  6 ++---\n git-archimport.perl      | 68 ++++++++++++++++++++++++------------------------\n git-cvsexportcommit.perl | 18 ++++++-------\n git-cvsserver.perl       | 50 +++++++++++++++++------------------\n git-merge-octopus.sh     |  2 +-\n git-merge-one-file.sh    |  8 +++---\n git-merge-resolve.sh     |  2 +-\n git-parse-remote.sh      |  2 +-\n git-pull.sh              |  2 +-\n git-stash.sh             |  2 +-\n git-submodule.sh         |  8 +++---\n 11 files changed, 84 insertions(+), 84 deletions(-)\n\ndiff --git a/git-am.sh b/git-am.sh\nindex 9f44509..ad67194 100755\n--- a/git-am.sh\n+++ b/git-am.sh\n@@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n u,utf8          recode into utf8 (default)\n k,keep          pass -k flag to git-mailinfo\n keep-non-patch  pass -b flag to git-mailinfo\n-keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n-no-keep-cr      do not pass --keep-cr flag to git-mailsplit\nindependent of am.keepcr\n+keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n+no-keep-cr      do not pass --keep-cr flag to git mailsplit\nindependent of am.keepcr\n c,scissors      strip everything before a scissors line\n whitespace=     pass it through git-apply\n ignore-space-change pass it through git-apply\n@@ -174,7 +174,7 @@ It does not apply to blobs recorded in its index.\")\"\n     then\n \t    GIT_MERGE_VERBOSITY=0 && export GIT_MERGE_VERBOSITY\n     fi\n-    git-merge-recursive $orig_tree -- HEAD $his_tree || {\n+    git merge-recursive $orig_tree -- HEAD $his_tree || {\n \t    git rerere $allow_rerere_autoupdate\n \t    die \"$(gettext \"Failed to merge in the changes.\")\"\n     }\ndiff --git a/git-archimport.perl b/git-archimport.perl\nindex 9cb123a..ed2c741 100755\n--- a/git-archimport.perl\n+++ b/git-archimport.perl\n@@ -343,10 +343,10 @@ sub process_patchset_accurate {\n\n     # switch to that branch if we're not already in that branch:\n     if (-e \"$git_dir/refs/heads/$ps->{branch}\") {\n-       system('git-checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n+       system('git','checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n\n        # remove any old stuff that got leftover:\n-       my $rm = safe_pipe_capture('git-ls-files','--others','-z');\n+       my $rm = safe_pipe_capture('git','ls-files','--others','-z');\n        rmtree(split(/\\0/,$rm)) if $rm;\n     }\n\n@@ -367,7 +367,7 @@ sub process_patchset_accurate {\n\n             # find where we are supposed to branch from\n \t    if (! -e \"$git_dir/refs/heads/$ps->{branch}\") {\n-\t\tsystem('git-branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n+\t\tsystem('git','branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n\n \t\t# We trust Arch with the fact that this is just a tag,\n \t\t# and it does not affect the state of the tree, so\n@@ -378,10 +378,10 @@ sub process_patchset_accurate {\n \t\tptag($ps->{id}, $branchpoint);\n \t\tprint \" * Tagged $ps->{id} at $branchpoint\\n\";\n \t    }\n-\t    system('git-checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n+\t    system('git','checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n\n             # remove any old stuff that got leftover:\n-            my $rm = safe_pipe_capture('git-ls-files','--others','-z');\n+            my $rm = safe_pipe_capture('git','ls-files','--others','-z');\n             rmtree(split(/\\0/,$rm)) if $rm;\n             return 0;\n         } else {\n@@ -392,10 +392,10 @@ sub process_patchset_accurate {\n     }\n\n     # update the index with all the changes we got\n-    system('git-diff-files --name-only -z | '.\n-            'git-update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n-    system('git-ls-files --others -z | '.\n-            'git-update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n+    system('git diff-files --name-only -z | '.\n+            'git update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n+    system('git ls-files --others -z | '.\n+            'git update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n     return 1;\n }\n\n@@ -413,7 +413,7 @@ sub process_patchset_fast {\n     unless ($import) { # skip for import\n         if ( -e \"$git_dir/refs/heads/$ps->{branch}\") {\n             # we know about this branch\n-            system('git-checkout',$ps->{branch});\n+            system('git','checkout',$ps->{branch});\n         } else {\n             # new branch! we need to verify a few things\n             die \"Branch on a non-tag!\" unless $ps->{type} eq 't';\n@@ -423,7 +423,7 @@ sub process_patchset_fast {\n\n             # find where we are supposed to branch from\n \t    if (! -e \"$git_dir/refs/heads/$ps->{branch}\") {\n-\t\tsystem('git-branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n+\t\tsystem('git','branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n\n \t\t# We trust Arch with the fact that this is just a tag,\n \t\t# and it does not affect the state of the tree, so\n@@ -434,7 +434,7 @@ sub process_patchset_fast {\n \t\tptag($ps->{id}, $branchpoint);\n \t\tprint \" * Tagged $ps->{id} at $branchpoint\\n\";\n             }\n-            system('git-checkout',$ps->{branch}) == 0 or die \"$! $?\\n\";\n+            system('git','checkout',$ps->{branch}) == 0 or die \"$! $?\\n\";\n             return 0;\n         }\n         die $! if $?;\n@@ -465,10 +465,10 @@ sub process_patchset_fast {\n     # imports don't give us good info\n     # on added files. Shame on them\n     if ($ps->{type} eq 'i' || $ps->{type} eq 't') {\n-        system('git-ls-files --deleted -z | '.\n-                'git-update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n-        system('git-ls-files --others -z | '.\n-                'git-update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n+        system('git ls-files --deleted -z | '.\n+                'git update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n+        system('git ls-files --others -z | '.\n+                'git update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n     }\n\n     # TODO: handle removed_directories and renamed_directories:\n@@ -477,8 +477,8 @@ sub process_patchset_fast {\n         unlink @$del;\n         while (@$del) {\n             my @slice = splice(@$del, 0, 100);\n-            system('git-update-index','--remove','--',@slice) == 0 or\n-                            die \"Error in git-update-index --remove: $! $?\\n\";\n+            system('git update-index','--remove','--',@slice) == 0 or\n+                            die \"Error in git update-index --remove: $! $?\\n\";\n         }\n     }\n\n@@ -496,25 +496,25 @@ sub process_patchset_fast {\n             }\n             # print \"moving $from $to\";\n             rename($from, $to) or die \"Error renaming '$from' '$to': $!\\n\";\n-            system('git-update-index','--remove','--',$from) == 0 or\n-                            die \"Error in git-update-index --remove: $! $?\\n\";\n-            system('git-update-index','--add','--',$to) == 0 or\n-                            die \"Error in git-update-index --add: $! $?\\n\";\n+            system('git update-index','--remove','--',$from) == 0 or\n+                            die \"Error in git update-index --remove: $! $?\\n\";\n+            system('git update-index','--add','--',$to) == 0 or\n+                            die \"Error in git update-index --add: $! $?\\n\";\n         }\n     }\n\n     if (my $add = $ps->{new_files}) {\n         while (@$add) {\n             my @slice = splice(@$add, 0, 100);\n-            system('git-update-index','--add','--',@slice) == 0 or\n-                            die \"Error in git-update-index --add: $! $?\\n\";\n+            system('git update-index','--add','--',@slice) == 0 or\n+                            die \"Error in git update-index --add: $! $?\\n\";\n         }\n     }\n\n     if (my $mod = $ps->{modified_files}) {\n         while (@$mod) {\n             my @slice = splice(@$mod, 0, 100);\n-            system('git-update-index','--',@slice) == 0 or\n+            system('git update-index','--',@slice) == 0 or\n                             die \"Error in git-update-index: $! $?\\n\";\n         }\n     }\n@@ -593,7 +593,7 @@ foreach my $ps (@psets) {\n     $ENV{GIT_COMMITTER_EMAIL} = $ps->{email};\n     $ENV{GIT_COMMITTER_DATE}  = $ps->{date};\n\n-    my $pid = open2(*READER, *WRITER,'git-commit-tree',$tree,@par)\n+    my $pid = open2(*READER, *WRITER,'git','commit-tree',$tree,@par)\n         or die $!;\n     print WRITER $ps->{summary},\"\\n\\n\";\n\n@@ -620,7 +620,7 @@ foreach my $ps (@psets) {\n     open  HEAD, \">\",\"$git_dir/refs/heads/$ps->{branch}\";\n     print HEAD $commitid;\n     close HEAD;\n-    system('git-update-ref', 'HEAD', \"$ps->{branch}\");\n+    system('git', 'update-ref', 'HEAD', \"$ps->{branch}\");\n\n     # tag accordingly\n     ptag($ps->{id}, $commitid); # private tag\n@@ -945,7 +945,7 @@ sub find_parents {\n     #\n     # Identify what branches are merging into me\n     # and whether we are fully merged\n-    # git-merge-base <headsha> <headsha> should tell\n+    # git merge-base <headsha> <headsha> should tell\n     # me what the base of the merge should be\n     #\n     my $ps = shift;\n@@ -983,7 +983,7 @@ sub find_parents {\n \t# check that we actually know about the branch\n \tnext unless -e \"$git_dir/refs/heads/$branch\";\n\n-\tmy $mergebase = `git-merge-base $branch $ps->{branch}`;\n+\tmy $mergebase = `git merge-base $branch $ps->{branch}`;\n \tif ($?) {\n \t    # Don't die here, Arch supports one-way cherry-picking\n \t    # between branches with no common base (or any relationship\n@@ -995,7 +995,7 @@ sub find_parents {\n\n \t# now walk up to the mergepoint collecting what patches we have\n \tmy $branchtip = git_rev_parse($ps->{branch});\n-\tmy @ancestors = `git-rev-list --topo-order $branchtip ^$mergebase`;\n+\tmy @ancestors = `git rev-list --topo-order $branchtip ^$mergebase`;\n \tmy %have; # collected merges this branch has\n \tforeach my $merge (@{$ps->{merges}}) {\n \t    $have{$merge} = 1;\n@@ -1018,11 +1018,11 @@ sub find_parents {\n \t# see what the remote branch has - these are the merges we\n \t# will want to have in a consecutive series from the mergebase\n \tmy $otherbranchtip = git_rev_parse($branch);\n-\tmy @needraw = `git-rev-list --topo-order $otherbranchtip ^$mergebase`;\n+\tmy @needraw = `git rev-list --topo-order $otherbranchtip ^$mergebase`;\n \tmy @need;\n \tforeach my $needps (@needraw) { \t# get the psets\n \t    $needps = commitid2pset($needps);\n-\t    # git-rev-list will also\n+\t    # git rev-list will also\n \t    # list commits merged in via earlier\n \t    # merges. we are only interested in commits\n \t    # from the branch we're looking at\n@@ -1074,8 +1074,8 @@ sub find_parents {\n\n sub git_rev_parse {\n     my $name = shift;\n-    my $val  = `git-rev-parse $name`;\n-    die \"Error: git-rev-parse $name\" if $?;\n+    my $val  = `git rev-parse $name`;\n+    die \"Error: git rev-parse $name\" if $?;\n     chomp $val;\n     return $val;\n }\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex d13f02d..6718bad 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -18,7 +18,7 @@ $opt_h && usage();\n\n die \"Need at least one commit identifier!\" unless @ARGV;\n\n-# Get git-config settings\n+# Get git config settings\n my $repo = Git->repository();\n $opt_w = $repo->config('cvsexportcommit.cvsdir') unless defined $opt_w;\n\n@@ -26,7 +26,7 @@ if ($opt_w || $opt_W) {\n \t# Remember where GIT_DIR is before changing to CVS checkout\n \tunless ($ENV{GIT_DIR}) {\n \t\t# No GIT_DIR set. Figure it out for ourselves\n-\t\tmy $gd =`git-rev-parse --git-dir`;\n+\t\tmy $gd =`git rev-parse --git-dir`;\n \t\tchomp($gd);\n \t\t$ENV{GIT_DIR} = $gd;\n \t}\n@@ -62,7 +62,7 @@ if ($opt_d) {\n # resolve target commit\n my $commit;\n $commit = pop @ARGV;\n-$commit = safe_pipe_capture('git-rev-parse', '--verify', \"$commit^0\");\n+$commit = safe_pipe_capture('git', 'rev-parse', '--verify', \"$commit^0\");\n chomp $commit;\n if ($?) {\n     die \"The commit reference $commit did not resolve!\";\n@@ -72,7 +72,7 @@ if ($?) {\n my $parent;\n if (@ARGV) {\n     $parent = pop @ARGV;\n-    $parent =  safe_pipe_capture('git-rev-parse', '--verify', \"$parent^0\");\n+    $parent =  safe_pipe_capture('git', 'rev-parse', '--verify', \"$parent^0\");\n     chomp $parent;\n     if ($?) {\n \tdie \"The parent reference did not resolve!\";\n@@ -80,7 +80,7 @@ if (@ARGV) {\n }\n\n # find parents from the commit itself\n-my @commit  = safe_pipe_capture('git-cat-file', 'commit', $commit);\n+my @commit  = safe_pipe_capture('git', 'cat-file', 'commit', $commit);\n my @parents;\n my $committer;\n my $author;\n@@ -158,9 +158,9 @@ if ($opt_a) {\n close MSG;\n\n if ($parent eq $noparent) {\n-    `git-diff-tree --binary -p --root $commit\n>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n+    `git diff-tree --binary -p --root $commit\n>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n } else {\n-    `git-diff-tree --binary -p $parent $commit\n>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n+    `git diff-tree --binary -p $parent $commit\n>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n }\n\n ## apply non-binary changes\n@@ -174,7 +174,7 @@ my $context = $opt_p ? '' : '-C1';\n print \"Checking if patch will apply\\n\";\n\n my @stat;\n-open APPLY, \"GIT_DIR= git-apply $context --summary\n--numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n+open APPLY, \"GIT_DIR= git apply $context --summary\n--numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n @stat=<APPLY>;\n close APPLY || die \"Cannot patch\";\n my (@bfiles,@files,@afiles,@dfiles);\n@@ -329,7 +329,7 @@ print \"Applying\\n\";\n if ($opt_W) {\n     system(\"git checkout -q $commit^0\") && die \"cannot patch\";\n } else {\n-    `GIT_DIR= git-apply $context --summary --numstat --apply\n<.cvsexportcommit.diff` || die \"cannot patch\";\n+    `GIT_DIR= git apply $context --summary --numstat --apply\n<.cvsexportcommit.diff` || die \"cannot patch\";\n }\n\n print \"Patch applied successfully. Adding new files and directories to CVS\\n\";\ndiff --git a/git-cvsserver.perl b/git-cvsserver.perl\nindex a0d796e..53c136f 100755\n--- a/git-cvsserver.perl\n+++ b/git-cvsserver.perl\n@@ -358,10 +358,10 @@ sub req_Root\n\n     my @gitvars = `git config -l`;\n     if ($?) {\n-       print \"E problems executing git-config on the server -- this\nis not a git repository or the PATH is not set correctly.\\n\";\n+        print \"E problems executing git config on the server -- this\nis not a git repository or the PATH is not set correctly.\\n\";\n         print \"E \\n\";\n         print \"error 1 - problem executing git-config\\n\";\n-       return 0;\n+        return 0;\n     }\n     foreach my $line ( @gitvars )\n     {\n@@ -1626,7 +1626,7 @@ sub req_ci\n         if ($wrev) {\n             system('git', 'checkout-index', '-f', '-u', $filename);\n             unless ($? == 0) {\n-                die \"Error running git-checkout-index -f -u $filename : $!\";\n+                die \"Error running git checkout-index -f -u $filename : $!\";\n             }\n         }\n\n@@ -1716,7 +1716,7 @@ sub req_ci\n         exit;\n     }\n\n-\t### Emulate git-receive-pack by running hooks/update\n+\t### Emulate git receive-pack by running hooks/update\n \tmy @hook = ( $ENV{GIT_DIR}.'hooks/update', $branchRef,\n \t\t\t$parenthash, $commithash );\n \tif( -x $hook[0] ) {\n@@ -1738,7 +1738,7 @@ sub req_ci\n \t\texit;\n \t}\n\n-\t### Emulate git-receive-pack by running hooks/post-receive\n+\t### Emulate git receive-pack by running hooks/post-receive\n \tmy $hook = $ENV{GIT_DIR}.'hooks/post-receive';\n \tif( -x $hook ) {\n \t\topen(my $pipe, \"| $hook\") || die \"can't fork $!\";\n@@ -2328,7 +2328,7 @@ sub req_annotate\n \tsystem(\"git\", \"read-tree\", $lastseenin);\n \tunless ($? == 0)\n \t{\n-\t    print \"E error running git-read-tree $lastseenin\n$ENV{GIT_INDEX_FILE} $!\\n\";\n+\t    print \"E error running git read-tree $lastseenin\n$ENV{GIT_INDEX_FILE} $!\\n\";\n \t    return;\n \t}\n \t$log->info(\"Created index '$ENV{GIT_INDEX_FILE}' with commit\n$lastseenin - exit status $?\");\n@@ -2336,7 +2336,7 @@ sub req_annotate\n         # do a checkout of the file\n         system('git', 'checkout-index', '-f', '-u', $filename);\n         unless ($? == 0) {\n-            print \"E error running git-checkout-index -f -u $filename : $!\\n\";\n+            print \"E error running git checkout-index -f -u $filename : $!\\n\";\n             return;\n         }\n\n@@ -2886,7 +2886,7 @@ sub transmitfile\n         }\n         close $fh or die (\"Couldn't close filehandle for transmitfile(): $!\");\n     } else {\n-        die(\"Couldn't execute git-cat-file\");\n+        die(\"Couldn't execute git cat-file\");\n     }\n }\n\n@@ -3008,8 +3008,8 @@ sub setupWorkTree\n         system(\"git\",\"read-tree\",$ver);\n         unless ($? == 0)\n         {\n-            $log->warn(\"Error running git-read-tree\");\n-            die \"Error running git-read-tree $ver in $work->{workDir} $!\\n\";\n+            $log->warn(\"Error running git read-tree\");\n+            die \"Error running git read-tree $ver in $work->{workDir} $!\\n\";\n         }\n     }\n     # else # req_annotate reads tree for each file\n@@ -3062,7 +3062,7 @@ sub ensureWorkTree\n     system(\"git\",\"read-tree\",$ver);\n     unless ($? == 0)\n     {\n-        die \"Error running git-read-tree $ver $!\\n\";\n+        die \"Error running git read-tree $ver $!\\n\";\n     }\n }\n\n@@ -3829,7 +3829,7 @@ sub update\n     } else {\n         push @git_log_params, $self->{module};\n     }\n-    # git-rev-list is the backend / plumbing version of git-log\n+    # git rev-list is the backend / plumbing version of git-log\n     open(my $gitLogPipe, '-|', 'git', 'rev-list', @git_log_params)\n                 or die \"Cannot call git-rev-list: $!\";\n     my @commits=readCommits($gitLogPipe);\n@@ -3878,7 +3878,7 @@ sub update\n                     if ($parent eq $lastpicked) {\n                         next;\n                     }\n-                    # git-merge-base can potentially (but rarely) throw\n+                    # git merge-base can potentially (but rarely) throw\n                     # several candidate merge bases. let's assume\n                     # that the first one is the best one.\n \t\t    my $base = eval {\n@@ -3936,14 +3936,14 @@ sub update\n\n         if ( defined ( $lastpicked ) )\n         {\n-            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n'-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call\ngit-diff-tree : $!\");\n+            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n'-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call git\ndiff-tree : $!\");\n \t    local ($/) = \"\\0\";\n             while ( <FILELIST> )\n             {\n \t\tchomp;\n                 unless (\n/^:\\d{6}\\s+([0-7]{6})\\s+[a-f0-9]{40}\\s+([a-f0-9]{40})\\s+(\\w)$/o )\n                 {\n-                    die(\"Couldn't process git-diff-tree line : $_\");\n+                    die(\"Couldn't process git diff-tree line : $_\");\n                 }\n \t\tmy ($mode, $hash, $change) = ($1, $2, $3);\n \t\tmy $name = <FILELIST>;\n@@ -4006,14 +4006,14 @@ sub update\n             # this is used to detect files removed from the repo\n             my $seen_files = {};\n\n-            my $filepipe = open(FILELIST, '-|', 'git', 'ls-tree',\n'-z', '-r', $commit->{hash}) or die(\"Cannot call git-ls-tree : $!\");\n+            my $filepipe = open(FILELIST, '-|', 'git', 'ls-tree',\n'-z', '-r', $commit->{hash}) or die(\"Cannot call git ls-tree : $!\");\n \t    local $/ = \"\\0\";\n             while ( <FILELIST> )\n             {\n \t\tchomp;\n                 unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n                 {\n-                    die(\"Couldn't process git-ls-tree line : $_\");\n+                    die(\"Couldn't process git ls-tree line : $_\");\n                 }\n\n                 my ( $mode, $git_type, $git_hash, $git_filename ) = (\n$1, $2, $3, $4 );\n@@ -4312,7 +4312,7 @@ sub getAnyHead\n     my @files;\n     {\n         open(my $filePipe, '-|', 'git', 'ls-tree', '-z', '-r', $hash)\n-                or die(\"Cannot call git-ls-tree : $!\");\n+                or die(\"Cannot call git ls-tree : $!\");\n         local $/ = \"\\0\";\n         @files=<$filePipe>;\n         close $filePipe;\n@@ -4325,7 +4325,7 @@ sub getAnyHead\n         $line=~s/\\0$//;\n         unless ( $line=~/^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n         {\n-            die(\"Couldn't process git-ls-tree line : $_\");\n+            die(\"Couldn't process git ls-tree line : $_\");\n         }\n\n         my($mode, $git_type, $git_hash, $git_filename) = ($1, $2, $3, $4);\n@@ -4391,14 +4391,14 @@ sub getRevisionDirMap\n         }\n\n         open(my $filePipe, '-|', 'git', 'ls-tree', '-z', '-r', $hash)\n-                or die(\"Cannot call git-ls-tree : $!\");\n+                or die(\"Cannot call git ls-tree : $!\");\n         local $/ = \"\\0\";\n         while ( <$filePipe> )\n         {\n             chomp;\n             unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n             {\n-                die(\"Couldn't process git-ls-tree line : $_\");\n+                die(\"Couldn't process git ls-tree line : $_\");\n             }\n\n             my($mode, $git_type, $git_hash, $git_filename) = ($1, $2, $3, $4);\n@@ -4692,7 +4692,7 @@ sub getMetaFromCommithash\n\n     # NOTE: This function doesn't scale well (lots of forks), especially\n     #   if you have many files that have not been modified for many commits\n-    #   (each git-rev-parse redoes a lot of work for each file\n+    #   (each git rev-parse redoes a lot of work for each file\n     #   that theoretically could be done in parallel by smarter\n     #   graph traversal).\n     #\n@@ -4796,20 +4796,20 @@ sub getMetaFromCommithash\n     # meta data about $filename:\n     open(my $filePipe, '-|', 'git', 'ls-tree', '-z',\n                 $commit->{hash}, '--', $filename)\n-            or die(\"Cannot call git-ls-tree : $!\");\n+            or die(\"Cannot call git ls-tree : $!\");\n     local $/ = \"\\0\";\n     my $line;\n     $line=<$filePipe>;\n     if(defined(<$filePipe>))\n     {\n-        die \"Expected only a single file for git-ls-tree $filename\\n\";\n+        die \"Expected only a single file for git ls-tree $filename\\n\";\n     }\n     close $filePipe;\n\n     chomp $line;\n     unless ( $line=~m/^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n     {\n-        die(\"Couldn't process git-ls-tree line : $line\\n\");\n+        die(\"Couldn't process git ls-tree line : $line\\n\");\n     }\n     my ( $mode, $git_type, $git_hash, $git_filename ) = ( $1, $2, $3, $4 );\n\ndiff --git a/git-merge-octopus.sh b/git-merge-octopus.sh\nindex 8643f74..ec1d65b 100755\n--- a/git-merge-octopus.sh\n+++ b/git-merge-octopus.sh\n@@ -97,7 +97,7 @@ do\n \tif test $? -ne 0\n \tthen\n \t\techo \"Simple merge did not work, trying automatic merge.\"\n-\t\tgit-merge-index -o git-merge-one-file -a ||\n+\t\tgit merge-index -o git-merge-one-file -a ||\n \t\tOCTOPUS_FAILURE=1\n \t\tnext=$(git write-tree 2>/dev/null)\n \tfi\ndiff --git a/git-merge-one-file.sh b/git-merge-one-file.sh\nindex 07dfeb8..b6d6297 100755\n--- a/git-merge-one-file.sh\n+++ b/git-merge-one-file.sh\n@@ -107,17 +107,17 @@ case \"${1:-.}${2:-.}${3:-.}\" in\n \t\t;;\n \tesac\n\n-\tsrc1=$(git-unpack-file $2)\n-\tsrc2=$(git-unpack-file $3)\n+\tsrc1=$(git unpack-file $2)\n+\tsrc2=$(git unpack-file $3)\n \tcase \"$1\" in\n \t'')\n \t\techo \"Added $4 in both, but differently.\"\n-\t\torig=$(git-unpack-file $2)\n+\t\torig=$(git unpack-file $2)\n \t\tcreate_virtual_base \"$orig\" \"$src2\"\n \t\t;;\n \t*)\n \t\techo \"Auto-merging $4\"\n-\t\torig=$(git-unpack-file $1)\n+\t\torig=$(git unpack-file $1)\n \t\t;;\n \tesac\n\ndiff --git a/git-merge-resolve.sh b/git-merge-resolve.sh\nindex c9da747..343fe7b 100755\n--- a/git-merge-resolve.sh\n+++ b/git-merge-resolve.sh\n@@ -45,7 +45,7 @@ then\n \texit 0\n else\n \techo \"Simple merge failed, trying Automatic merge.\"\n-\tif git-merge-index -o git-merge-one-file -a\n+\tif git merge-index -o git-merge-one-file -a\n \tthen\n \t\texit 0\n \telse\ndiff --git a/git-parse-remote.sh b/git-parse-remote.sh\nindex 0e87e09..baf3041 100644\n--- a/git-parse-remote.sh\n+++ b/git-parse-remote.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n\n-# git-ls-remote could be called from outside a git managed repository;\n+# git ls-remote could be called from outside a git managed repository;\n # this would fail in that case and would issue an error message.\n GIT_DIR=$(git rev-parse -q --git-dir) || :;\n\ndiff --git a/git-pull.sh b/git-pull.sh\nindex 638aabb..a7c837b 100755\n--- a/git-pull.sh\n+++ b/git-pull.sh\n@@ -289,7 +289,7 @@ true)\n \teval=\"$eval --onto $merge_head ${oldremoteref:-$merge_head}\"\n \t;;\n *)\n-\teval=\"git-merge $diffstat $no_commit $verify_signatures $edit\n$squash $no_ff $ff_only\"\n+\teval=\"git merge $diffstat $no_commit $verify_signatures $edit\n$squash $no_ff $ff_only\"\n \teval=\"$eval  $log_arg $strategy_args $merge_args $verbosity $progress\"\n \teval=\"$eval \\\"\\$merge_name\\\" HEAD $merge_head\"\n \t;;\ndiff --git a/git-stash.sh b/git-stash.sh\nindex bbefdf6..26a699b 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -429,7 +429,7 @@ apply_stash () {\n\n \tif test -n \"$u_tree\"\n \tthen\n-\t\tGIT_INDEX_FILE=\"$TMPindex\" git-read-tree \"$u_tree\" &&\n+\t\tGIT_INDEX_FILE=\"$TMPindex\" git read-tree \"$u_tree\" &&\n \t\tGIT_INDEX_FILE=\"$TMPindex\" git checkout-index --all &&\n \t\trm -f \"$TMPindex\" ||\n \t\tdie 'Could not restore untracked files from stash'\ndiff --git a/git-submodule.sh b/git-submodule.sh\nindex eb58c8e..a9392cf 100755\n--- a/git-submodule.sh\n+++ b/git-submodule.sh\n@@ -162,7 +162,7 @@ die_if_unmatched ()\n # $2 = option name\n # $3 = default value\n #\n-# Checks in the usual git-config places first (for overrides),\n+# Checks in the usual git config places first (for overrides),\n # otherwise it falls back on .gitmodules.  This allows you to\n # distribute project-wide defaults in .gitmodules, while still\n # customizing individual repositories if necessary.  If the option is\n@@ -951,7 +951,7 @@ cmd_summary() {\n \t\t\t# Always show modules deleted or type-changed (blob<->module)\n \t\t\ttest $status = D -o $status = T && echo \"$name\" && continue\n \t\t\t# Also show added or modified modules which are checked out\n-\t\t\tGIT_DIR=\"$name/.git\" git-rev-parse --git-dir >/dev/null 2>&1 &&\n+\t\t\tGIT_DIR=\"$name/.git\" git rev-parse --git-dir >/dev/null 2>&1 &&\n \t\t\techo \"$name\"\n \t\tdone\n \t)\n@@ -985,11 +985,11 @@ cmd_summary() {\n \t\tmissing_dst=\n\n \t\ttest $mod_src = 160000 &&\n-\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_src^0 >/dev/null &&\n+\t\t! GIT_DIR=\"$name/.git\" git rev-parse -q --verify $sha1_src^0 >/dev/null &&\n \t\tmissing_src=t\n\n \t\ttest $mod_dst = 160000 &&\n-\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_dst^0 >/dev/null &&\n+\t\t! GIT_DIR=\"$name/.git\" git rev-parse -q --verify $sha1_dst^0 >/dev/null &&\n \t\tmissing_dst=t\n\n \t\ttotal_commits=\n-- \n1.8.3.msysgit.1\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222092","messageId":"7vzjubtty7.fsf@alter.siamese.dyndns.org","threadId":"34287","inReplyTo":"CAHGBnuNUjaWH2UDsa6jGjf32M+b8-iezw4pKXR985mROFSLOKQ@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-27T16:11:12Z","receivedAt":"2013-06-27T16:11:12Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sebastian Schuberth <sschuberth@gmail.com> writes:\n\n> Call built-in commands via the main executable (non-dashed form) without\n> relying on the aliases (dashed form) to be present. On some platforms,\n> e.g. those that do not properly support file system links, it is\n> inconvenient to ship the built-in aliases, so do not depend on their\n> presence.\n\nIn principle I have no problem with this change, if nothing other\nthan for consistency reasons.  We tell users to write \"git foo\", and\nwe tell users to say PATH=$(git --exec-path):$PATH if they want to\nwrite \"git-foo\", but we do tell them we prefer 'git foo' form.  We\nshould do so ourselves where it is reasonable.\n\nI vaguely recall that some people may have argued that git-foo is\none less exec(2) when we left these in our scripted Porcelains,\nthough, so on a platform with poorly performing fork/exec, this\nchange may be seen as detrimental.  I do not know it matters that\nmuch.\n\nHaving said all that, I do have a huge issue with the justification\nin the proposed log message.  If your plan is to make this:\n\n\t$(git --exec-path)/git-ls-files\n\nnot to work with your port of Git, that implementation is _broken_\nand is not a Git anymore.\n\nGit can evolve over time, and if that is really your plan, the first\nstep you have to take is to revive the old discussion we had after\nv1.6.0:\n\n  http://thread.gmane.org/gmane.comp.version-control.git/93511/focus=93825\n\nand see if it is now a good idea.  It could be in year 2014.  It was\nnot in 2008.\n\nI cannot apply this exact patch for an obvious and unrelated reason;\nit seems to have changes, e.g. \"git am\" option help, that do not\nhave anything to do with the topic.\n\nFor a future reroll of this patch with only \"git-foo -> 'git foo'\",\nI would appreciate an independent review by at least one set of\neyes.  It is very easy to blindly do this conversion with sed/perl\nand fail to spot misconversion before sending it out.\n\n\n> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>\n> ---\n>  git-am.sh                |  6 ++---\n>  git-archimport.perl      | 68 ++++++++++++++++++++++++------------------------\n>  git-cvsexportcommit.perl | 18 ++++++-------\n>  git-cvsserver.perl       | 50 +++++++++++++++++------------------\n>  git-merge-octopus.sh     |  2 +-\n>  git-merge-one-file.sh    |  8 +++---\n>  git-merge-resolve.sh     |  2 +-\n>  git-parse-remote.sh      |  2 +-\n>  git-pull.sh              |  2 +-\n>  git-stash.sh             |  2 +-\n>  git-submodule.sh         |  8 +++---\n>  11 files changed, 84 insertions(+), 84 deletions(-)\n>\n> diff --git a/git-am.sh b/git-am.sh\n> index 9f44509..ad67194 100755\n> --- a/git-am.sh\n> +++ b/git-am.sh\n> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>  u,utf8          recode into utf8 (default)\n>  k,keep          pass -k flag to git-mailinfo\n>  keep-non-patch  pass -b flag to git-mailinfo\n> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n> independent of am.keepcr\n> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n> independent of am.keepcr\n>  c,scissors      strip everything before a scissors line\n>  whitespace=     pass it through git-apply\n>  ignore-space-change pass it through git-apply\n> @@ -174,7 +174,7 @@ It does not apply to blobs recorded in its index.\")\"\n>      then\n>  \t    GIT_MERGE_VERBOSITY=0 && export GIT_MERGE_VERBOSITY\n>      fi\n> -    git-merge-recursive $orig_tree -- HEAD $his_tree || {\n> +    git merge-recursive $orig_tree -- HEAD $his_tree || {\n>  \t    git rerere $allow_rerere_autoupdate\n>  \t    die \"$(gettext \"Failed to merge in the changes.\")\"\n>      }\n> diff --git a/git-archimport.perl b/git-archimport.perl\n> index 9cb123a..ed2c741 100755\n> --- a/git-archimport.perl\n> +++ b/git-archimport.perl\n> @@ -343,10 +343,10 @@ sub process_patchset_accurate {\n>\n>      # switch to that branch if we're not already in that branch:\n>      if (-e \"$git_dir/refs/heads/$ps->{branch}\") {\n> -       system('git-checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n> +       system('git','checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n>\n>         # remove any old stuff that got leftover:\n> -       my $rm = safe_pipe_capture('git-ls-files','--others','-z');\n> +       my $rm = safe_pipe_capture('git','ls-files','--others','-z');\n>         rmtree(split(/\\0/,$rm)) if $rm;\n>      }\n>\n> @@ -367,7 +367,7 @@ sub process_patchset_accurate {\n>\n>              # find where we are supposed to branch from\n>  \t    if (! -e \"$git_dir/refs/heads/$ps->{branch}\") {\n> -\t\tsystem('git-branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n> +\t\tsystem('git','branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n>\n>  \t\t# We trust Arch with the fact that this is just a tag,\n>  \t\t# and it does not affect the state of the tree, so\n> @@ -378,10 +378,10 @@ sub process_patchset_accurate {\n>  \t\tptag($ps->{id}, $branchpoint);\n>  \t\tprint \" * Tagged $ps->{id} at $branchpoint\\n\";\n>  \t    }\n> -\t    system('git-checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n> +\t    system('git','checkout','-f',$ps->{branch}) == 0 or die \"$! $?\\n\";\n>\n>              # remove any old stuff that got leftover:\n> -            my $rm = safe_pipe_capture('git-ls-files','--others','-z');\n> +            my $rm = safe_pipe_capture('git','ls-files','--others','-z');\n>              rmtree(split(/\\0/,$rm)) if $rm;\n>              return 0;\n>          } else {\n> @@ -392,10 +392,10 @@ sub process_patchset_accurate {\n>      }\n>\n>      # update the index with all the changes we got\n> -    system('git-diff-files --name-only -z | '.\n> -            'git-update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n> -    system('git-ls-files --others -z | '.\n> -            'git-update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n> +    system('git diff-files --name-only -z | '.\n> +            'git update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n> +    system('git ls-files --others -z | '.\n> +            'git update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n>      return 1;\n>  }\n>\n> @@ -413,7 +413,7 @@ sub process_patchset_fast {\n>      unless ($import) { # skip for import\n>          if ( -e \"$git_dir/refs/heads/$ps->{branch}\") {\n>              # we know about this branch\n> -            system('git-checkout',$ps->{branch});\n> +            system('git','checkout',$ps->{branch});\n>          } else {\n>              # new branch! we need to verify a few things\n>              die \"Branch on a non-tag!\" unless $ps->{type} eq 't';\n> @@ -423,7 +423,7 @@ sub process_patchset_fast {\n>\n>              # find where we are supposed to branch from\n>  \t    if (! -e \"$git_dir/refs/heads/$ps->{branch}\") {\n> -\t\tsystem('git-branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n> +\t\tsystem('git','branch',$ps->{branch},$branchpoint) == 0 or die \"$! $?\\n\";\n>\n>  \t\t# We trust Arch with the fact that this is just a tag,\n>  \t\t# and it does not affect the state of the tree, so\n> @@ -434,7 +434,7 @@ sub process_patchset_fast {\n>  \t\tptag($ps->{id}, $branchpoint);\n>  \t\tprint \" * Tagged $ps->{id} at $branchpoint\\n\";\n>              }\n> -            system('git-checkout',$ps->{branch}) == 0 or die \"$! $?\\n\";\n> +            system('git','checkout',$ps->{branch}) == 0 or die \"$! $?\\n\";\n>              return 0;\n>          }\n>          die $! if $?;\n> @@ -465,10 +465,10 @@ sub process_patchset_fast {\n>      # imports don't give us good info\n>      # on added files. Shame on them\n>      if ($ps->{type} eq 'i' || $ps->{type} eq 't') {\n> -        system('git-ls-files --deleted -z | '.\n> -                'git-update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n> -        system('git-ls-files --others -z | '.\n> -                'git-update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n> +        system('git ls-files --deleted -z | '.\n> +                'git update-index --remove -z --stdin') == 0 or die \"$! $?\\n\";\n> +        system('git ls-files --others -z | '.\n> +                'git update-index --add -z --stdin') == 0 or die \"$! $?\\n\";\n>      }\n>\n>      # TODO: handle removed_directories and renamed_directories:\n> @@ -477,8 +477,8 @@ sub process_patchset_fast {\n>          unlink @$del;\n>          while (@$del) {\n>              my @slice = splice(@$del, 0, 100);\n> -            system('git-update-index','--remove','--',@slice) == 0 or\n> -                            die \"Error in git-update-index --remove: $! $?\\n\";\n> +            system('git update-index','--remove','--',@slice) == 0 or\n> +                            die \"Error in git update-index --remove: $! $?\\n\";\n>          }\n>      }\n>\n> @@ -496,25 +496,25 @@ sub process_patchset_fast {\n>              }\n>              # print \"moving $from $to\";\n>              rename($from, $to) or die \"Error renaming '$from' '$to': $!\\n\";\n> -            system('git-update-index','--remove','--',$from) == 0 or\n> -                            die \"Error in git-update-index --remove: $! $?\\n\";\n> -            system('git-update-index','--add','--',$to) == 0 or\n> -                            die \"Error in git-update-index --add: $! $?\\n\";\n> +            system('git update-index','--remove','--',$from) == 0 or\n> +                            die \"Error in git update-index --remove: $! $?\\n\";\n> +            system('git update-index','--add','--',$to) == 0 or\n> +                            die \"Error in git update-index --add: $! $?\\n\";\n>          }\n>      }\n>\n>      if (my $add = $ps->{new_files}) {\n>          while (@$add) {\n>              my @slice = splice(@$add, 0, 100);\n> -            system('git-update-index','--add','--',@slice) == 0 or\n> -                            die \"Error in git-update-index --add: $! $?\\n\";\n> +            system('git update-index','--add','--',@slice) == 0 or\n> +                            die \"Error in git update-index --add: $! $?\\n\";\n>          }\n>      }\n>\n>      if (my $mod = $ps->{modified_files}) {\n>          while (@$mod) {\n>              my @slice = splice(@$mod, 0, 100);\n> -            system('git-update-index','--',@slice) == 0 or\n> +            system('git update-index','--',@slice) == 0 or\n>                              die \"Error in git-update-index: $! $?\\n\";\n>          }\n>      }\n> @@ -593,7 +593,7 @@ foreach my $ps (@psets) {\n>      $ENV{GIT_COMMITTER_EMAIL} = $ps->{email};\n>      $ENV{GIT_COMMITTER_DATE}  = $ps->{date};\n>\n> -    my $pid = open2(*READER, *WRITER,'git-commit-tree',$tree,@par)\n> +    my $pid = open2(*READER, *WRITER,'git','commit-tree',$tree,@par)\n>          or die $!;\n>      print WRITER $ps->{summary},\"\\n\\n\";\n>\n> @@ -620,7 +620,7 @@ foreach my $ps (@psets) {\n>      open  HEAD, \">\",\"$git_dir/refs/heads/$ps->{branch}\";\n>      print HEAD $commitid;\n>      close HEAD;\n> -    system('git-update-ref', 'HEAD', \"$ps->{branch}\");\n> +    system('git', 'update-ref', 'HEAD', \"$ps->{branch}\");\n>\n>      # tag accordingly\n>      ptag($ps->{id}, $commitid); # private tag\n> @@ -945,7 +945,7 @@ sub find_parents {\n>      #\n>      # Identify what branches are merging into me\n>      # and whether we are fully merged\n> -    # git-merge-base <headsha> <headsha> should tell\n> +    # git merge-base <headsha> <headsha> should tell\n>      # me what the base of the merge should be\n>      #\n>      my $ps = shift;\n> @@ -983,7 +983,7 @@ sub find_parents {\n>  \t# check that we actually know about the branch\n>  \tnext unless -e \"$git_dir/refs/heads/$branch\";\n>\n> -\tmy $mergebase = `git-merge-base $branch $ps->{branch}`;\n> +\tmy $mergebase = `git merge-base $branch $ps->{branch}`;\n>  \tif ($?) {\n>  \t    # Don't die here, Arch supports one-way cherry-picking\n>  \t    # between branches with no common base (or any relationship\n> @@ -995,7 +995,7 @@ sub find_parents {\n>\n>  \t# now walk up to the mergepoint collecting what patches we have\n>  \tmy $branchtip = git_rev_parse($ps->{branch});\n> -\tmy @ancestors = `git-rev-list --topo-order $branchtip ^$mergebase`;\n> +\tmy @ancestors = `git rev-list --topo-order $branchtip ^$mergebase`;\n>  \tmy %have; # collected merges this branch has\n>  \tforeach my $merge (@{$ps->{merges}}) {\n>  \t    $have{$merge} = 1;\n> @@ -1018,11 +1018,11 @@ sub find_parents {\n>  \t# see what the remote branch has - these are the merges we\n>  \t# will want to have in a consecutive series from the mergebase\n>  \tmy $otherbranchtip = git_rev_parse($branch);\n> -\tmy @needraw = `git-rev-list --topo-order $otherbranchtip ^$mergebase`;\n> +\tmy @needraw = `git rev-list --topo-order $otherbranchtip ^$mergebase`;\n>  \tmy @need;\n>  \tforeach my $needps (@needraw) { \t# get the psets\n>  \t    $needps = commitid2pset($needps);\n> -\t    # git-rev-list will also\n> +\t    # git rev-list will also\n>  \t    # list commits merged in via earlier\n>  \t    # merges. we are only interested in commits\n>  \t    # from the branch we're looking at\n> @@ -1074,8 +1074,8 @@ sub find_parents {\n>\n>  sub git_rev_parse {\n>      my $name = shift;\n> -    my $val  = `git-rev-parse $name`;\n> -    die \"Error: git-rev-parse $name\" if $?;\n> +    my $val  = `git rev-parse $name`;\n> +    die \"Error: git rev-parse $name\" if $?;\n>      chomp $val;\n>      return $val;\n>  }\n> diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\n> index d13f02d..6718bad 100755\n> --- a/git-cvsexportcommit.perl\n> +++ b/git-cvsexportcommit.perl\n> @@ -18,7 +18,7 @@ $opt_h && usage();\n>\n>  die \"Need at least one commit identifier!\" unless @ARGV;\n>\n> -# Get git-config settings\n> +# Get git config settings\n>  my $repo = Git->repository();\n>  $opt_w = $repo->config('cvsexportcommit.cvsdir') unless defined $opt_w;\n>\n> @@ -26,7 +26,7 @@ if ($opt_w || $opt_W) {\n>  \t# Remember where GIT_DIR is before changing to CVS checkout\n>  \tunless ($ENV{GIT_DIR}) {\n>  \t\t# No GIT_DIR set. Figure it out for ourselves\n> -\t\tmy $gd =`git-rev-parse --git-dir`;\n> +\t\tmy $gd =`git rev-parse --git-dir`;\n>  \t\tchomp($gd);\n>  \t\t$ENV{GIT_DIR} = $gd;\n>  \t}\n> @@ -62,7 +62,7 @@ if ($opt_d) {\n>  # resolve target commit\n>  my $commit;\n>  $commit = pop @ARGV;\n> -$commit = safe_pipe_capture('git-rev-parse', '--verify', \"$commit^0\");\n> +$commit = safe_pipe_capture('git', 'rev-parse', '--verify', \"$commit^0\");\n>  chomp $commit;\n>  if ($?) {\n>      die \"The commit reference $commit did not resolve!\";\n> @@ -72,7 +72,7 @@ if ($?) {\n>  my $parent;\n>  if (@ARGV) {\n>      $parent = pop @ARGV;\n> -    $parent =  safe_pipe_capture('git-rev-parse', '--verify', \"$parent^0\");\n> +    $parent =  safe_pipe_capture('git', 'rev-parse', '--verify', \"$parent^0\");\n>      chomp $parent;\n>      if ($?) {\n>  \tdie \"The parent reference did not resolve!\";\n> @@ -80,7 +80,7 @@ if (@ARGV) {\n>  }\n>\n>  # find parents from the commit itself\n> -my @commit  = safe_pipe_capture('git-cat-file', 'commit', $commit);\n> +my @commit  = safe_pipe_capture('git', 'cat-file', 'commit', $commit);\n>  my @parents;\n>  my $committer;\n>  my $author;\n> @@ -158,9 +158,9 @@ if ($opt_a) {\n>  close MSG;\n>\n>  if ($parent eq $noparent) {\n> -    `git-diff-tree --binary -p --root $commit\n>>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n> +    `git diff-tree --binary -p --root $commit\n>>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n>  } else {\n> -    `git-diff-tree --binary -p $parent $commit\n>>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n> +    `git diff-tree --binary -p $parent $commit\n>>.cvsexportcommit.diff`;# || die \"Cannot diff\";\n>  }\n>\n>  ## apply non-binary changes\n> @@ -174,7 +174,7 @@ my $context = $opt_p ? '' : '-C1';\n>  print \"Checking if patch will apply\\n\";\n>\n>  my @stat;\n> -open APPLY, \"GIT_DIR= git-apply $context --summary\n> --numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n> +open APPLY, \"GIT_DIR= git apply $context --summary\n> --numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n>  @stat=<APPLY>;\n>  close APPLY || die \"Cannot patch\";\n>  my (@bfiles,@files,@afiles,@dfiles);\n> @@ -329,7 +329,7 @@ print \"Applying\\n\";\n>  if ($opt_W) {\n>      system(\"git checkout -q $commit^0\") && die \"cannot patch\";\n>  } else {\n> -    `GIT_DIR= git-apply $context --summary --numstat --apply\n> <.cvsexportcommit.diff` || die \"cannot patch\";\n> +    `GIT_DIR= git apply $context --summary --numstat --apply\n> <.cvsexportcommit.diff` || die \"cannot patch\";\n>  }\n>\n>  print \"Patch applied successfully. Adding new files and directories to CVS\\n\";\n> diff --git a/git-cvsserver.perl b/git-cvsserver.perl\n> index a0d796e..53c136f 100755\n> --- a/git-cvsserver.perl\n> +++ b/git-cvsserver.perl\n> @@ -358,10 +358,10 @@ sub req_Root\n>\n>      my @gitvars = `git config -l`;\n>      if ($?) {\n> -       print \"E problems executing git-config on the server -- this\n> is not a git repository or the PATH is not set correctly.\\n\";\n> +        print \"E problems executing git config on the server -- this\n> is not a git repository or the PATH is not set correctly.\\n\";\n>          print \"E \\n\";\n>          print \"error 1 - problem executing git-config\\n\";\n> -       return 0;\n> +        return 0;\n>      }\n>      foreach my $line ( @gitvars )\n>      {\n> @@ -1626,7 +1626,7 @@ sub req_ci\n>          if ($wrev) {\n>              system('git', 'checkout-index', '-f', '-u', $filename);\n>              unless ($? == 0) {\n> -                die \"Error running git-checkout-index -f -u $filename : $!\";\n> +                die \"Error running git checkout-index -f -u $filename : $!\";\n>              }\n>          }\n>\n> @@ -1716,7 +1716,7 @@ sub req_ci\n>          exit;\n>      }\n>\n> -\t### Emulate git-receive-pack by running hooks/update\n> +\t### Emulate git receive-pack by running hooks/update\n>  \tmy @hook = ( $ENV{GIT_DIR}.'hooks/update', $branchRef,\n>  \t\t\t$parenthash, $commithash );\n>  \tif( -x $hook[0] ) {\n> @@ -1738,7 +1738,7 @@ sub req_ci\n>  \t\texit;\n>  \t}\n>\n> -\t### Emulate git-receive-pack by running hooks/post-receive\n> +\t### Emulate git receive-pack by running hooks/post-receive\n>  \tmy $hook = $ENV{GIT_DIR}.'hooks/post-receive';\n>  \tif( -x $hook ) {\n>  \t\topen(my $pipe, \"| $hook\") || die \"can't fork $!\";\n> @@ -2328,7 +2328,7 @@ sub req_annotate\n>  \tsystem(\"git\", \"read-tree\", $lastseenin);\n>  \tunless ($? == 0)\n>  \t{\n> -\t    print \"E error running git-read-tree $lastseenin\n> $ENV{GIT_INDEX_FILE} $!\\n\";\n> +\t    print \"E error running git read-tree $lastseenin\n> $ENV{GIT_INDEX_FILE} $!\\n\";\n>  \t    return;\n>  \t}\n>  \t$log->info(\"Created index '$ENV{GIT_INDEX_FILE}' with commit\n> $lastseenin - exit status $?\");\n> @@ -2336,7 +2336,7 @@ sub req_annotate\n>          # do a checkout of the file\n>          system('git', 'checkout-index', '-f', '-u', $filename);\n>          unless ($? == 0) {\n> -            print \"E error running git-checkout-index -f -u $filename : $!\\n\";\n> +            print \"E error running git checkout-index -f -u $filename : $!\\n\";\n>              return;\n>          }\n>\n> @@ -2886,7 +2886,7 @@ sub transmitfile\n>          }\n>          close $fh or die (\"Couldn't close filehandle for transmitfile(): $!\");\n>      } else {\n> -        die(\"Couldn't execute git-cat-file\");\n> +        die(\"Couldn't execute git cat-file\");\n>      }\n>  }\n>\n> @@ -3008,8 +3008,8 @@ sub setupWorkTree\n>          system(\"git\",\"read-tree\",$ver);\n>          unless ($? == 0)\n>          {\n> -            $log->warn(\"Error running git-read-tree\");\n> -            die \"Error running git-read-tree $ver in $work->{workDir} $!\\n\";\n> +            $log->warn(\"Error running git read-tree\");\n> +            die \"Error running git read-tree $ver in $work->{workDir} $!\\n\";\n>          }\n>      }\n>      # else # req_annotate reads tree for each file\n> @@ -3062,7 +3062,7 @@ sub ensureWorkTree\n>      system(\"git\",\"read-tree\",$ver);\n>      unless ($? == 0)\n>      {\n> -        die \"Error running git-read-tree $ver $!\\n\";\n> +        die \"Error running git read-tree $ver $!\\n\";\n>      }\n>  }\n>\n> @@ -3829,7 +3829,7 @@ sub update\n>      } else {\n>          push @git_log_params, $self->{module};\n>      }\n> -    # git-rev-list is the backend / plumbing version of git-log\n> +    # git rev-list is the backend / plumbing version of git-log\n>      open(my $gitLogPipe, '-|', 'git', 'rev-list', @git_log_params)\n>                  or die \"Cannot call git-rev-list: $!\";\n>      my @commits=readCommits($gitLogPipe);\n> @@ -3878,7 +3878,7 @@ sub update\n>                      if ($parent eq $lastpicked) {\n>                          next;\n>                      }\n> -                    # git-merge-base can potentially (but rarely) throw\n> +                    # git merge-base can potentially (but rarely) throw\n>                      # several candidate merge bases. let's assume\n>                      # that the first one is the best one.\n>  \t\t    my $base = eval {\n> @@ -3936,14 +3936,14 @@ sub update\n>\n>          if ( defined ( $lastpicked ) )\n>          {\n> -            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n> '-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call\n> git-diff-tree : $!\");\n> +            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n> '-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call git\n> diff-tree : $!\");\n>  \t    local ($/) = \"\\0\";\n>              while ( <FILELIST> )\n>              {\n>  \t\tchomp;\n>                  unless (\n> /^:\\d{6}\\s+([0-7]{6})\\s+[a-f0-9]{40}\\s+([a-f0-9]{40})\\s+(\\w)$/o )\n>                  {\n> -                    die(\"Couldn't process git-diff-tree line : $_\");\n> +                    die(\"Couldn't process git diff-tree line : $_\");\n>                  }\n>  \t\tmy ($mode, $hash, $change) = ($1, $2, $3);\n>  \t\tmy $name = <FILELIST>;\n> @@ -4006,14 +4006,14 @@ sub update\n>              # this is used to detect files removed from the repo\n>              my $seen_files = {};\n>\n> -            my $filepipe = open(FILELIST, '-|', 'git', 'ls-tree',\n> '-z', '-r', $commit->{hash}) or die(\"Cannot call git-ls-tree : $!\");\n> +            my $filepipe = open(FILELIST, '-|', 'git', 'ls-tree',\n> '-z', '-r', $commit->{hash}) or die(\"Cannot call git ls-tree : $!\");\n>  \t    local $/ = \"\\0\";\n>              while ( <FILELIST> )\n>              {\n>  \t\tchomp;\n>                  unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n>                  {\n> -                    die(\"Couldn't process git-ls-tree line : $_\");\n> +                    die(\"Couldn't process git ls-tree line : $_\");\n>                  }\n>\n>                  my ( $mode, $git_type, $git_hash, $git_filename ) = (\n> $1, $2, $3, $4 );\n> @@ -4312,7 +4312,7 @@ sub getAnyHead\n>      my @files;\n>      {\n>          open(my $filePipe, '-|', 'git', 'ls-tree', '-z', '-r', $hash)\n> -                or die(\"Cannot call git-ls-tree : $!\");\n> +                or die(\"Cannot call git ls-tree : $!\");\n>          local $/ = \"\\0\";\n>          @files=<$filePipe>;\n>          close $filePipe;\n> @@ -4325,7 +4325,7 @@ sub getAnyHead\n>          $line=~s/\\0$//;\n>          unless ( $line=~/^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n>          {\n> -            die(\"Couldn't process git-ls-tree line : $_\");\n> +            die(\"Couldn't process git ls-tree line : $_\");\n>          }\n>\n>          my($mode, $git_type, $git_hash, $git_filename) = ($1, $2, $3, $4);\n> @@ -4391,14 +4391,14 @@ sub getRevisionDirMap\n>          }\n>\n>          open(my $filePipe, '-|', 'git', 'ls-tree', '-z', '-r', $hash)\n> -                or die(\"Cannot call git-ls-tree : $!\");\n> +                or die(\"Cannot call git ls-tree : $!\");\n>          local $/ = \"\\0\";\n>          while ( <$filePipe> )\n>          {\n>              chomp;\n>              unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n>              {\n> -                die(\"Couldn't process git-ls-tree line : $_\");\n> +                die(\"Couldn't process git ls-tree line : $_\");\n>              }\n>\n>              my($mode, $git_type, $git_hash, $git_filename) = ($1, $2, $3, $4);\n> @@ -4692,7 +4692,7 @@ sub getMetaFromCommithash\n>\n>      # NOTE: This function doesn't scale well (lots of forks), especially\n>      #   if you have many files that have not been modified for many commits\n> -    #   (each git-rev-parse redoes a lot of work for each file\n> +    #   (each git rev-parse redoes a lot of work for each file\n>      #   that theoretically could be done in parallel by smarter\n>      #   graph traversal).\n>      #\n> @@ -4796,20 +4796,20 @@ sub getMetaFromCommithash\n>      # meta data about $filename:\n>      open(my $filePipe, '-|', 'git', 'ls-tree', '-z',\n>                  $commit->{hash}, '--', $filename)\n> -            or die(\"Cannot call git-ls-tree : $!\");\n> +            or die(\"Cannot call git ls-tree : $!\");\n>      local $/ = \"\\0\";\n>      my $line;\n>      $line=<$filePipe>;\n>      if(defined(<$filePipe>))\n>      {\n> -        die \"Expected only a single file for git-ls-tree $filename\\n\";\n> +        die \"Expected only a single file for git ls-tree $filename\\n\";\n>      }\n>      close $filePipe;\n>\n>      chomp $line;\n>      unless ( $line=~m/^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n>      {\n> -        die(\"Couldn't process git-ls-tree line : $line\\n\");\n> +        die(\"Couldn't process git ls-tree line : $line\\n\");\n>      }\n>      my ( $mode, $git_type, $git_hash, $git_filename ) = ( $1, $2, $3, $4 );\n>\n> diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh\n> index 8643f74..ec1d65b 100755\n> --- a/git-merge-octopus.sh\n> +++ b/git-merge-octopus.sh\n> @@ -97,7 +97,7 @@ do\n>  \tif test $? -ne 0\n>  \tthen\n>  \t\techo \"Simple merge did not work, trying automatic merge.\"\n> -\t\tgit-merge-index -o git-merge-one-file -a ||\n> +\t\tgit merge-index -o git-merge-one-file -a ||\n>  \t\tOCTOPUS_FAILURE=1\n>  \t\tnext=$(git write-tree 2>/dev/null)\n>  \tfi\n> diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh\n> index 07dfeb8..b6d6297 100755\n> --- a/git-merge-one-file.sh\n> +++ b/git-merge-one-file.sh\n> @@ -107,17 +107,17 @@ case \"${1:-.}${2:-.}${3:-.}\" in\n>  \t\t;;\n>  \tesac\n>\n> -\tsrc1=$(git-unpack-file $2)\n> -\tsrc2=$(git-unpack-file $3)\n> +\tsrc1=$(git unpack-file $2)\n> +\tsrc2=$(git unpack-file $3)\n>  \tcase \"$1\" in\n>  \t'')\n>  \t\techo \"Added $4 in both, but differently.\"\n> -\t\torig=$(git-unpack-file $2)\n> +\t\torig=$(git unpack-file $2)\n>  \t\tcreate_virtual_base \"$orig\" \"$src2\"\n>  \t\t;;\n>  \t*)\n>  \t\techo \"Auto-merging $4\"\n> -\t\torig=$(git-unpack-file $1)\n> +\t\torig=$(git unpack-file $1)\n>  \t\t;;\n>  \tesac\n>\n> diff --git a/git-merge-resolve.sh b/git-merge-resolve.sh\n> index c9da747..343fe7b 100755\n> --- a/git-merge-resolve.sh\n> +++ b/git-merge-resolve.sh\n> @@ -45,7 +45,7 @@ then\n>  \texit 0\n>  else\n>  \techo \"Simple merge failed, trying Automatic merge.\"\n> -\tif git-merge-index -o git-merge-one-file -a\n> +\tif git merge-index -o git-merge-one-file -a\n>  \tthen\n>  \t\texit 0\n>  \telse\n> diff --git a/git-parse-remote.sh b/git-parse-remote.sh\n> index 0e87e09..baf3041 100644\n> --- a/git-parse-remote.sh\n> +++ b/git-parse-remote.sh\n> @@ -1,6 +1,6 @@\n>  #!/bin/sh\n>\n> -# git-ls-remote could be called from outside a git managed repository;\n> +# git ls-remote could be called from outside a git managed repository;\n>  # this would fail in that case and would issue an error message.\n>  GIT_DIR=$(git rev-parse -q --git-dir) || :;\n>\n> diff --git a/git-pull.sh b/git-pull.sh\n> index 638aabb..a7c837b 100755\n> --- a/git-pull.sh\n> +++ b/git-pull.sh\n> @@ -289,7 +289,7 @@ true)\n>  \teval=\"$eval --onto $merge_head ${oldremoteref:-$merge_head}\"\n>  \t;;\n>  *)\n> -\teval=\"git-merge $diffstat $no_commit $verify_signatures $edit\n> $squash $no_ff $ff_only\"\n> +\teval=\"git merge $diffstat $no_commit $verify_signatures $edit\n> $squash $no_ff $ff_only\"\n>  \teval=\"$eval  $log_arg $strategy_args $merge_args $verbosity $progress\"\n>  \teval=\"$eval \\\"\\$merge_name\\\" HEAD $merge_head\"\n>  \t;;\n> diff --git a/git-stash.sh b/git-stash.sh\n> index bbefdf6..26a699b 100755\n> --- a/git-stash.sh\n> +++ b/git-stash.sh\n> @@ -429,7 +429,7 @@ apply_stash () {\n>\n>  \tif test -n \"$u_tree\"\n>  \tthen\n> -\t\tGIT_INDEX_FILE=\"$TMPindex\" git-read-tree \"$u_tree\" &&\n> +\t\tGIT_INDEX_FILE=\"$TMPindex\" git read-tree \"$u_tree\" &&\n>  \t\tGIT_INDEX_FILE=\"$TMPindex\" git checkout-index --all &&\n>  \t\trm -f \"$TMPindex\" ||\n>  \t\tdie 'Could not restore untracked files from stash'\n> diff --git a/git-submodule.sh b/git-submodule.sh\n> index eb58c8e..a9392cf 100755\n> --- a/git-submodule.sh\n> +++ b/git-submodule.sh\n> @@ -162,7 +162,7 @@ die_if_unmatched ()\n>  # $2 = option name\n>  # $3 = default value\n>  #\n> -# Checks in the usual git-config places first (for overrides),\n> +# Checks in the usual git config places first (for overrides),\n>  # otherwise it falls back on .gitmodules.  This allows you to\n>  # distribute project-wide defaults in .gitmodules, while still\n>  # customizing individual repositories if necessary.  If the option is\n> @@ -951,7 +951,7 @@ cmd_summary() {\n>  \t\t\t# Always show modules deleted or type-changed (blob<->module)\n>  \t\t\ttest $status = D -o $status = T && echo \"$name\" && continue\n>  \t\t\t# Also show added or modified modules which are checked out\n> -\t\t\tGIT_DIR=\"$name/.git\" git-rev-parse --git-dir >/dev/null 2>&1 &&\n> +\t\t\tGIT_DIR=\"$name/.git\" git rev-parse --git-dir >/dev/null 2>&1 &&\n>  \t\t\techo \"$name\"\n>  \t\tdone\n>  \t)\n> @@ -985,11 +985,11 @@ cmd_summary() {\n>  \t\tmissing_dst=\n>\n>  \t\ttest $mod_src = 160000 &&\n> -\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_src^0 >/dev/null &&\n> +\t\t! GIT_DIR=\"$name/.git\" git rev-parse -q --verify $sha1_src^0 >/dev/null &&\n>  \t\tmissing_src=t\n>\n>  \t\ttest $mod_dst = 160000 &&\n> -\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_dst^0 >/dev/null &&\n> +\t\t! GIT_DIR=\"$name/.git\" git rev-parse -q --verify $sha1_dst^0 >/dev/null &&\n>  \t\tmissing_dst=t\n>\n>  \t\ttotal_commits=\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222097","messageId":"CAHGBnuPc+vDwejFOF_o+jr+L_mgrVo=Uxs2vC6C-Feg_uxWPpA@mail.gmail.com","threadId":"34287","inReplyTo":"7vzjubtty7.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Sebastian Schuberth","fromEmail":"sschuberth@gmail.com","sentAt":"2013-06-27T16:41:44Z","receivedAt":"2013-06-27T16:41:44Z","isPatch":true,"sender":{"key":"sschuberth@gmail.com","avatar":"https://avatars.githubusercontent.com/u/349154?v=4"},"body":"On Thu, Jun 27, 2013 at 6:11 PM, Junio C Hamano <gitster@pobox.com> wrote:\n\n>> Call built-in commands via the main executable (non-dashed form) without\n>> relying on the aliases (dashed form) to be present. On some platforms,\n>> e.g. those that do not properly support file system links, it is\n>> inconvenient to ship the built-in aliases, so do not depend on their\n>> presence.\n>\n> In principle I have no problem with this change, if nothing other\n> than for consistency reasons.  We tell users to write \"git foo\", and\n> we tell users to say PATH=$(git --exec-path):$PATH if they want to\n> write \"git-foo\", but we do tell them we prefer 'git foo' form.  We\n> should do so ourselves where it is reasonable.\n\nConsistency was indeed one of my intentions, though maybe not the primary one.\n\n> I vaguely recall that some people may have argued that git-foo is\n> one less exec(2) when we left these in our scripted Porcelains,\n> though, so on a platform with poorly performing fork/exec, this\n> change may be seen as detrimental.  I do not know it matters that\n> much.\n\nBut isn't this only true for commands that are not built-ins? I.e., I\ncan see how calling \"git-pull\" from a script is more efficient than\ncalling \"git pull\" from the same script, because \"git pull\" would\nfirst execute \"git\" which in turn would spawn a shell to run the\n\"git-pull\" script. But calling e.g. \"git-merge\" and \"git merge\" should\nuse almost the same code path in the \"git\" executable and not\nfork/exec at all because the merge command is built in, right?\n\n> Having said all that, I do have a huge issue with the justification\n> in the proposed log message.  If your plan is to make this:\n>\n>         $(git --exec-path)/git-ls-files\n>\n> not to work with your port of Git, that implementation is _broken_\n> and is not a Git anymore.\n\nI would at least like to have that option, yes, well knowing that such\na port would not be considered to be a Git anymore. A typical use-case\nwould be a \"portable\" Git for Windows, which is surprisingly popular.\nSuch a portable version usually just ships as an archive without any\nkind of installer. The ZIP archive format on Windows does not support\nstoring any kind of file system links, which means all executables for\nbuilt-ins would need to be added as copies to the archive. While that\ndoes not add much to the archive size because all such files are equal\nto git.exe and thus compress well, the big surprise comes when\nextracting that archive as all the copies of git.exe make such a\nportable installation unnecessary big. On Windows, git.exe is about\n1,34 MiB in size, which sums up to about 146 MiB of extra storage\nrequired if you have copies for all the built-ins instead of file\nsystem links.\n\n> Git can evolve over time, and if that is really your plan, the first\n> step you have to take is to revive the old discussion we had after\n> v1.6.0:\n>\n>   http://thread.gmane.org/gmane.comp.version-control.git/93511/focus=93825\n>\n> and see if it is now a good idea.  It could be in year 2014.  It was\n> not in 2008.\n\nCan I get around that discussion by adjusting the reasoning for the\npatch to mention consistency?\n\n> I cannot apply this exact patch for an obvious and unrelated reason;\n> it seems to have changes, e.g. \"git am\" option help, that do not\n> have anything to do with the topic.\n\nWell, if the topic was consistency the changes would be related, or?\nAs you were saying yourself, we tell users to prefer the \"git foo\"\nform, so we should also do so in the \"git am\" option help, IMHO.\n\n> For a future reroll of this patch with only \"git-foo -> 'git foo'\",\n> I would appreciate an independent review by at least one set of\n> eyes.  It is very easy to blindly do this conversion with sed/perl\n> and fail to spot misconversion before sending it out.\n\nAt least the test suite (running on Linux) did not throw any failures\nat me after applying this patch.\n\n-- \nSebastian Schuberth\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222102","messageId":"7v8v1vtqfa.fsf@alter.siamese.dyndns.org","threadId":"34287","inReplyTo":"CAHGBnuPc+vDwejFOF_o+jr+L_mgrVo=Uxs2vC6C-Feg_uxWPpA@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-27T17:27:21Z","receivedAt":"2013-06-27T17:27:21Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sebastian Schuberth <sschuberth@gmail.com> writes:\n\n> On Thu, Jun 27, 2013 at 6:11 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n>> I vaguely recall that some people may have argued that git-foo is\n>> one less exec(2) when we left these in our scripted Porcelains,\n>> though, so on a platform with poorly performing fork/exec, this\n>> change may be seen as detrimental.  I do not know it matters that\n>> much.\n>\n> But isn't this only true for commands that are not built-ins? I.e., ...\n\nRead \"I do not know it matters that much.\" again ;-).\n\n>> Git can evolve over time, and if that is really your plan, the first\n>> step you have to take is to revive the old discussion we had after\n>> v1.6.0:\n>>\n>>   http://thread.gmane.org/gmane.comp.version-control.git/93511/focus=93825\n>>\n>> and see if it is now a good idea.  It could be in year 2014.  It was\n>> not in 2008.\n>\n> Can I get around that discussion by adjusting the reasoning for the\n> patch to mention consistency?\n\nTaking \"In principle I have no problem with this change, if nothing\nother than for consistency reasons.\" and \"I do have a huge issue\nwith the justification in the proposed log message.\" together, I\nwould reach the same conclusion ;-)\n\n>> I cannot apply this exact patch for an obvious and unrelated reason;\n>> it seems to have changes, e.g. \"git am\" option help, that do not\n>> have anything to do with the topic.\n>\n> Well, if the topic was consistency the changes would be related, or?\n\nThe theme of the patch is \"Do not call built-in aliases from scripts\"\n(by the way, do not call them \"alias\"---it is confusing as they are\nnot what people consider \"alias\").\n\n> diff --git a/git-am.sh b/git-am.sh\n> index 9f44509..ad67194 100755\n> --- a/git-am.sh\n> +++ b/git-am.sh\n> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>  u,utf8          recode into utf8 (default)\n>  k,keep          pass -k flag to git-mailinfo\n>  keep-non-patch  pass -b flag to git-mailinfo\n> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n> independent of am.keepcr\n> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n> independent of am.keepcr\n>  c,scissors      strip everything before a scissors line\n>  whitespace=     pass it through git-apply\n>  ignore-space-change pass it through git-apply\n\n> As you were saying yourself, we tell users to prefer the \"git foo\"\n> form, so we should also do so in the \"git am\" option help, IMHO.\n\nWhat does the above change to the options-help have anything to do\nwith that theme?  It does not seem to say anything about \"git foo\"\nvs \"git-foo\"?\n\nConfused...\n\n>> For a future reroll of this patch with only \"git-foo -> 'git foo'\",\n>> I would appreciate an independent review by at least one set of\n>> eyes.  It is very easy to blindly do this conversion with sed/perl\n>> and fail to spot misconversion before sending it out.\n>\n> At least the test suite (running on Linux) did not throw any failures\n> at me after applying this patch.\n\nPassing test may be a necessary condition to convince yourself that\nthe patch may not be so broken, but is not sufficient proof of\ncorrectness, which can only come from careful code inspection.\n\nIn any case, thanks for working on this.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222114","messageId":"CAEBDL5VL+C7yKMBq1g4vSrSSsvrKE+FCeoS66mkWQqJJvf0sWA@mail.gmail.com","threadId":"34287","inReplyTo":"7v8v1vtqfa.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"John Szakmeister","fromEmail":"john@szakmeister.net","sentAt":"2013-06-27T18:02:27Z","receivedAt":"2013-06-27T18:02:27Z","isPatch":true,"sender":{"key":"john@szakmeister.net","avatar":"https://avatars.githubusercontent.com/u/448087?v=4"},"body":"On Thu, Jun 27, 2013 at 1:27 PM, Junio C Hamano <gitster@pobox.com> wrote:\n[snip]\n>> diff --git a/git-am.sh b/git-am.sh\n>> index 9f44509..ad67194 100755\n>> --- a/git-am.sh\n>> +++ b/git-am.sh\n>> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>>  u,utf8          recode into utf8 (default)\n>>  k,keep          pass -k flag to git-mailinfo\n>>  keep-non-patch  pass -b flag to git-mailinfo\n>> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n>> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n>> independent of am.keepcr\n>> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n>> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n>> independent of am.keepcr\n>>  c,scissors      strip everything before a scissors line\n>>  whitespace=     pass it through git-apply\n>>  ignore-space-change pass it through git-apply\n>\n>> As you were saying yourself, we tell users to prefer the \"git foo\"\n>> form, so we should also do so in the \"git am\" option help, IMHO.\n>\n> What does the above change to the options-help have anything to do\n> with that theme?  It does not seem to say anything about \"git foo\"\n> vs \"git-foo\"?\n\nI initially missed it too, but `git-mailsplit` changed to `git\nmailsplit` in the help.  Now that I look at it more, I see that\n`git-mailinfo` was missed and there's a `git-apply` towards the\nbottom.  So I'm not sure it's helping the consistency argument.\n\n-John\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222115","messageId":"7vmwqbsa3u.fsf@alter.siamese.dyndns.org","threadId":"34287","inReplyTo":"CAEBDL5VL+C7yKMBq1g4vSrSSsvrKE+FCeoS66mkWQqJJvf0sWA@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-27T18:05:09Z","receivedAt":"2013-06-27T18:05:09Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"John Szakmeister <john@szakmeister.net> writes:\n\n> On Thu, Jun 27, 2013 at 1:27 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> [snip]\n>>> diff --git a/git-am.sh b/git-am.sh\n>>> index 9f44509..ad67194 100755\n>>> --- a/git-am.sh\n>>> +++ b/git-am.sh\n>>> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>>>  u,utf8          recode into utf8 (default)\n>>>  k,keep          pass -k flag to git-mailinfo\n>>>  keep-non-patch  pass -b flag to git-mailinfo\n>>> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n>>> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n>>> independent of am.keepcr\n>>> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n>>> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n>>> independent of am.keepcr\n>>>  c,scissors      strip everything before a scissors line\n>>>  whitespace=     pass it through git-apply\n>>>  ignore-space-change pass it through git-apply\n>>\n>>> As you were saying yourself, we tell users to prefer the \"git foo\"\n>>> form, so we should also do so in the \"git am\" option help, IMHO.\n>>\n>> What does the above change to the options-help have anything to do\n>> with that theme?  It does not seem to say anything about \"git foo\"\n>> vs \"git-foo\"?\n>\n> I initially missed it too, but `git-mailsplit` changed to `git\n> mailsplit` in the help.\n\nAhh, OK.\n\n>  Now that I look at it more, I see that\n> `git-mailinfo` was missed and there's a `git-apply` towards the\n> bottom.  So I'm not sure it's helping the consistency argument.\n\nHmph, true.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222117","messageId":"7vehbns9vq.fsf@alter.siamese.dyndns.org","threadId":"34287","inReplyTo":"7vmwqbsa3u.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-27T18:10:01Z","receivedAt":"2013-06-27T18:10:01Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> John Szakmeister <john@szakmeister.net> writes:\n>\n>> On Thu, Jun 27, 2013 at 1:27 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>> [snip]\n>>>> diff --git a/git-am.sh b/git-am.sh\n>>>> index 9f44509..ad67194 100755\n>>>> --- a/git-am.sh\n>>>> +++ b/git-am.sh\n>>>> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>>>>  u,utf8          recode into utf8 (default)\n>>>>  k,keep          pass -k flag to git-mailinfo\n>>>>  keep-non-patch  pass -b flag to git-mailinfo\n>>>> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n>>>> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n>>>> independent of am.keepcr\n>>>> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n>>>> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n>>>> independent of am.keepcr\n>>>>  c,scissors      strip everything before a scissors line\n>>>>  whitespace=     pass it through git-apply\n>>>>  ignore-space-change pass it through git-apply\n>>>\n>>>> As you were saying yourself, we tell users to prefer the \"git foo\"\n>>>> form, so we should also do so in the \"git am\" option help, IMHO.\n>>>\n>>> What does the above change to the options-help have anything to do\n>>> with that theme?  It does not seem to say anything about \"git foo\"\n>>> vs \"git-foo\"?\n>>\n>> I initially missed it too, but `git-mailsplit` changed to `git\n>> mailsplit` in the help.\n>\n> Ahh, OK.\n>\n>>  Now that I look at it more, I see that\n>> `git-mailinfo` was missed and there's a `git-apply` towards the\n>> bottom.  So I'm not sure it's helping the consistency argument.\n>\n> Hmph, true.\n\nHaving said that, I'd still prefer to see documentation changes in a\npatch separate from a \"do not call git-foo form\" patch.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222118","messageId":"20130627181154.GC2232@serenity.lan","threadId":"34287","inReplyTo":"7vmwqbsa3u.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-06-27T18:11:54Z","receivedAt":"2013-06-27T18:11:54Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Thu, Jun 27, 2013 at 11:05:09AM -0700, Junio C Hamano wrote:\n> John Szakmeister <john@szakmeister.net> writes:\n> \n> > On Thu, Jun 27, 2013 at 1:27 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> > [snip]\n> >>> diff --git a/git-am.sh b/git-am.sh\n> >>> index 9f44509..ad67194 100755\n> >>> --- a/git-am.sh\n> >>> +++ b/git-am.sh\n> >>> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n> >>>  u,utf8          recode into utf8 (default)\n> >>>  k,keep          pass -k flag to git-mailinfo\n> >>>  keep-non-patch  pass -b flag to git-mailinfo\n> >>> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n> >>> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n> >>> independent of am.keepcr\n> >>> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n> >>> +no-keep-cr      do not pass --keep-cr flag to git mailsplit\n> >>> independent of am.keepcr\n> >>>  c,scissors      strip everything before a scissors line\n> >>>  whitespace=     pass it through git-apply\n> >>>  ignore-space-change pass it through git-apply\n> >>\n> >>> As you were saying yourself, we tell users to prefer the \"git foo\"\n> >>> form, so we should also do so in the \"git am\" option help, IMHO.\n> >>\n> >> What does the above change to the options-help have anything to do\n> >> with that theme?  It does not seem to say anything about \"git foo\"\n> >> vs \"git-foo\"?\n> >\n> > I initially missed it too, but `git-mailsplit` changed to `git\n> > mailsplit` in the help.\n> \n> Ahh, OK.\n\nThat is rendered differently though, I don't think just having the plain\ntext git command is as useful.  It should either use the hyphenated form\nor enclose the text in quotes.\n"},{"id":"222122","messageId":"alpine.DEB.1.00.1306272030291.28957@s15462909.onlinehome-server.info","threadId":"34287","inReplyTo":"CAHGBnuNUjaWH2UDsa6jGjf32M+b8-iezw4pKXR985mROFSLOKQ@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2013-06-27T18:52:00Z","receivedAt":"2013-06-27T18:52:00Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Sebastian,\n\nOn Thu, 27 Jun 2013, Sebastian Schuberth wrote:\n\n> Call built-in commands via the main executable (non-dashed form) without\n> relying on the aliases (dashed form) to be present. On some platforms,\n> e.g. those that do not properly support file system links, it is\n> inconvenient to ship the built-in aliases, so do not depend on their\n> presence.\n\nA laudable goal!\n\n> diff --git a/git-am.sh b/git-am.sh\n> index 9f44509..ad67194 100755\n> --- a/git-am.sh\n> +++ b/git-am.sh\n> @@ -16,8 +16,8 @@ s,signoff       add a Signed-off-by line to the commit message\n>  u,utf8          recode into utf8 (default)\n>  k,keep          pass -k flag to git-mailinfo\n>  keep-non-patch  pass -b flag to git-mailinfo\n> -keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n> -no-keep-cr      do not pass --keep-cr flag to git-mailsplit\n> independent of am.keepcr\n\nThat looks to me as if an overly-long line in the diff (not your fault)\nwas wrapped in the mailer...\n\n> +keep-cr         pass --keep-cr flag to git mailsplit for mbox format\n\nAt first, I wondered what changed in this line. But then I realized that\nyou separated \"git-mailsplit\" into \"git mailsplit\". This is purely\nnitpicking and I am almost ashamed to do so, but I think it might be\n*slightly* easier to read if the \"git mailsplit\" was quoted.\n\nHaving said that, I think it is an important change.\n\nIt is a different change, philosophically, though, from changes like this\none:\n\n> @@ -174,7 +174,7 @@ It does not apply to blobs recorded in its index.\")\"\n>      then\n>  \t    GIT_MERGE_VERBOSITY=0 && export GIT_MERGE_VERBOSITY\n>      fi\n> -    git-merge-recursive $orig_tree -- HEAD $his_tree || {\n> +    git merge-recursive $orig_tree -- HEAD $his_tree || {\n\nThis change is code while the former change is documentation. It might be\nprudent to split this commit into two, one for calls in scripts, one for\ndocumentation. That way, we could carry the documentation change (which I\nwhole-heartedly agree with) in Git for Windows should upstream stop before\nthe fence.\n\n> diff --git a/git-archimport.perl b/git-archimport.perl\n\nThis file's diff would be less long if the code was a bit more DRY. But\nyour changes are sound.\n\n> diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\n> index d13f02d..6718bad 100755\n> --- a/git-cvsexportcommit.perl\n> +++ b/git-cvsexportcommit.perl\n> @@ -18,7 +18,7 @@ $opt_h && usage();\n> \n>  die \"Need at least one commit identifier!\" unless @ARGV;\n> \n> -# Get git-config settings\n> +# Get git config settings\n\nThis is not as clear-cut as the changes above. I would tend to call it a\n\"documentation\" change, though.\n\n> diff --git a/git-cvsserver.perl b/git-cvsserver.perl\n> index a0d796e..53c136f 100755\n> --- a/git-cvsserver.perl\n> +++ b/git-cvsserver.perl\n> @@ -358,10 +358,10 @@ sub req_Root\n> \n>      my @gitvars = `git config -l`;\n>      if ($?) {\n> -       print \"E problems executing git-config on the server -- this\n> is not a git repository or the PATH is not set correctly.\\n\";\n> +        print \"E problems executing git config on the server -- this\n> is not a git repository or the PATH is not set correctly.\\n\";\n>          print \"E \\n\";\n>          print \"error 1 - problem executing git-config\\n\";\n> -       return 0;\n> +        return 0;\n\nPlease don't. I know, it is a whitespace error. But it makes reviewing\nmore tedious...\n\n> @@ -3936,14 +3936,14 @@ sub update\n> \n>          if ( defined ( $lastpicked ) )\n>          {\n> -            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n> '-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call\n> git-diff-tree : $!\");\n> +            my $filepipe = open(FILELIST, '-|', 'git', 'diff-tree',\n> '-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call git\n> diff-tree : $!\");\n\nLikewise, this would be a documentation change. It is funny that the\nopen() did not require a change: apparently, your intended code fixes were\nalready started at some point, but not finished.\n\n> diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh\n> index 8643f74..ec1d65b 100755\n> --- a/git-merge-octopus.sh\n> +++ b/git-merge-octopus.sh\n> @@ -97,7 +97,7 @@ do\n>  \tif test $? -ne 0\n>  \tthen\n>  \t\techo \"Simple merge did not work, trying automatic merge.\"\n> -\t\tgit-merge-index -o git-merge-one-file -a ||\n> +\t\tgit merge-index -o git-merge-one-file -a ||\n\nThis is a problem. 'git-merge-one-file' cannot be split here AFAICT.\n\nOf course, we could teach merge-index to read *two* parameters instead of\none when it encounters \"git\" as the <merge-program>. But that would be as\nhacky as the whole dashed-form business to begin with.\n\n> diff --git a/git-merge-resolve.sh b/git-merge-resolve.sh\n> index c9da747..343fe7b 100755\n> --- a/git-merge-resolve.sh\n> +++ b/git-merge-resolve.sh\n> @@ -45,7 +45,7 @@ then\n>  \texit 0\n>  else\n>  \techo \"Simple merge failed, trying Automatic merge.\"\n> -\tif git-merge-index -o git-merge-one-file -a\n> +\tif git merge-index -o git-merge-one-file -a\n\nAs above, with -octopus.\n\nApart from the split and the merge-one-file problem, absolutely no\nobjections from my side, but appraisals!\n\nCiao,\nDscho\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222127","messageId":"51CC992E.3020604@kdbg.org","threadId":"34287","inReplyTo":"CAHGBnuNUjaWH2UDsa6jGjf32M+b8-iezw4pKXR985mROFSLOKQ@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2013-06-27T19:57:34Z","receivedAt":"2013-06-27T19:57:34Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 27.06.2013 14:47, schrieb Sebastian Schuberth:\n> diff --git a/git-archimport.perl b/git-archimport.perl\n> index 9cb123a..ed2c741 100755\n> --- a/git-archimport.perl\n> +++ b/git-archimport.perl\n...\n> @@ -477,8 +477,8 @@ sub process_patchset_fast {\n>          unlink @$del;\n>          while (@$del) {\n>              my @slice = splice(@$del, 0, 100);\n> -            system('git-update-index','--remove','--',@slice) == 0 or\n> -                            die \"Error in git-update-index --remove: $! $?\\n\";\n> +            system('git update-index','--remove','--',@slice) == 0 or\n> +                            die \"Error in git update-index --remove: $! $?\\n\";\n\nShouldn't this become 'git','update-index'?\n\n>          }\n>      }\n> \n> @@ -496,25 +496,25 @@ sub process_patchset_fast {\n>              }\n>              # print \"moving $from $to\";\n>              rename($from, $to) or die \"Error renaming '$from' '$to': $!\\n\";\n> -            system('git-update-index','--remove','--',$from) == 0 or\n> -                            die \"Error in git-update-index --remove: $! $?\\n\";\n> -            system('git-update-index','--add','--',$to) == 0 or\n> -                            die \"Error in git-update-index --add: $! $?\\n\";\n> +            system('git update-index','--remove','--',$from) == 0 or\n> +                            die \"Error in git update-index --remove: $! $?\\n\";\n> +            system('git update-index','--add','--',$to) == 0 or\n> +                            die \"Error in git update-index --add: $! $?\\n\";\n\nTwice here, too.\n\n>          }\n>      }\n> \n>      if (my $add = $ps->{new_files}) {\n>          while (@$add) {\n>              my @slice = splice(@$add, 0, 100);\n> -            system('git-update-index','--add','--',@slice) == 0 or\n> -                            die \"Error in git-update-index --add: $! $?\\n\";\n> +            system('git update-index','--add','--',@slice) == 0 or\n> +                            die \"Error in git update-index --add: $! $?\\n\";\n\nAgain.\n\n>          }\n>      }\n> \n>      if (my $mod = $ps->{modified_files}) {\n>          while (@$mod) {\n>              my @slice = splice(@$mod, 0, 100);\n> -            system('git-update-index','--',@slice) == 0 or\n> +            system('git update-index','--',@slice) == 0 or\n\nDitto.\n\n-- Hannes\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222208","messageId":"CAHGBnuPcXaRgtq_LDBHWRXuBHRWsiy4YHy1NjsW5hXe1AyVqCg@mail.gmail.com","threadId":"34287","inReplyTo":"7vehbns9vq.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Sebastian Schuberth","fromEmail":"sschuberth@gmail.com","sentAt":"2013-06-28T20:18:27Z","receivedAt":"2013-06-28T20:18:27Z","isPatch":true,"sender":{"key":"sschuberth@gmail.com","avatar":"https://avatars.githubusercontent.com/u/349154?v=4"},"body":"On Thu, Jun 27, 2013 at 8:10 PM, Junio C Hamano <gitster@pobox.com> wrote:\n\n>>>  Now that I look at it more, I see that\n>>> `git-mailinfo` was missed and there's a `git-apply` towards the\n>>> bottom.  So I'm not sure it's helping the consistency argument.\n>>\n>> Hmph, true.\n>\n> Having said that, I'd still prefer to see documentation changes in a\n> patch separate from a \"do not call git-foo form\" patch.\n\nI'll send a new version of the patch next week to address this and\nalso use quotes when replacing a hyphenated form in prose.\n\n-- \nSebastian Schuberth\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222209","messageId":"CAHGBnuOE6vYzM2bKs2SV1qJVoCOX=t-XWnd_Xbs1JRD+sY4dVQ@mail.gmail.com","threadId":"34287","inReplyTo":"alpine.DEB.1.00.1306272030291.28957@s15462909.onlinehome-server.info","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Sebastian Schuberth","fromEmail":"sschuberth@gmail.com","sentAt":"2013-06-28T20:23:14Z","receivedAt":"2013-06-28T20:23:14Z","isPatch":true,"sender":{"key":"sschuberth@gmail.com","avatar":"https://avatars.githubusercontent.com/u/349154?v=4"},"body":"On Thu, Jun 27, 2013 at 8:52 PM, Johannes Schindelin\n<Johannes.Schindelin@gmx.de> wrote:\n\n>> --- a/git-merge-octopus.sh\n>> +++ b/git-merge-octopus.sh\n>> @@ -97,7 +97,7 @@ do\n>>       if test $? -ne 0\n>>       then\n>>               echo \"Simple merge did not work, trying automatic merge.\"\n>> -             git-merge-index -o git-merge-one-file -a ||\n>> +             git merge-index -o git-merge-one-file -a ||\n>\n> This is a problem. 'git-merge-one-file' cannot be split here AFAICT.\n>\n> Of course, we could teach merge-index to read *two* parameters instead of\n> one when it encounters \"git\" as the <merge-program>. But that would be as\n> hacky as the whole dashed-form business to begin with.\n\nI agree to all of your comments except this one: I did not split\n'git-merge-one-file' here ...\n\n>> diff --git a/git-merge-resolve.sh b/git-merge-resolve.sh\n>> index c9da747..343fe7b 100755\n>> --- a/git-merge-resolve.sh\n>> +++ b/git-merge-resolve.sh\n>> @@ -45,7 +45,7 @@ then\n>>       exit 0\n>>  else\n>>       echo \"Simple merge failed, trying Automatic merge.\"\n>> -     if git-merge-index -o git-merge-one-file -a\n>> +     if git merge-index -o git-merge-one-file -a\n>\n> As above, with -octopus.\n\nSorry, I can't follow you here.\n\n-- \nSebastian Schuberth\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222210","messageId":"alpine.DEB.1.00.1306282231300.28957@s15462909.onlinehome-server.info","threadId":"34287","inReplyTo":"CAHGBnuOE6vYzM2bKs2SV1qJVoCOX=t-XWnd_Xbs1JRD+sY4dVQ@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2013-06-28T20:32:30Z","receivedAt":"2013-06-28T20:32:30Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Sebastian,\n\nOn Fri, 28 Jun 2013, Sebastian Schuberth wrote:\n\n> On Thu, Jun 27, 2013 at 8:52 PM, Johannes Schindelin\n> <Johannes.Schindelin@gmx.de> wrote:\n> \n> >> --- a/git-merge-octopus.sh\n> >> +++ b/git-merge-octopus.sh\n> >> @@ -97,7 +97,7 @@ do\n> >>       if test $? -ne 0\n> >>       then\n> >>               echo \"Simple merge did not work, trying automatic merge.\"\n> >> -             git-merge-index -o git-merge-one-file -a ||\n> >> +             git merge-index -o git-merge-one-file -a ||\n> >\n> > This is a problem. 'git-merge-one-file' cannot be split here AFAICT.\n> >\n> > Of course, we could teach merge-index to read *two* parameters instead of\n> > one when it encounters \"git\" as the <merge-program>. But that would be as\n> > hacky as the whole dashed-form business to begin with.\n> \n> I agree to all of your comments except this one: I did not split\n> 'git-merge-one-file' here ...\n\nI know. That is what I pointed out. git-merge-one-file was *not*\n\"un-dashed\". And I explained the reason, too.\n\nBut if we really want to solve the problem you described earlier, we also\nmust not rely on git-merge-one-file to be present in libexec.\n\nCiao,\nDscho\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"222213","messageId":"7vr4fmm0ek.fsf@alter.siamese.dyndns.org","threadId":"34287","inReplyTo":"CAHGBnuOE6vYzM2bKs2SV1qJVoCOX=t-XWnd_Xbs1JRD+sY4dVQ@mail.gmail.com","subject":"Re: [PATCH] Do not call built-in aliases from scripts","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-28T20:43:31Z","receivedAt":"2013-06-28T20:43:31Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sebastian Schuberth <sschuberth@gmail.com> writes:\n\n> On Thu, Jun 27, 2013 at 8:52 PM, Johannes Schindelin\n> <Johannes.Schindelin@gmx.de> wrote:\n>\n>>> --- a/git-merge-octopus.sh\n>>> +++ b/git-merge-octopus.sh\n>>> @@ -97,7 +97,7 @@ do\n>>>       if test $? -ne 0\n>>>       then\n>>>               echo \"Simple merge did not work, trying automatic merge.\"\n>>> -             git-merge-index -o git-merge-one-file -a ||\n>>> +             git merge-index -o git-merge-one-file -a ||\n>>\n>> This is a problem. 'git-merge-one-file' cannot be split here AFAICT.\n>>\n>> Of course, we could teach merge-index to read *two* parameters instead of\n>> one when it encounters \"git\" as the <merge-program>. But that would be as\n>> hacky as the whole dashed-form business to begin with.\n>\n> I agree to all of your comments except this one: I did not split\n> 'git-merge-one-file' here ...\n\nI do not think Dscho was pointing out any problem with your patch.\n\nHe is merely pointing out that the goal of \"No git-foo anywhere on\nthe filesystem\" is an unworkable one, as sometimes you need to give\nthe path of a specific binary to commands.  It is not limited to the\n\"-o\" option of \"git merge-index\", but the above is a good example.\n\nAnd I agree with Dscho that this is not a problem with your patch\nper-se.\n\n>>>       echo \"Simple merge failed, trying Automatic merge.\"\n>>> -     if git-merge-index -o git-merge-one-file -a\n>>> +     if git merge-index -o git-merge-one-file -a\n>>\n>> As above, with -octopus.\n>\n> Sorry, I can't follow you here.\n\nThe same issue above, that you have to have \"git-merge-one-file\"\nsomewhere in your filesystem on $GIT_EXEC_PATH, he pointed out when\nhe commented on the patch to git-merge-octopus.sh, can be seen here.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"}]}