mirror of
https://github.com/git/git.git
synced 2026-01-18 22:56:21 +00:00
Merge branch 'master' into next
* master: git-p4: test for absolute PWD problem git-p4: use absolute directory for PWD env var git-p4: submit test for auto-creating clientPath git-p4: ensure submit clientPath exists before chdir
This commit is contained in:
@@ -53,9 +53,10 @@ def p4_build_cmd(cmd):
|
||||
|
||||
def chdir(dir):
|
||||
# P4 uses the PWD environment variable rather than getcwd(). Since we're
|
||||
# not using the shell, we have to set it ourselves.
|
||||
os.environ['PWD']=dir
|
||||
# not using the shell, we have to set it ourselves. This path could
|
||||
# be relative, so go there first, then figure out where we ended up.
|
||||
os.chdir(dir)
|
||||
os.environ['PWD'] = os.getcwd()
|
||||
|
||||
def die(msg):
|
||||
if verbose:
|
||||
@@ -1116,6 +1117,10 @@ class P4Submit(Command, P4UserMap):
|
||||
print "Perforce checkout for depot path %s located at %s" % (self.depotPath, self.clientPath)
|
||||
self.oldWorkingDirectory = os.getcwd()
|
||||
|
||||
# ensure the clientPath exists
|
||||
if not os.path.exists(self.clientPath):
|
||||
os.makedirs(self.clientPath)
|
||||
|
||||
chdir(self.clientPath)
|
||||
print "Synchronizing p4 checkout..."
|
||||
p4_sync("...")
|
||||
|
||||
38
t/t9807-submit.sh
Executable file
38
t/t9807-submit.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='git-p4 submit'
|
||||
|
||||
. ./lib-git-p4.sh
|
||||
|
||||
test_expect_success 'start p4d' '
|
||||
start_p4d
|
||||
'
|
||||
|
||||
test_expect_success 'init depot' '
|
||||
(
|
||||
cd "$cli" &&
|
||||
echo file1 >file1 &&
|
||||
p4 add file1 &&
|
||||
p4 submit -d "change 1"
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'submit with no client dir' '
|
||||
test_when_finished cleanup_git &&
|
||||
"$GITP4" clone --dest="$git" //depot &&
|
||||
(
|
||||
cd "$git" &&
|
||||
echo file2 >file2 &&
|
||||
git add file2 &&
|
||||
git commit -m "git commit 2" &&
|
||||
rm -rf "$cli" &&
|
||||
git config git-p4.skipSubmitEdit true &&
|
||||
"$GITP4" submit
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'kill p4d' '
|
||||
kill_p4d
|
||||
'
|
||||
|
||||
test_done
|
||||
49
t/t9808-chdir.sh
Executable file
49
t/t9808-chdir.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='git-p4 relative chdir'
|
||||
|
||||
. ./lib-git-p4.sh
|
||||
|
||||
test_expect_success 'start p4d' '
|
||||
start_p4d
|
||||
'
|
||||
|
||||
test_expect_success 'init depot' '
|
||||
(
|
||||
cd "$cli" &&
|
||||
echo file1 >file1 &&
|
||||
p4 add file1 &&
|
||||
p4 submit -d "change 1"
|
||||
)
|
||||
'
|
||||
|
||||
# P4 reads from P4CONFIG file to find its server params, if the
|
||||
# environment variable is set
|
||||
test_expect_success 'P4CONFIG and absolute dir clone' '
|
||||
printf "P4PORT=$P4PORT\nP4CLIENT=$P4CLIENT\n" >p4config &&
|
||||
test_when_finished "rm \"$TRASH_DIRECTORY/p4config\"" &&
|
||||
test_when_finished cleanup_git &&
|
||||
(
|
||||
P4CONFIG=p4config && export P4CONFIG &&
|
||||
unset P4PORT P4CLIENT &&
|
||||
"$GITP4" clone --verbose --dest="$git" //depot
|
||||
)
|
||||
'
|
||||
|
||||
# same thing, but with relative directory name, note missing $ on --dest
|
||||
test_expect_success 'P4CONFIG and relative dir clone' '
|
||||
printf "P4PORT=$P4PORT\nP4CLIENT=$P4CLIENT\n" >p4config &&
|
||||
test_when_finished "rm \"$TRASH_DIRECTORY/p4config\"" &&
|
||||
test_when_finished cleanup_git &&
|
||||
(
|
||||
P4CONFIG=p4config && export P4CONFIG &&
|
||||
unset P4PORT P4CLIENT &&
|
||||
"$GITP4" clone --verbose --dest="git" //depot
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'kill p4d' '
|
||||
kill_p4d
|
||||
'
|
||||
|
||||
test_done
|
||||
Reference in New Issue
Block a user