{"thread":{"id":"30185","subject":"[PATCH 0/3] git-p4: move to toplevel","startedAt":"2012-04-09T00:17:59Z","lastAt":"2012-04-09T18:32:44Z","messageCount":5,"participants":["Pete Wyckoff","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"188786","messageId":"1333930682-31670-1-git-send-email-pw@padd.com","threadId":"30185","inReplyTo":null,"subject":"[PATCH 0/3] git-p4: move to toplevel","fromName":"Pete Wyckoff","fromEmail":"pw@padd.com","sentAt":"2012-04-09T00:17:59Z","receivedAt":"2012-04-09T00:17:59Z","isPatch":true,"sender":{"key":"pw@padd.com","avatar":null},"body":"Users install git-p4 currently by copying the git-p4 script from\ncontrib/fast-import into a local or personal bin directory.  If\nit is part of the install, the command will be available\nautomatically.  Also, distributions may be more likely to pick it\nup either as part of a core git package, or as a separate add-on.\n\n\nThis series appeared as an RFC two months ago:\n\n    http://thread.gmane.org/gmane.comp.version-control.git/190584\n\nThe git-p4 code is in a single python script down in\ncontrib/fast-import now.  I'd like to move it up to the top-level\nsource directory of git to make it easier to build and\ndistribute.  Git-p4 already takes advantage of the git\ninfrastructure for documentation and testing, as well as the\ncommunity support (Junio, many reviewers).\n\nThe only observation from the RFC series was that git-p4 is\nuseful only in the non-open-source world.  While you can download\np4 for testing, a production environment is not free.  No one\nparticularly complained about that though.\n\nChanges since then:\n\n    - Fix bug in name in Documentation/git-p4.txt.\n\n    - Add to command-list.txt.\n\n    - Adapt to other git-p4 changes.\n\n    - I tested git-p4 on msysgit and cygwin, making sure it passes\n      all the tests.  Getting installers for git-p4 in those\n      environments should be possible soon.  Fixes for windows\n      will appear as a separate series.\n\n\nDeveloper note:  Like all scripts in git, the source file has\nan extension, git-p4.py, which is built with \"make\" to git-p4.\nBe sure to edit the source file, and to build before running tests.\n\nInstaller note: git-p4 uses the existing python dependencies in\nthe Makefile.  Be sure _not_ to set NO_PYTHON; build and install\nas usual.  If your python (2.6 or 2.7) is not in /usr/bin/python,\nset PYTHON_PATH accordingly.  Git-p4 does not require the\ngit_remote_helpers that are also installed.\n\n\nIt would be good to have this in next early in the 1.7.11 series\nso we can send the rest of the patches on top of this.  It\nconflicts fairly heavily with other changes, obviously.  I think\nthere are 4-5 other outstanding git-p4 series.\n\n\t\t-- Pete\n\nPete Wyckoff (3):\n  git-p4: move to toplevel\n  git p4: update name in script\n  git p4: use \"git p4\" directly in tests\n\n .gitignore                              |    1 +\n Documentation/git-p4.txt                |   19 +++----\n INSTALL                                 |    3 ++\n Makefile                                |    1 +\n command-list.txt                        |    1 +\n contrib/fast-import/git-p4.README       |   13 +++++\n contrib/fast-import/git-p4.bat          |    1 -\n contrib/fast-import/git-p4 => git-p4.py |   14 ++---\n t/lib-git-p4.sh                         |    8 ++-\n t/t9800-git-p4-basic.sh                 |   84 ++++++++++++++---------------\n t/t9801-git-p4-branch.sh                |   32 +++++------\n t/t9802-git-p4-filetype.sh              |   10 ++--\n t/t9803-git-p4-shell-metachars.sh       |   12 ++---\n t/t9804-git-p4-label.sh                 |    6 +--\n t/t9805-git-p4-skip-submit-edit.sh      |   22 ++++----\n t/t9806-git-p4-options.sh               |   28 +++++-----\n t/t9807-git-p4-submit.sh                |   22 ++++----\n t/t9808-git-p4-chdir.sh                 |    6 +--\n t/t9809-git-p4-client-view.sh           |   88 +++++++++++++++----------------\n t/t9810-git-p4-rcs.sh                   |   48 ++++++++---------\n 20 files changed, 214 insertions(+), 205 deletions(-)\n create mode 100644 contrib/fast-import/git-p4.README\n delete mode 100644 contrib/fast-import/git-p4.bat\n rename contrib/fast-import/git-p4 => git-p4.py (99%)\n\n-- \n1.7.10.4.gb369\n"},{"id":"188787","messageId":"1333930682-31670-2-git-send-email-pw@padd.com","threadId":"30185","inReplyTo":"1333930682-31670-1-git-send-email-pw@padd.com","subject":"[PATCH 1/3] git-p4: move to toplevel","fromName":"Pete Wyckoff","fromEmail":"pw@padd.com","sentAt":"2012-04-09T00:18:00Z","receivedAt":"2012-04-09T00:18:00Z","isPatch":true,"sender":{"key":"pw@padd.com","avatar":null},"body":"Move git-p4 out of contrib/fast-import into the main code base,\naside other foreign SCM tools.\n\nSigned-off-by: Pete Wyckoff <pw@padd.com>\n---\n .gitignore                              |    1 +\n Documentation/git-p4.txt                |   19 ++++++-------------\n INSTALL                                 |    3 +++\n Makefile                                |    1 +\n command-list.txt                        |    1 +\n contrib/fast-import/git-p4.README       |   13 +++++++++++++\n contrib/fast-import/git-p4.bat          |    1 -\n contrib/fast-import/git-p4 => git-p4.py |    0\n t/lib-git-p4.sh                         |    2 +-\n 9 files changed, 26 insertions(+), 15 deletions(-)\n create mode 100644 contrib/fast-import/git-p4.README\n delete mode 100644 contrib/fast-import/git-p4.bat\n rename contrib/fast-import/git-p4 => git-p4.py (100%)\n\ndiff --git a/.gitignore b/.gitignore\nindex 87fcc5f..5a0782f 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -92,6 +92,7 @@\n /git-name-rev\n /git-mv\n /git-notes\n+/git-p4\n /git-pack-redundant\n /git-pack-objects\n /git-pack-refs\ndiff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt\nindex b7c7929..3fac413 100644\n--- a/Documentation/git-p4.txt\n+++ b/Documentation/git-p4.txt\n@@ -31,13 +31,6 @@ the updated p4 remote branch.\n \n EXAMPLE\n -------\n-* Create an alias for 'git p4', using the full path to the 'git-p4'\n-  script if needed:\n-+\n-------------\n-$ git config --global alias.p4 '!git-p4'\n-------------\n-\n * Clone a repository:\n +\n ------------\n@@ -311,19 +304,19 @@ configuration file.  This allows future 'git p4 submit' commands to\n work properly; the submit command looks only at the variable and does\n not have a command-line option.\n \n-The full syntax for a p4 view is documented in 'p4 help views'.  Git-p4\n+The full syntax for a p4 view is documented in 'p4 help views'.  'Git p4'\n knows only a subset of the view syntax.  It understands multi-line\n mappings, overlays with '+', exclusions with '-' and double-quotes\n-around whitespace.  Of the possible wildcards, git-p4 only handles\n-'...', and only when it is at the end of the path.  Git-p4 will complain\n+around whitespace.  Of the possible wildcards, 'git p4' only handles\n+'...', and only when it is at the end of the path.  'Git p4' will complain\n if it encounters an unhandled wildcard.\n \n Bugs in the implementation of overlap mappings exist.  If multiple depot\n paths map through overlays to the same location in the repository,\n-git-p4 can choose the wrong one.  This is hard to solve without\n-dedicating a client spec just for git-p4.\n+'git p4' can choose the wrong one.  This is hard to solve without\n+dedicating a client spec just for 'git p4'.\n \n-The name of the client can be given to git-p4 in multiple ways.  The\n+The name of the client can be given to 'git p4' in multiple ways.  The\n variable 'git-p4.client' takes precedence if it exists.  Otherwise,\n normal p4 mechanisms of determining the client are used:  environment\n variable P4CLIENT, a file referenced by P4CONFIG, or the local host name.\ndiff --git a/INSTALL b/INSTALL\nindex 58b2b86..87e03bb 100644\n--- a/INSTALL\n+++ b/INSTALL\n@@ -131,6 +131,9 @@ Issues of note:\n \t  use English. Under autoconf the configure script will do this\n \t  automatically if it can't find libintl on the system.\n \n+\t- Python version 2.6 or later is needed to use the git-p4\n+\t  interface to Perforce.\n+\n  - Some platform specific issues are dealt with Makefile rules,\n    but depending on your specific installation, you may not\n    have all the libraries/tools needed, or you may have\ndiff --git a/Makefile b/Makefile\nindex be1957a..df86f2f 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -440,6 +440,7 @@ SCRIPT_PERL += git-send-email.perl\n SCRIPT_PERL += git-svn.perl\n \n SCRIPT_PYTHON += git-remote-testgit.py\n+SCRIPT_PYTHON += git-p4.py\n \n SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \\\n \t  $(patsubst %.perl,%,$(SCRIPT_PERL)) \\\ndiff --git a/command-list.txt b/command-list.txt\nindex a36ee9b..38ec5f7 100644\n--- a/command-list.txt\n+++ b/command-list.txt\n@@ -76,6 +76,7 @@ git-mktree                              plumbingmanipulators\n git-mv                                  mainporcelain common\n git-name-rev                            plumbinginterrogators\n git-notes                               mainporcelain\n+git-p4                                  foreignscminterface\n git-pack-objects                        plumbingmanipulators\n git-pack-redundant                      plumbinginterrogators\n git-pack-refs                           ancillarymanipulators\ndiff --git a/contrib/fast-import/git-p4.README b/contrib/fast-import/git-p4.README\nnew file mode 100644\nindex 0000000..d9a7684\n--- /dev/null\n+++ b/contrib/fast-import/git-p4.README\n@@ -0,0 +1,13 @@\n+The git-p4 script moved to the top-level of the git source directory.\n+\n+Invoke it as any other git command, like \"git p4 clone\", for instance.\n+\n+Note that the top-level git-p4.py script is now the source.  It is\n+built using make to git-p4, which will be installed.\n+\n+Windows users can copy the git-p4.py source script directly, possibly\n+invoking it through a batch file called \"git-p4.bat\" in the same folder.\n+It should contain just one line:\n+\n+    @python \"%~d0%~p0git-p4.py\" %*\n+\ndiff --git a/contrib/fast-import/git-p4.bat b/contrib/fast-import/git-p4.bat\ndeleted file mode 100644\nindex 9f97e88..0000000\n--- a/contrib/fast-import/git-p4.bat\n+++ /dev/null\n@@ -1 +0,0 @@\n-@python \"%~d0%~p0git-p4\" %*\ndiff --git a/contrib/fast-import/git-p4 b/git-p4.py\nsimilarity index 100%\nrename from contrib/fast-import/git-p4\nrename to git-p4.py\ndiff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh\nindex a870f9a..49edaae 100644\n--- a/t/lib-git-p4.sh\n+++ b/t/lib-git-p4.sh\n@@ -13,7 +13,7 @@ fi\n \ttest_done\n }\n \n-GITP4=\"$GIT_BUILD_DIR/contrib/fast-import/git-p4\"\n+GITP4=\"$GIT_BUILD_DIR/git-p4\"\n \n # Try to pick a unique port: guess a large number, then hope\n # no more than one of each test is running.\n-- \n1.7.10.4.gb369\n"},{"id":"188788","messageId":"1333930682-31670-3-git-send-email-pw@padd.com","threadId":"30185","inReplyTo":"1333930682-31670-1-git-send-email-pw@padd.com","subject":"[PATCH 2/3] git p4: update name in script","fromName":"Pete Wyckoff","fromEmail":"pw@padd.com","sentAt":"2012-04-09T00:18:01Z","receivedAt":"2012-04-09T00:18:01Z","isPatch":true,"sender":{"key":"pw@padd.com","avatar":null},"body":"In messages to the user and comments, change \"git-p4\" to \"git p4\".\n\nSigned-off-by: Pete Wyckoff <pw@padd.com>\n---\n git-p4.py |   14 +++++++-------\n 1 file changed, 7 insertions(+), 7 deletions(-)\n\ndiff --git a/git-p4.py b/git-p4.py\nindex c5362c4..f910d5a 100755\n--- a/git-p4.py\n+++ b/git-p4.py\n@@ -1129,12 +1129,12 @@ class P4Submit(Command, P4UserMap):\n                     print \"The following files should be scheduled for deletion with p4 delete:\"\n                     print \" \".join(filesToDelete)\n                 die(\"Please resolve and submit the conflict manually and \"\n-                    + \"continue afterwards with git-p4 submit --continue\")\n+                    + \"continue afterwards with git p4 submit --continue\")\n             elif response == \"w\":\n                 system(diffcmd + \" > patch.txt\")\n                 print \"Patch saved to patch.txt in %s !\" % self.clientPath\n                 die(\"Please resolve and submit the conflict manually and \"\n-                    \"continue afterwards with git-p4 submit --continue\")\n+                    \"continue afterwards with git p4 submit --continue\")\n \n         system(applyPatchCmd)\n \n@@ -1178,8 +1178,8 @@ class P4Submit(Command, P4UserMap):\n \n             if self.checkAuthorship and not self.p4UserIsMe(p4User):\n                 submitTemplate += \"######## git author %s does not match your p4 account.\\n\" % gitEmail\n-                submitTemplate += \"######## Use git-p4 option --preserve-user to modify authorship\\n\"\n-                submitTemplate += \"######## Use git-p4 config git-p4.skipUserNameCheck hides this message.\\n\"\n+                submitTemplate += \"######## Use option --preserve-user to modify authorship.\\n\"\n+                submitTemplate += \"######## Variable git-p4.skipUserNameCheck hides this message.\\n\"\n \n             separatorLine = \"######## everything below this line is just the diff #######\\n\"\n \n@@ -2254,7 +2254,7 @@ class P4Sync(Command, P4UserMap):\n \n         details[\"change\"] = newestRevision\n \n-        # Use time from top-most change so that all git-p4 clones of\n+        # Use time from top-most change so that all git p4 clones of\n         # the same p4 repo have the same commit SHA1s.\n         res = p4CmdList(\"describe -s %d\" % newestRevision)\n         newestTime = None\n@@ -2474,8 +2474,8 @@ class P4Sync(Command, P4UserMap):\n \n                 changes.sort()\n             else:\n-                # catch \"git-p4 sync\" with no new branches, in a repo that\n-                # does not have any existing git-p4 branches\n+                # catch \"git p4 sync\" with no new branches, in a repo that\n+                # does not have any existing p4 branches\n                 if len(args) == 0 and not self.p4BranchesInGit:\n                     die(\"No remote p4 branches.  Perhaps you never did \\\"git p4 clone\\\" in here.\");\n                 if self.verbose:\n-- \n1.7.10.4.gb369\n"},{"id":"188789","messageId":"1333930682-31670-4-git-send-email-pw@padd.com","threadId":"30185","inReplyTo":"1333930682-31670-1-git-send-email-pw@padd.com","subject":"[PATCH 3/3] git p4: use \"git p4\" directly in tests","fromName":"Pete Wyckoff","fromEmail":"pw@padd.com","sentAt":"2012-04-09T00:18:02Z","receivedAt":"2012-04-09T00:18:02Z","isPatch":true,"sender":{"key":"pw@padd.com","avatar":null},"body":"Drop the $GITP4 variable that was used to specify the script in\ncontrib/fast-import/.  The command is called \"git p4\" now, not\n\"git-p4\".  Variables will remain in a section called \"git-p4\".\n\nSigned-off-by: Pete Wyckoff <pw@padd.com>\n---\n t/lib-git-p4.sh                    |    8 ++--\n t/t9800-git-p4-basic.sh            |   84 +++++++++++++++++-----------------\n t/t9801-git-p4-branch.sh           |   32 ++++++-------\n t/t9802-git-p4-filetype.sh         |   10 ++--\n t/t9803-git-p4-shell-metachars.sh  |   12 ++---\n t/t9804-git-p4-label.sh            |    6 +--\n t/t9805-git-p4-skip-submit-edit.sh |   22 ++++-----\n t/t9806-git-p4-options.sh          |   28 ++++++------\n t/t9807-git-p4-submit.sh           |   22 ++++-----\n t/t9808-git-p4-chdir.sh            |    6 +--\n t/t9809-git-p4-client-view.sh      |   88 ++++++++++++++++++------------------\n t/t9810-git-p4-rcs.sh              |   48 ++++++++++----------\n 12 files changed, 182 insertions(+), 184 deletions(-)\n\ndiff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh\nindex 49edaae..b90986c 100644\n--- a/t/lib-git-p4.sh\n+++ b/t/lib-git-p4.sh\n@@ -1,20 +1,18 @@\n #\n-# Library code for git-p4 tests\n+# Library code for git p4 tests\n #\n \n . ./test-lib.sh\n \n if ! test_have_prereq PYTHON; then\n-\tskip_all='skipping git-p4 tests; python not available'\n+\tskip_all='skipping git p4 tests; python not available'\n \ttest_done\n fi\n ( p4 -h && p4d -h ) >/dev/null 2>&1 || {\n-\tskip_all='skipping git-p4 tests; no p4 or p4d'\n+\tskip_all='skipping git p4 tests; no p4 or p4d'\n \ttest_done\n }\n \n-GITP4=\"$GIT_BUILD_DIR/git-p4\"\n-\n # Try to pick a unique port: guess a large number, then hope\n # no more than one of each test is running.\n #\ndiff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh\nindex 486c8ee..13be144 100755\n--- a/t/t9800-git-p4-basic.sh\n+++ b/t/t9800-git-p4-basic.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 tests'\n+test_description='git p4 tests'\n \n . ./lib-git-p4.sh\n \n@@ -20,8 +20,8 @@ test_expect_success 'add p4 files' '\n \t)\n '\n \n-test_expect_success 'basic git-p4 clone' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+test_expect_success 'basic git p4 clone' '\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -30,8 +30,8 @@ test_expect_success 'basic git-p4 clone' '\n \t)\n '\n \n-test_expect_success 'git-p4 clone @all' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+test_expect_success 'git p4 clone @all' '\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -40,12 +40,12 @@ test_expect_success 'git-p4 clone @all' '\n \t)\n '\n \n-test_expect_success 'git-p4 sync uninitialized repo' '\n+test_expect_success 'git p4 sync uninitialized repo' '\n \ttest_create_repo \"$git\" &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n-\t\ttest_must_fail \"$GITP4\" sync\n+\t\ttest_must_fail git p4 sync\n \t)\n '\n \n@@ -53,13 +53,13 @@ test_expect_success 'git-p4 sync uninitialized repo' '\n # Create a git repo by hand.  Add a commit so that HEAD is valid.\n # Test imports a new p4 repository into a new git branch.\n #\n-test_expect_success 'git-p4 sync new branch' '\n+test_expect_success 'git p4 sync new branch' '\n \ttest_create_repo \"$git\" &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_commit head &&\n-\t\t\"$GITP4\" sync --branch=refs/remotes/p4/depot //depot@all &&\n+\t\tgit p4 sync --branch=refs/remotes/p4/depot //depot@all &&\n \t\tgit log --oneline p4/depot >lines &&\n \t\ttest_line_count = 2 lines\n \t)\n@@ -76,7 +76,7 @@ test_expect_success 'clone two dirs' '\n \t\tp4 add sub2/f2 &&\n \t\tp4 submit -d \"sub2/f2\"\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/sub1 //depot/sub2 &&\n+\tgit p4 clone --dest=\"$git\" //depot/sub1 //depot/sub2 &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -94,7 +94,7 @@ test_expect_success 'clone two dirs, @all' '\n \t\tp4 add sub1/f3 &&\n \t\tp4 submit -d \"sub1/f3\"\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/sub1@all //depot/sub2@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/sub1@all //depot/sub2@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -112,7 +112,7 @@ test_expect_success 'clone two dirs, @all, conflicting files' '\n \t\tp4 add sub2/f3 &&\n \t\tp4 submit -d \"sub2/f3\"\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/sub1@all //depot/sub2@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/sub1@all //depot/sub2@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -134,7 +134,7 @@ test_expect_success 'exit when p4 fails to produce marshaled output' '\n \texit 1\n \tEOF\n \tchmod 755 \"$badp4dir\"/p4 &&\n-\tPATH=\"$badp4dir:$PATH\" \"$GITP4\" clone --dest=\"$git\" //depot >errs 2>&1 ; retval=$? &&\n+\tPATH=\"$badp4dir:$PATH\" git p4 clone --dest=\"$git\" //depot >errs 2>&1 ; retval=$? &&\n \ttest $retval -eq 1 &&\n \ttest_must_fail grep -q Traceback errs\n '\n@@ -151,8 +151,8 @@ test_expect_success 'add p4 files with wildcards in the names' '\n \t)\n '\n \n-test_expect_success 'wildcard files git-p4 clone' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+test_expect_success 'wildcard files git p4 clone' '\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -164,7 +164,7 @@ test_expect_success 'wildcard files git-p4 clone' '\n '\n \n test_expect_success 'clone bare' '\n-\t\"$GITP4\" clone --dest=\"$git\" --bare //depot &&\n+\tgit p4 clone --dest=\"$git\" --bare //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -209,7 +209,7 @@ test_expect_success 'preserve users' '\n \tp4_add_user alice Alice &&\n \tp4_add_user bob Bob &&\n \tp4_grant_admin alice &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -218,7 +218,7 @@ test_expect_success 'preserve users' '\n \t\tgit commit --author \"Alice <alice@localhost>\" -m \"a change by alice\" file1 &&\n \t\tgit commit --author \"Bob <bob@localhost>\" -m \"a change by bob\" file2 &&\n \t\tgit config git-p4.skipSubmitEditCheck true &&\n-\t\tP4EDITOR=touch P4USER=alice P4PASSWD=secret \"$GITP4\" commit --preserve-user &&\n+\t\tP4EDITOR=touch P4USER=alice P4PASSWD=secret git p4 commit --preserve-user &&\n \t\tp4_check_commit_author file1 alice &&\n \t\tp4_check_commit_author file2 bob\n \t)\n@@ -227,7 +227,7 @@ test_expect_success 'preserve users' '\n # Test username support, submitting as bob, who lacks admin rights. Should\n # not submit change to p4 (git diff should show deltas).\n test_expect_success 'refuse to preserve users without perms' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -236,14 +236,14 @@ test_expect_success 'refuse to preserve users without perms' '\n \t\tgit commit --author \"Alice <alice@localhost>\" -m \"perms: a change by alice\" file1 &&\n \t\tP4EDITOR=touch P4USER=bob P4PASSWD=secret &&\n \t\texport P4EDITOR P4USER P4PASSWD &&\n-\t\ttest_must_fail \"$GITP4\" commit --preserve-user &&\n+\t\ttest_must_fail git p4 commit --preserve-user &&\n \t\t! git diff --exit-code HEAD..p4/master\n \t)\n '\n \n # What happens with unknown author? Without allowMissingP4Users it should fail.\n test_expect_success 'preserve user where author is unknown to p4' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -254,24 +254,24 @@ test_expect_success 'preserve user where author is unknown to p4' '\n \t\tgit commit --author \"Charlie <charlie@localhost>\" -m \"preserve: a change by charlie\" file1 &&\n \t\tP4EDITOR=touch P4USER=alice P4PASSWD=secret &&\n \t\texport P4EDITOR P4USER P4PASSWD &&\n-\t\ttest_must_fail \"$GITP4\" commit --preserve-user &&\n+\t\ttest_must_fail git p4 commit --preserve-user &&\n \t\t! git diff --exit-code HEAD..p4/master &&\n \n \t\techo \"$0: repeat with allowMissingP4Users enabled\" &&\n \t\tgit config git-p4.allowMissingP4Users true &&\n \t\tgit config git-p4.preserveUser true &&\n-\t\t\"$GITP4\" commit &&\n+\t\tgit p4 commit &&\n \t\tgit diff --exit-code HEAD..p4/master &&\n \t\tp4_check_commit_author file1 alice\n \t)\n '\n \n-# If we're *not* using --preserve-user, git-p4 should warn if we're submitting\n+# If we're *not* using --preserve-user, git p4 should warn if we're submitting\n # changes that are not all ours.\n # Test: user in p4 and user unknown to p4.\n # Test: warning disabled and user is the same.\n test_expect_success 'not preserving user with mixed authorship' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -281,20 +281,20 @@ test_expect_success 'not preserving user with mixed authorship' '\n \t\tmake_change_by_user usernamefile3 Derek derek@localhost &&\n \t\tP4EDITOR=cat P4USER=alice P4PASSWD=secret &&\n \t\texport P4EDITOR P4USER P4PASSWD &&\n-\t\t\"$GITP4\" commit |\\\n+\t\tgit p4 commit |\\\n \t\tgrep \"git author derek@localhost does not match\" &&\n \n \t\tmake_change_by_user usernamefile3 Charlie charlie@localhost &&\n-\t\t\"$GITP4\" commit |\\\n+\t\tgit p4 commit |\\\n \t\tgrep \"git author charlie@localhost does not match\" &&\n \n \t\tmake_change_by_user usernamefile3 alice alice@localhost &&\n-\t\t\"$GITP4\" commit |\\\n+\t\tgit p4 commit |\\\n \t\ttest_must_fail grep \"git author.*does not match\" &&\n \n \t\tgit config git-p4.skipUserNameCheck true &&\n \t\tmake_change_by_user usernamefile3 Charlie charlie@localhost &&\n-\t\t\"$GITP4\" commit |\\\n+\t\tgit p4 commit |\\\n \t\ttest_must_fail grep \"git author.*does not match\" &&\n \n \t\tp4_check_commit_author usernamefile3 alice\n@@ -313,7 +313,7 @@ test_expect_success 'initial import time from top change time' '\n \tp4change=$(p4 -G changes -m 1 //depot/... | marshal_dump change) &&\n \tp4time=$(p4 -G changes -m 1 //depot/... | marshal_dump time) &&\n \tsleep 3 &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -331,7 +331,7 @@ test_expect_success 'initial import time from top change time' '\n # Repeat, this time with a smaller threshold and confirm that the rename is\n # detected in P4.\n test_expect_success 'detect renames' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -340,7 +340,7 @@ test_expect_success 'detect renames' '\n \t\tgit mv file1 file4 &&\n \t\tgit commit -a -m \"Rename file1 to file4\" &&\n \t\tgit diff-tree -r -M HEAD &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file4 &&\n \t\tp4 filelog //depot/file4 | test_must_fail grep -q \"branch from\" &&\n \n@@ -348,7 +348,7 @@ test_expect_success 'detect renames' '\n \t\tgit commit -a -m \"Rename file4 to file5\" &&\n \t\tgit diff-tree -r -M HEAD &&\n \t\tgit config git-p4.detectRenames true &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file5 &&\n \t\tp4 filelog //depot/file5 | grep -q \"branch from //depot/file4\" &&\n \n@@ -360,7 +360,7 @@ test_expect_success 'detect renames' '\n \t\tlevel=$(git diff-tree -r -M HEAD | sed 1d | cut -f1 | cut -d\" \" -f5 | sed \"s/R0*//\") &&\n \t\ttest -n \"$level\" && test \"$level\" -gt 0 && test \"$level\" -lt 98 &&\n \t\tgit config git-p4.detectRenames $(($level + 2)) &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file6 &&\n \t\tp4 filelog //depot/file6 | test_must_fail grep -q \"branch from\" &&\n \n@@ -372,7 +372,7 @@ test_expect_success 'detect renames' '\n \t\tlevel=$(git diff-tree -r -M HEAD | sed 1d | cut -f1 | cut -d\" \" -f5 | sed \"s/R0*//\") &&\n \t\ttest -n \"$level\" && test \"$level\" -gt 2 && test \"$level\" -lt 100 &&\n \t\tgit config git-p4.detectRenames $(($level - 2)) &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file7 &&\n \t\tp4 filelog //depot/file7 | grep -q \"branch from //depot/file6\"\n \t)\n@@ -390,7 +390,7 @@ test_expect_success 'detect renames' '\n # Modify and copy a file, configure a smaller threshold in detectCopies and\n # confirm that copy is detected in P4.\n test_expect_success 'detect copies' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -400,7 +400,7 @@ test_expect_success 'detect copies' '\n \t\tgit add file8 &&\n \t\tgit commit -a -m \"Copy file2 to file8\" &&\n \t\tgit diff-tree -r -C HEAD &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file8 &&\n \t\tp4 filelog //depot/file8 | test_must_fail grep -q \"branch from\" &&\n \n@@ -409,7 +409,7 @@ test_expect_success 'detect copies' '\n \t\tgit commit -a -m \"Copy file2 to file9\" &&\n \t\tgit diff-tree -r -C HEAD &&\n \t\tgit config git-p4.detectCopies true &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file9 &&\n \t\tp4 filelog //depot/file9 | test_must_fail grep -q \"branch from\" &&\n \n@@ -418,7 +418,7 @@ test_expect_success 'detect copies' '\n \t\tgit add file2 file10 &&\n \t\tgit commit -a -m \"Modify and copy file2 to file10\" &&\n \t\tgit diff-tree -r -C HEAD &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file10 &&\n \t\tp4 filelog //depot/file10 | grep -q \"branch from //depot/file\" &&\n \n@@ -429,7 +429,7 @@ test_expect_success 'detect copies' '\n \t\tsrc=$(git diff-tree -r -C --find-copies-harder HEAD | sed 1d | cut -f2) &&\n \t\ttest \"$src\" = file10 &&\n \t\tgit config git-p4.detectCopiesHarder true &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file11 &&\n \t\tp4 filelog //depot/file11 | grep -q \"branch from //depot/file\" &&\n \n@@ -443,7 +443,7 @@ test_expect_success 'detect copies' '\n \t\tsrc=$(git diff-tree -r -C --find-copies-harder HEAD | sed 1d | cut -f2) &&\n \t\ttest \"$src\" = file10 &&\n \t\tgit config git-p4.detectCopies $(($level + 2)) &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file12 &&\n \t\tp4 filelog //depot/file12 | test_must_fail grep -q \"branch from\" &&\n \n@@ -457,7 +457,7 @@ test_expect_success 'detect copies' '\n \t\tsrc=$(git diff-tree -r -C --find-copies-harder HEAD | sed 1d | cut -f2) &&\n \t\ttest \"$src\" = file10 &&\n \t\tgit config git-p4.detectCopies $(($level - 2)) &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 filelog //depot/file13 &&\n \t\tp4 filelog //depot/file13 | grep -q \"branch from //depot/file\"\n \t)\ndiff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh\nindex d414705..2859256 100755\n--- a/t/t9801-git-p4-branch.sh\n+++ b/t/t9801-git-p4-branch.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 p4 branching tests'\n+test_description='git p4 tests for p4 branches'\n \n . ./lib-git-p4.sh\n \n@@ -63,7 +63,7 @@ test_expect_success 'basic p4 branches' '\n \n test_expect_success 'import main, no branch detection' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/main@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/main@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit log --oneline --graph --decorate --all &&\n@@ -74,7 +74,7 @@ test_expect_success 'import main, no branch detection' '\n \n test_expect_success 'import branch1, no branch detection' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/branch1@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/branch1@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit log --oneline --graph --decorate --all &&\n@@ -85,7 +85,7 @@ test_expect_success 'import branch1, no branch detection' '\n \n test_expect_success 'import branch2, no branch detection' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/branch2@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/branch2@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit log --oneline --graph --decorate --all &&\n@@ -96,7 +96,7 @@ test_expect_success 'import branch2, no branch detection' '\n \n test_expect_success 'import depot, no branch detection' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit log --oneline --graph --decorate --all &&\n@@ -107,7 +107,7 @@ test_expect_success 'import depot, no branch detection' '\n \n test_expect_success 'import depot, branch detection' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" --detect-branches //depot@all &&\n+\tgit p4 clone --dest=\"$git\" --detect-branches //depot@all &&\n \t(\n \t\tcd \"$git\" &&\n \n@@ -132,7 +132,7 @@ test_expect_success 'import depot, branch detection, branchList branch definitio\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.branchList main:branch1 &&\n-\t\t\"$GITP4\" clone --dest=. --detect-branches //depot@all &&\n+\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n \n \t\tgit log --oneline --graph --decorate --all &&\n \n@@ -189,15 +189,15 @@ test_expect_success 'add simple p4 branches' '\n # Configure branches through git-config and clone them.\n # All files are tested to make sure branches were cloned correctly.\n # Finally, make an update to branch1 on P4 side to check if it is imported\n-# correctly by git-p4.\n-test_expect_success 'git-p4 clone simple branches' '\n+# correctly by git p4.\n+test_expect_success 'git p4 clone simple branches' '\n \ttest_when_finished cleanup_git &&\n \ttest_create_repo \"$git\" &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.branchList branch1:branch2 &&\n \t\tgit config --add git-p4.branchList branch1:branch3 &&\n-\t\t\"$GITP4\" clone --dest=. --detect-branches //depot@all &&\n+\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n \t\tgit log --all --graph --decorate --stat &&\n \t\tgit reset --hard p4/depot/branch1 &&\n \t\ttest -f file1 &&\n@@ -221,13 +221,13 @@ test_expect_success 'git-p4 clone simple branches' '\n \t\tp4 submit -d \"update file2 in branch3\" &&\n \t\tcd \"$git\" &&\n \t\tgit reset --hard p4/depot/branch1 &&\n-\t\t\"$GITP4\" rebase &&\n+\t\tgit p4 rebase &&\n \t\tgrep file2_ file2\n \t)\n '\n \n # Create a complex branch structure in P4 depot to check if they are correctly\n-# cloned. The branches are created from older changelists to check if git-p4 is\n+# cloned. The branches are created from older changelists to check if git p4 is\n # able to correctly detect them.\n # The final expected structure is:\n # `branch1\n@@ -248,7 +248,7 @@ test_expect_success 'git-p4 clone simple branches' '\n #   `- file1\n #   `- file2\n #   `- file3\n-test_expect_success 'git-p4 add complex branches' '\n+test_expect_success 'git p4 add complex branches' '\n \ttest_when_finished cleanup_git &&\n \ttest_create_repo \"$git\" &&\n \t(\n@@ -263,10 +263,10 @@ test_expect_success 'git-p4 add complex branches' '\n \t)\n '\n \n-# Configure branches through git-config and clone them. git-p4 will only be able\n+# Configure branches through git-config and clone them. git p4 will only be able\n # to clone the original structure if it is able to detect the origin changelist\n # of each branch.\n-test_expect_success 'git-p4 clone complex branches' '\n+test_expect_success 'git p4 clone complex branches' '\n \ttest_when_finished cleanup_git &&\n \ttest_create_repo \"$git\" &&\n \t(\n@@ -275,7 +275,7 @@ test_expect_success 'git-p4 clone complex branches' '\n \t\tgit config --add git-p4.branchList branch1:branch3 &&\n \t\tgit config --add git-p4.branchList branch1:branch4 &&\n \t\tgit config --add git-p4.branchList branch1:branch5 &&\n-\t\t\"$GITP4\" clone --dest=. --detect-branches //depot@all &&\n+\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n \t\tgit log --all --graph --decorate --stat &&\n \t\tgit reset --hard p4/depot/branch1 &&\n \t\ttest_path_is_file file1 &&\ndiff --git a/t/t9802-git-p4-filetype.sh b/t/t9802-git-p4-filetype.sh\nindex 992bb8c..21924df 100755\n--- a/t/t9802-git-p4-filetype.sh\n+++ b/t/t9802-git-p4-filetype.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 p4 filetype tests'\n+test_description='git p4 filetype tests'\n \n . ./lib-git-p4.sh\n \n@@ -37,7 +37,7 @@ test_expect_success 'utf-16 file create' '\n \n test_expect_success 'utf-16 file test' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \t(\n \t\tcd \"$git\" &&\n \n@@ -84,7 +84,7 @@ test_expect_success 'keyword file test' '\n \tbuild_smush &&\n \ttest_when_finished rm -f k_smush.py ko_smush.py &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \t(\n \t\tcd \"$git\" &&\n \n@@ -94,7 +94,7 @@ test_expect_success 'keyword file test' '\n \t\t\"$PYTHON_PATH\" \"$TRASH_DIRECTORY/ko_smush.py\" <\"$cli/k-text-ko\" >cli-k-text-ko-smush &&\n \t\ttest_cmp cli-k-text-ko-smush k-text-ko &&\n \n-\t\t# utf16, even though p4 expands keywords, git-p4 does not\n+\t\t# utf16, even though p4 expands keywords, git p4 does not\n \t\t# try to undo that\n \t\ttest_cmp \"$cli/k-utf16-k\" k-utf16-k &&\n \t\ttest_cmp \"$cli/k-utf16-ko\" k-utf16-ko\n@@ -125,7 +125,7 @@ test_expect_success 'ignore apple' '\n \t\tp4 submit -d appledouble\n \t) &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot@all &&\n+\tgit p4 clone --dest=\"$git\" //depot@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest ! -f double.png\ndiff --git a/t/t9803-git-p4-shell-metachars.sh b/t/t9803-git-p4-shell-metachars.sh\nindex db67020..fbacff3 100755\n--- a/t/t9803-git-p4-shell-metachars.sh\n+++ b/t/t9803-git-p4-shell-metachars.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 transparency to shell metachars in filenames'\n+test_description='git p4 transparency to shell metachars in filenames'\n \n . ./lib-git-p4.sh\n \n@@ -18,7 +18,7 @@ test_expect_success 'init depot' '\n '\n \n test_expect_success 'shell metachars in filenames' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -28,7 +28,7 @@ test_expect_success 'shell metachars in filenames' '\n \t\techo f2 >\"file with spaces\" &&\n \t\tgit add \"file with spaces\" &&\n \t\tgit commit -m \"add files\" &&\n-\t\tP4EDITOR=touch \"$GITP4\" submit\n+\t\tP4EDITOR=touch git p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -39,7 +39,7 @@ test_expect_success 'shell metachars in filenames' '\n '\n \n test_expect_success 'deleting with shell metachars' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -47,7 +47,7 @@ test_expect_success 'deleting with shell metachars' '\n \t\tgit rm foo\\$bar &&\n \t\tgit rm file\\ with\\ spaces &&\n \t\tgit commit -m \"remove files\" &&\n-\t\tP4EDITOR=touch \"$GITP4\" submit\n+\t\tP4EDITOR=touch git p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -97,7 +97,7 @@ test_expect_success 'branch with shell char' '\n \t\tcd \"$git\" &&\n \n \t\tgit config git-p4.branchList main:branch\\$3 &&\n-\t\t\"$GITP4\" clone --dest=. --detect-branches //depot@all &&\n+\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n \t\tgit log --all --graph --decorate --stat &&\n \t\tgit reset --hard p4/depot/branch\\$3 &&\n \t\ttest -f shell_char_branch_file &&\ndiff --git a/t/t9804-git-p4-label.sh b/t/t9804-git-p4-label.sh\nindex a9e04ef..e30f80e 100755\n--- a/t/t9804-git-p4-label.sh\n+++ b/t/t9804-git-p4-label.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 p4 label tests'\n+test_description='git p4 label tests'\n \n . ./lib-git-p4.sh\n \n@@ -50,7 +50,7 @@ test_expect_success 'basic p4 labels' '\n \n \t\tp4 labels ... &&\n \n-\t\t\"$GITP4\" clone --dest=\"$git\" --detect-labels //depot@all &&\n+\t\tgit p4 clone --dest=\"$git\" --detect-labels //depot@all &&\n \t\tcd \"$git\" &&\n \n \t\tgit tag &&\n@@ -89,7 +89,7 @@ test_expect_failure 'two labels on the same changelist' '\n \n \t\tp4 labels ... &&\n \n-\t\t\"$GITP4\" clone --dest=\"$git\" --detect-labels //depot@all &&\n+\t\tgit p4 clone --dest=\"$git\" --detect-labels //depot@all &&\n \t\tcd \"$git\" &&\n \n \t\tgit tag | grep tag_f1 &&\ndiff --git a/t/t9805-git-p4-skip-submit-edit.sh b/t/t9805-git-p4-skip-submit-edit.sh\nindex df929e0..4a72f79 100755\n--- a/t/t9805-git-p4-skip-submit-edit.sh\n+++ b/t/t9805-git-p4-skip-submit-edit.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 skipSubmitEdit config variables'\n+test_description='git p4 skipSubmitEdit config variables'\n \n . ./lib-git-p4.sh\n \n@@ -19,33 +19,33 @@ test_expect_success 'init depot' '\n \n # this works because EDITOR is set to :\n test_expect_success 'no config, unedited, say yes' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n \t\techo line >>file1 &&\n \t\tgit commit -a -m \"change 2\" &&\n-\t\techo y | \"$GITP4\" submit &&\n+\t\techo y | git p4 submit &&\n \t\tp4 changes //depot/... >wc &&\n \t\ttest_line_count = 2 wc\n \t)\n '\n \n test_expect_success 'no config, unedited, say no' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n \t\techo line >>file1 &&\n \t\tgit commit -a -m \"change 3 (not really)\" &&\n-\t\tprintf \"bad response\\nn\\n\" | \"$GITP4\" submit &&\n+\t\tprintf \"bad response\\nn\\n\" | git p4 submit &&\n \t\tp4 changes //depot/... >wc &&\n \t\ttest_line_count = 2 wc\n \t)\n '\n \n test_expect_success 'skipSubmitEdit' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -54,21 +54,21 @@ test_expect_success 'skipSubmitEdit' '\n \t\tgit config core.editor /bin/false &&\n \t\techo line >>file1 &&\n \t\tgit commit -a -m \"change 3\" &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 changes //depot/... >wc &&\n \t\ttest_line_count = 3 wc\n \t)\n '\n \n test_expect_success 'skipSubmitEditCheck' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEditCheck true &&\n \t\techo line >>file1 &&\n \t\tgit commit -a -m \"change 4\" &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tp4 changes //depot/... >wc &&\n \t\ttest_line_count = 4 wc\n \t)\n@@ -76,7 +76,7 @@ test_expect_success 'skipSubmitEditCheck' '\n \n # check the normal case, where the template really is edited\n test_expect_success 'no config, edited' '\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \ted=\"$TRASH_DIRECTORY/ed.sh\" &&\n \ttest_when_finished \"rm \\\"$ed\\\"\" &&\n@@ -91,7 +91,7 @@ test_expect_success 'no config, edited' '\n \t\tcd \"$git\" &&\n \t\techo line >>file1 &&\n \t\tgit commit -a -m \"change 5\" &&\n-\t\tEDITOR=\"\\\"$ed\\\"\" \"$GITP4\" submit &&\n+\t\tEDITOR=\"\\\"$ed\\\"\" git p4 submit &&\n \t\tp4 changes //depot/... >wc &&\n \t\ttest_line_count = 5 wc\n \t)\ndiff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh\nindex 0571602..2892367 100755\n--- a/t/t9806-git-p4-options.sh\n+++ b/t/t9806-git-p4-options.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 options'\n+test_description='git p4 options'\n \n . ./lib-git-p4.sh\n \n@@ -24,11 +24,11 @@ test_expect_success 'init depot' '\n '\n \n test_expect_success 'clone no --git-dir' '\n-\ttest_must_fail \"$GITP4\" clone --git-dir=xx //depot\n+\ttest_must_fail git p4 clone --git-dir=xx //depot\n '\n \n test_expect_success 'clone --branch' '\n-\t\"$GITP4\" clone --branch=refs/remotes/p4/sb --dest=\"$git\" //depot &&\n+\tgit p4 clone --branch=refs/remotes/p4/sb --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -42,7 +42,7 @@ test_expect_success 'clone --changesfile' '\n \tcf=\"$TRASH_DIRECTORY/cf\" &&\n \ttest_when_finished \"rm \\\"$cf\\\"\" &&\n \tprintf \"1\\n3\\n\" >\"$cf\" &&\n-\t\"$GITP4\" clone --changesfile=\"$cf\" --dest=\"$git\" //depot &&\n+\tgit p4 clone --changesfile=\"$cf\" --dest=\"$git\" //depot &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -58,14 +58,14 @@ test_expect_success 'clone --changesfile, @all' '\n \tcf=\"$TRASH_DIRECTORY/cf\" &&\n \ttest_when_finished \"rm \\\"$cf\\\"\" &&\n \tprintf \"1\\n3\\n\" >\"$cf\" &&\n-\ttest_must_fail \"$GITP4\" clone --changesfile=\"$cf\" --dest=\"$git\" //depot@all\n+\ttest_must_fail git p4 clone --changesfile=\"$cf\" --dest=\"$git\" //depot@all\n '\n \n # imports both master and p4/master in refs/heads\n # requires --import-local on sync to find p4 refs/heads\n # does not update master on sync, just p4/master\n test_expect_success 'clone/sync --import-local' '\n-\t\"$GITP4\" clone --import-local --dest=\"$git\" //depot@1,2 &&\n+\tgit p4 clone --import-local --dest=\"$git\" //depot@1,2 &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -73,9 +73,9 @@ test_expect_success 'clone/sync --import-local' '\n \t\ttest_line_count = 2 lines &&\n \t\tgit log --oneline refs/heads/p4/master >lines &&\n \t\ttest_line_count = 2 lines &&\n-\t\ttest_must_fail \"$GITP4\" sync &&\n+\t\ttest_must_fail git p4 sync &&\n \n-\t\t\"$GITP4\" sync --import-local &&\n+\t\tgit p4 sync --import-local &&\n \t\tgit log --oneline refs/heads/master >lines &&\n \t\ttest_line_count = 2 lines &&\n \t\tgit log --oneline refs/heads/p4/master >lines &&\n@@ -84,7 +84,7 @@ test_expect_success 'clone/sync --import-local' '\n '\n \n test_expect_success 'clone --max-changes' '\n-\t\"$GITP4\" clone --dest=\"$git\" --max-changes 2 //depot@all &&\n+\tgit p4 clone --dest=\"$git\" --max-changes 2 //depot@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -101,7 +101,7 @@ test_expect_success 'clone --keep-path' '\n \t\tp4 add sub/dir/f4 &&\n \t\tp4 submit -d \"change 4\"\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" --keep-path //depot/sub/dir@all &&\n+\tgit p4 clone --dest=\"$git\" --keep-path //depot/sub/dir@all &&\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n@@ -109,7 +109,7 @@ test_expect_success 'clone --keep-path' '\n \t\ttest_path_is_file sub/dir/f4\n \t) &&\n \tcleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot/sub/dir@all &&\n+\tgit p4 clone --dest=\"$git\" //depot/sub/dir@all &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_path_is_file f4 &&\n@@ -126,7 +126,7 @@ test_expect_success 'clone --use-client-spec' '\n \t(\n \t\t# big usage message\n \t\texec >/dev/null &&\n-\t\ttest_must_fail \"$GITP4\" clone --dest=\"$git\" --use-client-spec\n+\t\ttest_must_fail git p4 clone --dest=\"$git\" --use-client-spec\n \t) &&\n \tcli2=\"$TRASH_DIRECTORY/cli2\" &&\n \tmkdir -p \"$cli2\" &&\n@@ -142,7 +142,7 @@ test_expect_success 'clone --use-client-spec' '\n \t) &&\n \tP4CLIENT=client2 &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" --use-client-spec //depot/... &&\n+\tgit p4 clone --dest=\"$git\" --use-client-spec //depot/... &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_path_is_file bus/dir/f4 &&\n@@ -156,7 +156,7 @@ test_expect_success 'clone --use-client-spec' '\n \t\tcd \"$git\" &&\n \t\tgit init &&\n \t\tgit config git-p4.useClientSpec true &&\n-\t\t\"$GITP4\" sync //depot/... &&\n+\t\tgit p4 sync //depot/... &&\n \t\tgit checkout -b master p4/master &&\n \t\ttest_path_is_file bus/dir/f4 &&\n \t\ttest_path_is_missing file1\ndiff --git a/t/t9807-git-p4-submit.sh b/t/t9807-git-p4-submit.sh\nindex b1f61e3..1541716 100755\n--- a/t/t9807-git-p4-submit.sh\n+++ b/t/t9807-git-p4-submit.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 submit'\n+test_description='git p4 submit'\n \n . ./lib-git-p4.sh\n \n@@ -19,7 +19,7 @@ test_expect_success 'init depot' '\n \n test_expect_success 'submit with no client dir' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\techo file2 >file2 &&\n@@ -27,20 +27,20 @@ test_expect_success 'submit with no client dir' '\n \t\tgit commit -m \"git commit 2\" &&\n \t\trm -rf \"$cli\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t)\n '\n \n # make two commits, but tell it to apply only from HEAD^\n test_expect_success 'submit --origin' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_commit \"file3\" &&\n \t\ttest_commit \"file4\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n-\t\t\"$GITP4\" submit --origin=HEAD^\n+\t\tgit p4 submit --origin=HEAD^\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -52,30 +52,30 @@ test_expect_success 'submit --origin' '\n \n test_expect_success 'submit with allowSubmit' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_commit \"file5\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.allowSubmit \"nobranch\" &&\n-\t\ttest_must_fail \"$GITP4\" submit &&\n+\t\ttest_must_fail git p4 submit &&\n \t\tgit config git-p4.allowSubmit \"nobranch,master\" &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t)\n '\n \n test_expect_success 'submit with master branch name from argv' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\ttest_commit \"file6\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n-\t\ttest_must_fail \"$GITP4\" submit nobranch &&\n+\t\ttest_must_fail git p4 submit nobranch &&\n \t\tgit branch otherbranch &&\n \t\tgit reset --hard HEAD^ &&\n \t\ttest_commit \"file7\" &&\n-\t\t\"$GITP4\" submit otherbranch\n+\t\tgit p4 submit otherbranch\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\ndiff --git a/t/t9808-git-p4-chdir.sh b/t/t9808-git-p4-chdir.sh\nindex f002283..2f8014a 100755\n--- a/t/t9808-git-p4-chdir.sh\n+++ b/t/t9808-git-p4-chdir.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 relative chdir'\n+test_description='git p4 relative chdir'\n \n . ./lib-git-p4.sh\n \n@@ -26,7 +26,7 @@ test_expect_success 'P4CONFIG and absolute dir clone' '\n \t(\n \t\tP4CONFIG=p4config && export P4CONFIG &&\n \t\tsane_unset P4PORT P4CLIENT &&\n-\t\t\"$GITP4\" clone --verbose --dest=\"$git\" //depot\n+\t\tgit p4 clone --verbose --dest=\"$git\" //depot\n \t)\n '\n \n@@ -38,7 +38,7 @@ test_expect_success 'P4CONFIG and relative dir clone' '\n \t(\n \t\tP4CONFIG=p4config && export P4CONFIG &&\n \t\tsane_unset P4PORT P4CLIENT &&\n-\t\t\"$GITP4\" clone --verbose --dest=\"git\" //depot\n+\t\tgit p4 clone --verbose --dest=\"git\" //depot\n \t)\n '\n \ndiff --git a/t/t9809-git-p4-client-view.sh b/t/t9809-git-p4-client-view.sh\nindex 773a516..796b02c 100755\n--- a/t/t9809-git-p4-client-view.sh\n+++ b/t/t9809-git-p4-client-view.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-test_description='git-p4 client view'\n+test_description='git p4 client view'\n \n . ./lib-git-p4.sh\n \n@@ -96,25 +96,25 @@ test_expect_success 'init depot' '\n test_expect_success 'unsupported view wildcard %%n' '\n \tclient_view \"//depot/%%%%1/sub/... //client/sub/%%%%1/...\" &&\n \ttest_when_finished cleanup_git &&\n-\ttest_must_fail \"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot\n+\ttest_must_fail git p4 clone --use-client-spec --dest=\"$git\" //depot\n '\n \n test_expect_success 'unsupported view wildcard *' '\n \tclient_view \"//depot/*/bar/... //client/*/bar/...\" &&\n \ttest_when_finished cleanup_git &&\n-\ttest_must_fail \"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot\n+\ttest_must_fail git p4 clone --use-client-spec --dest=\"$git\" //depot\n '\n \n test_expect_success 'wildcard ... only supported at end of spec 1' '\n \tclient_view \"//depot/.../file11 //client/.../file11\" &&\n \ttest_when_finished cleanup_git &&\n-\ttest_must_fail \"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot\n+\ttest_must_fail git p4 clone --use-client-spec --dest=\"$git\" //depot\n '\n \n test_expect_success 'wildcard ... only supported at end of spec 2' '\n \tclient_view \"//depot/.../a/... //client/.../a/...\" &&\n \ttest_when_finished cleanup_git &&\n-\ttest_must_fail \"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot\n+\ttest_must_fail git p4 clone --use-client-spec --dest=\"$git\" //depot\n '\n \n test_expect_success 'basic map' '\n@@ -122,7 +122,7 @@ test_expect_success 'basic map' '\n \tfiles=\"cli1/file11 cli1/file12\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -130,7 +130,7 @@ test_expect_success 'client view with no mappings' '\n \tclient_view &&\n \tclient_verify &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify\n '\n \n@@ -139,7 +139,7 @@ test_expect_success 'single file map' '\n \tfiles=\"file11\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -150,7 +150,7 @@ test_expect_success 'later mapping takes precedence (entire repo)' '\n \t       cli2/dir2/file21 cli2/dir2/file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -160,7 +160,7 @@ test_expect_success 'later mapping takes precedence (partial repo)' '\n \tfiles=\"file21 file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -176,7 +176,7 @@ test_expect_success 'depot path matching rejected client path' '\n \tfiles=\"cli12/file21 cli12/file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -187,7 +187,7 @@ test_expect_success 'exclusion wildcard, client rhs same (odd)' '\n \t\t    \"-//depot/dir2/... //client/...\" &&\n \tclient_verify &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify\n '\n \n@@ -197,7 +197,7 @@ test_expect_success 'exclusion wildcard, client rhs different (normal)' '\n \tfiles=\"dir1/file11 dir1/file12\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -207,7 +207,7 @@ test_expect_success 'exclusion single file' '\n \tfiles=\"dir1/file11 dir1/file12 dir2/file21\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -217,7 +217,7 @@ test_expect_success 'overlay wildcard' '\n \tfiles=\"cli/file11 cli/file12 cli/file21 cli/file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -227,7 +227,7 @@ test_expect_success 'overlay single file' '\n \tfiles=\"cli/file11 cli/file12 cli/file21\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -238,7 +238,7 @@ test_expect_success 'exclusion with later inclusion' '\n \tfiles=\"dir1/file11 dir1/file12 dir2incl/file21 dir2incl/file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -246,7 +246,7 @@ test_expect_success 'quotes on rhs only' '\n \tclient_view \"//depot/dir1/... \\\"//client/cdir 1/...\\\"\" &&\n \tclient_verify \"cdir 1/file11\" \"cdir 1/file12\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify \"cdir 1/file11\" \"cdir 1/file12\"\n '\n \n@@ -258,7 +258,7 @@ test_expect_success 'quotes on rhs only' '\n test_expect_success 'clone --use-client-spec sets useClientSpec' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config --bool git-p4.useClientSpec >actual &&\n@@ -273,7 +273,7 @@ test_expect_success 'subdir clone' '\n \tfiles=\"dir1/file11 dir1/file12 dir2/file21 dir2/file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \tgit_verify dir1/file11 dir1/file12\n '\n \n@@ -283,14 +283,14 @@ test_expect_success 'subdir clone' '\n test_expect_success 'subdir clone, submit modify' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\techo line >>dir1/file12 &&\n \t\tgit add dir1/file12 &&\n \t\tgit commit -m dir1/file12 &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -302,14 +302,14 @@ test_expect_success 'subdir clone, submit modify' '\n test_expect_success 'subdir clone, submit add' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\techo file13 >dir1/file13 &&\n \t\tgit add dir1/file13 &&\n \t\tgit commit -m dir1/file13 &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -320,13 +320,13 @@ test_expect_success 'subdir clone, submit add' '\n test_expect_success 'subdir clone, submit delete' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit rm dir1/file12 &&\n \t\tgit commit -m \"delete dir1/file12\" &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -337,7 +337,7 @@ test_expect_success 'subdir clone, submit delete' '\n test_expect_success 'subdir clone, submit copy' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n@@ -345,7 +345,7 @@ test_expect_success 'subdir clone, submit copy' '\n \t\tcp dir1/file11 dir1/file11a &&\n \t\tgit add dir1/file11a &&\n \t\tgit commit -m \"copy to dir1/file11a\" &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -356,14 +356,14 @@ test_expect_success 'subdir clone, submit copy' '\n test_expect_success 'subdir clone, submit rename' '\n \tclient_view \"//depot/... //client/...\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot/dir1 &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.detectRenames true &&\n \t\tgit mv dir1/file13 dir1/file13a &&\n \t\tgit commit -m \"rename dir1/file13 to dir1/file13a\" &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -419,7 +419,7 @@ test_expect_success 'overlay collision 1 to 2' '\n \tclient_verify $files &&\n \ttest_cmp actual \"$cli\"/filecollide &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files &&\n \ttest_cmp actual \"$git\"/filecollide\n '\n@@ -432,7 +432,7 @@ test_expect_failure 'overlay collision 2 to 1' '\n \tclient_verify $files &&\n \ttest_cmp actual \"$cli\"/filecollide &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files &&\n \ttest_cmp actual \"$git\"/filecollide\n '\n@@ -454,7 +454,7 @@ test_expect_failure 'overlay collision 1 to 2, but 2 deleted' '\n \tfiles=\"file11 file12 file21 file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -477,7 +477,7 @@ test_expect_failure 'overlay collision 1 to 2, but 2 deleted, then 1 updated' '\n \tfiles=\"file11 file12 file21 file22\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files\n '\n \n@@ -533,7 +533,7 @@ test_expect_success 'overlay sync: initial git checkout' '\n \techo dir1/colA >actual &&\n \tclient_verify $files &&\n \ttest_cmp actual \"$cli\"/colA &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files &&\n \ttest_cmp actual \"$git\"/colA\n '\n@@ -558,7 +558,7 @@ test_expect_success 'overlay sync: colA content switch' '\n \ttest_cmp actual \"$cli\"/colA &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files &&\n@@ -585,7 +585,7 @@ test_expect_success 'overlay sync: colB appears' '\n \ttest_cmp actual \"$cli\"/colB &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files &&\n@@ -613,7 +613,7 @@ test_expect_success 'overlay sync: colB disappears' '\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files\n@@ -671,7 +671,7 @@ test_expect_success 'overlay sync swap: initial git checkout' '\n \techo dir1/colA >actual &&\n \tclient_verify $files &&\n \ttest_cmp actual \"$cli\"/colA &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify $files &&\n \ttest_cmp actual \"$git\"/colA\n '\n@@ -696,7 +696,7 @@ test_expect_failure 'overlay sync swap: colA no content switch' '\n \ttest_cmp actual \"$cli\"/colA &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files &&\n@@ -723,7 +723,7 @@ test_expect_success 'overlay sync swap: colB appears' '\n \ttest_cmp actual \"$cli\"/colB &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files &&\n@@ -753,7 +753,7 @@ test_expect_failure 'overlay sync swap: colB no change' '\n \ttest_when_finished cleanup_git &&\n \t(\n \t\tcd \"$git\" &&\n-\t\t\"$GITP4\" sync --use-client-spec &&\n+\t\tgit p4 sync --use-client-spec &&\n \t\tgit merge --ff-only p4/master\n \t) &&\n \tgit_verify $files &&\n@@ -801,7 +801,7 @@ test_expect_success 'quotes on lhs only' '\n \tfiles=\"cdir1/file11 cdir1/file12\" &&\n \tclient_verify $files &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tclient_verify $files\n '\n \n@@ -809,7 +809,7 @@ test_expect_success 'quotes on both sides' '\n \tclient_view \"\\\"//depot/dir 1/...\\\" \\\"//client/cdir 1/...\\\"\" &&\n \tclient_verify \"cdir 1/file11\" \"cdir 1/file12\" &&\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --use-client-spec --dest=\"$git\" //depot &&\n+\tgit p4 clone --use-client-spec --dest=\"$git\" //depot &&\n \tgit_verify \"cdir 1/file11\" \"cdir 1/file12\"\n '\n \ndiff --git a/t/t9810-git-p4-rcs.sh b/t/t9810-git-p4-rcs.sh\nindex 49dfde0..d8d9ca4 100755\n--- a/t/t9810-git-p4-rcs.sh\n+++ b/t/t9810-git-p4-rcs.sh\n@@ -84,13 +84,13 @@ scrub_ko_check () {\n #\n test_expect_success 'edit far away from RCS lines' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tsed -i \"s/^line7/line7 edit/\" filek &&\n \t\tgit commit -m \"filek line7 edit\" filek &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tscrub_k_check filek\n \t)\n '\n@@ -100,14 +100,14 @@ test_expect_success 'edit far away from RCS lines' '\n #\n test_expect_success 'edit near RCS lines' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n \t\tsed -i \"s/^line4/line4 edit/\" filek &&\n \t\tgit commit -m \"filek line4 edit\" filek &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tscrub_k_check filek\n \t)\n '\n@@ -117,14 +117,14 @@ test_expect_success 'edit near RCS lines' '\n #\n test_expect_success 'edit keyword lines' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n \t\tsed -i \"/Revision/d\" filek &&\n \t\tgit commit -m \"filek remove Revision line\" filek &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tscrub_k_check filek\n \t)\n '\n@@ -134,14 +134,14 @@ test_expect_success 'edit keyword lines' '\n #\n test_expect_success 'scrub ko files differently' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n \t\tsed -i \"s/^line4/line4 edit/\" fileko &&\n \t\tgit commit -m \"fileko line4 edit\" fileko &&\n-\t\t\"$GITP4\" submit &&\n+\t\tgit p4 submit &&\n \t\tscrub_ko_check fileko &&\n \t\t! scrub_k_check fileko\n \t)\n@@ -168,7 +168,7 @@ test_expect_success 'cleanup after failure' '\n #\n test_expect_success 'do not scrub plain text' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n@@ -181,7 +181,7 @@ test_expect_success 'do not scrub plain text' '\n \t\t\tsed -i \"s/^line5/line5 p4 edit/\" file_text &&\n \t\t\tp4 submit -d \"file5 p4 edit\"\n \t\t) &&\n-\t\t! \"$GITP4\" submit &&\n+\t\t! git p4 submit &&\n \t\t(\n \t\t\t# exepct something like:\n \t\t\t#    file_text - file(s) not opened on this client\n@@ -239,7 +239,7 @@ p4_append_to_file () {\n # even though the change itself would otherwise apply cleanly.\n test_expect_success 'cope with rcs keyword expansion damage' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n@@ -252,10 +252,10 @@ test_expect_success 'cope with rcs keyword expansion damage' '\n \n \t\tgit add kwfile1.c &&\n \t\tgit commit -m \"Zap an RCS kw line\" &&\n-\t\t\"$GITP4\" submit &&\n-\t\t\"$GITP4\" rebase &&\n+\t\tgit p4 submit &&\n+\t\tgit p4 rebase &&\n \t\tgit diff p4/master &&\n-\t\t\"$GITP4\" commit &&\n+\t\tgit p4 commit &&\n \t\techo \"try modifying in both\" &&\n \t\tcd \"$cli\" &&\n \t\tp4 edit kwfile1.c &&\n@@ -265,8 +265,8 @@ test_expect_success 'cope with rcs keyword expansion damage' '\n \t\techo \"line from git at the top\" | cat - kwfile1.c >kwfile1.c.new &&\n \t\tmv kwfile1.c.new kwfile1.c &&\n \t\tgit commit -m \"Add line in git at the top\" kwfile1.c &&\n-\t\t\"$GITP4\" rebase &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 rebase &&\n+\t\tgit p4 submit\n \t)\n '\n \n@@ -280,7 +280,7 @@ test_expect_success 'cope with rcs keyword file deletion' '\n \t\tcat kwdelfile.c &&\n \t\tgrep 1 kwdelfile.c\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tgrep Revision kwdelfile.c &&\n@@ -288,7 +288,7 @@ test_expect_success 'cope with rcs keyword file deletion' '\n \t\tgit commit -m \"Delete a file containing RCS keywords\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -301,7 +301,7 @@ test_expect_success 'cope with rcs keyword file deletion' '\n # work fine without any special handling.\n test_expect_success 'Add keywords in git which match the default p4 values' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\techo \"NewKW: \\$Revision\\$\" >>kwfile1.c &&\n@@ -309,7 +309,7 @@ test_expect_success 'Add keywords in git which match the default p4 values' '\n \t\tgit commit -m \"Adding RCS keywords in git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -325,7 +325,7 @@ test_expect_success 'Add keywords in git which match the default p4 values' '\n #\n test_expect_failure 'Add keywords in git which do not match the default p4 values' '\n \ttest_when_finished cleanup_git &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\techo \"NewKW2: \\$Revision:1\\$\" >>kwfile1.c &&\n@@ -333,7 +333,7 @@ test_expect_failure 'Add keywords in git which do not match the default p4 value\n \t\tgit commit -m \"Adding RCS keywords in git\" &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n-\t\t\"$GITP4\" submit\n+\t\tgit p4 submit\n \t) &&\n \t(\n \t\tcd \"$cli\" &&\n@@ -356,7 +356,7 @@ test_expect_success 'merge conflict handling still works' '\n \t\tp4 add -t ktext merge2.c &&\n \t\tp4 submit -d \"add merge test file\"\n \t) &&\n-\t\"$GITP4\" clone --dest=\"$git\" //depot &&\n+\tgit p4 clone --dest=\"$git\" //depot &&\n \t(\n \t\tcd \"$git\" &&\n \t\tsed -e \"/Hello/d\" merge2.c >merge2.c.tmp &&\n@@ -374,7 +374,7 @@ test_expect_success 'merge conflict handling still works' '\n \t\ttest -f merge2.c &&\n \t\tgit config git-p4.skipSubmitEdit true &&\n \t\tgit config git-p4.attemptRCSCleanup true &&\n-\t\t!(echo \"s\" | \"$GITP4\" submit) &&\n+\t\t!(echo \"s\" | git p4 submit) &&\n \t\tgit rebase --skip &&\n \t\t! test -f merge2.c\n \t)\n-- \n1.7.10.4.gb369\n"},{"id":"188804","messageId":"7vfwccwyb7.fsf@alter.siamese.dyndns.org","threadId":"30185","inReplyTo":"1333930682-31670-1-git-send-email-pw@padd.com","subject":"Re: [PATCH 0/3] git-p4: move to toplevel","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-09T18:32:44Z","receivedAt":"2012-04-09T18:32:44Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Pete Wyckoff <pw@padd.com> writes:\n\n> The only observation from the RFC series was that git-p4 is useful only\n> in the non-open-source world.  While you can download p4 for testing, a\n> production environment is not free.  No one particularly complained\n> about that though.\n\nWell, we already have things like msysgit and our Makefile supports\ncompilation on Solaris or MacOS, where you need to have commercial\nproducts to make use of Git.  I do not think this project is about making\nlife difficult for people who use commercial product in order to promote\nfree software anyway, so...\n"}]}