summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-06-21 13:02:42 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-06-21 13:02:42 (GMT)
commit919e06b2288270f47c55759e8810b87f74609caf (patch)
tree2fe295a61f1d61e56db0626ec33131375c2152f8
parenta031d76eebbe85c93f5d4a2a4cafacf417df9bce (diff)
parent23b093ee087e99049585487f59e262a0e0662b6e (diff)
downloadgit-919e06b2288270f47c55759e8810b87f74609caf.zip
git-919e06b2288270f47c55759e8810b87f74609caf.tar.gz
git-919e06b2288270f47c55759e8810b87f74609caf.tar.bz2
Merge branch 'bc/portable'
* bc/portable: Remove python 2.5'isms Makefile: add PYTHON_PATH to GIT-BUILD-OPTIONS t/aggregate-results: accomodate systems with small max argument list length t/t7006: ignore return status of shell's unset builtin t/t5150: remove space from sed script git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh t/t5800: skip if python version is older than 2.5
-rw-r--r--Makefile1
-rw-r--r--git-remote-testgit.py15
-rwxr-xr-xgit-request-pull.sh12
-rw-r--r--git_remote_helpers/git/exporter.py4
-rw-r--r--git_remote_helpers/git/importer.py4
-rw-r--r--git_remote_helpers/git/non_local.py16
-rw-r--r--git_remote_helpers/git/repo.py9
-rw-r--r--t/Makefile4
-rwxr-xr-xt/aggregate-results.sh2
-rwxr-xr-xt/t5150-request-pull.sh4
-rwxr-xr-xt/t5800-remote-helpers.sh10
-rwxr-xr-xt/t7006-pager.sh10
12 files changed, 63 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index b979fb7..a863a06 100644
--- a/Makefile
+++ b/Makefile
@@ -1884,6 +1884,7 @@ GIT-CFLAGS: FORCE
GIT-BUILD-OPTIONS: FORCE
@echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
@echo PERL_PATH=\''$(subst ','\'',$(PERL_PATH_SQ))'\' >>$@
+ @echo PYTHON_PATH=\''$(subst ','\'',$(PYTHON_PATH_SQ))'\' >>$@
@echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@
@echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@
@echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@
diff --git a/git-remote-testgit.py b/git-remote-testgit.py
index 9253922..df9d512 100644
--- a/git-remote-testgit.py
+++ b/git-remote-testgit.py
@@ -1,6 +1,12 @@
#!/usr/bin/env python
-import hashlib
+# hashlib is only available in python >= 2.5
+try:
+ import hashlib
+ _digest = hashlib.sha1
+except ImportError:
+ import sha
+ _digest = sha.new
import sys
import os
sys.path.insert(0, os.getenv("GITPYTHONLIB","."))
@@ -19,7 +25,7 @@ def get_repo(alias, url):
repo.get_revs()
repo.get_head()
- hasher = hashlib.sha1()
+ hasher = _digest()
hasher.update(repo.path)
repo.hash = hasher.hexdigest()
@@ -133,7 +139,10 @@ def do_export(repo, args):
path = os.path.join(dirname, 'testgit.marks')
print path
- print path if os.path.exists(path) else ""
+ if os.path.exists(path):
+ print path
+ else:
+ print ""
sys.stdout.flush()
update_local_repo(repo)
diff --git a/git-request-pull.sh b/git-request-pull.sh
index 74238b0..6fdea39 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -1,4 +1,4 @@
-#!/bin/sh -e
+#!/bin/sh
# Copyright 2005, Ryan Anderson <ryan@michonline.com>
#
# This file is licensed under the GPL v2, or a later version
@@ -70,10 +70,10 @@ git show -s --format='The following changes since commit %H:
%s (%ci)
-are available in the git repository at:' $baserev
-echo " $url $branch"
-echo
+are available in the git repository at:' $baserev &&
+echo " $url $branch" &&
+echo &&
-git shortlog ^$baserev $headrev
-git diff -M --stat --summary $patch $merge_base..$headrev
+git shortlog ^$baserev $headrev &&
+git diff -M --stat --summary $patch $merge_base..$headrev || exit
exit $status
diff --git a/git_remote_helpers/git/exporter.py b/git_remote_helpers/git/exporter.py
index dfaab00..f40f9d6 100644
--- a/git_remote_helpers/git/exporter.py
+++ b/git_remote_helpers/git/exporter.py
@@ -48,4 +48,6 @@ class GitExporter(object):
args = ["sed", "s_refs/heads/_" + self.repo.prefix + "_g"]
- subprocess.check_call(args, stdin=p1.stdout)
+ child = subprocess.Popen(args, stdin=p1.stdout)
+ if child.wait() != 0:
+ raise CalledProcessError
diff --git a/git_remote_helpers/git/importer.py b/git_remote_helpers/git/importer.py
index af2919d..70a7127 100644
--- a/git_remote_helpers/git/importer.py
+++ b/git_remote_helpers/git/importer.py
@@ -35,4 +35,6 @@ class GitImporter(object):
if os.path.exists(path):
args.append("--import-marks=" + path)
- subprocess.check_call(args)
+ child = subprocess.Popen(args)
+ if child.wait() != 0:
+ raise CalledProcessError
diff --git a/git_remote_helpers/git/non_local.py b/git_remote_helpers/git/non_local.py
index d75ef8f..f27389b 100644
--- a/git_remote_helpers/git/non_local.py
+++ b/git_remote_helpers/git/non_local.py
@@ -29,7 +29,9 @@ class NonLocalGit(object):
os.makedirs(path)
args = ["git", "clone", "--bare", "--quiet", self.repo.gitpath, path]
- subprocess.check_call(args)
+ child = subprocess.Popen(args)
+ if child.wait() != 0:
+ raise CalledProcessError
return path
@@ -43,10 +45,14 @@ class NonLocalGit(object):
die("could not find repo at %s", path)
args = ["git", "--git-dir=" + path, "fetch", "--quiet", self.repo.gitpath]
- subprocess.check_call(args)
+ child = subprocess.Popen(args)
+ if child.wait() != 0:
+ raise CalledProcessError
args = ["git", "--git-dir=" + path, "update-ref", "refs/heads/master", "FETCH_HEAD"]
- subprocess.check_call(args)
+ child = subprocess.Popen(args)
+ if child.wait() != 0:
+ raise CalledProcessError
def push(self, base):
"""Pushes from the non-local repo to base.
@@ -58,4 +64,6 @@ class NonLocalGit(object):
die("could not find repo at %s", path)
args = ["git", "--git-dir=" + path, "push", "--quiet", self.repo.gitpath]
- subprocess.check_call(args)
+ child = subprocess.Popen(args)
+ if child.wait() != 0:
+ raise CalledProcessError
diff --git a/git_remote_helpers/git/repo.py b/git_remote_helpers/git/repo.py
index 82d5f78..58e1cdb 100644
--- a/git_remote_helpers/git/repo.py
+++ b/git_remote_helpers/git/repo.py
@@ -19,7 +19,10 @@ def is_remote(url):
prefixes = ["http", "file", "git"]
- return any(url.startswith(i) for i in prefixes)
+ for prefix in prefixes:
+ if url.startswith(prefix):
+ return True
+ return False
class GitRepo(object):
"""Repo object representing a repo.
@@ -50,7 +53,9 @@ class GitRepo(object):
path = ".cached_revs"
ofile = open(path, "w")
- subprocess.check_call(args, stdout=ofile)
+ child = subprocess.Popen(args, stdout=ofile)
+ if child.wait() != 0:
+ raise CalledProcessError
output = open(path).readlines()
self.revmap = dict(sanitize(i) for i in output)
if "HEAD" in self.revmap:
diff --git a/t/Makefile b/t/Makefile
index 25c559b..cd008a3 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -35,7 +35,9 @@ aggregate-results-and-cleanup: $(T)
$(MAKE) clean
aggregate-results:
- '$(SHELL_PATH_SQ)' ./aggregate-results.sh test-results/t*-*
+ for f in test-results/t*-*; do \
+ echo "$$f"; \
+ done | '$(SHELL_PATH_SQ)' ./aggregate-results.sh
# we can test NO_OPTIMIZE_COMMITS independently of LC_ALL
full-svn-test:
diff --git a/t/aggregate-results.sh b/t/aggregate-results.sh
index d5bab75..d206b7c 100755
--- a/t/aggregate-results.sh
+++ b/t/aggregate-results.sh
@@ -6,7 +6,7 @@ failed=0
broken=0
total=0
-for file
+while read file
do
while read type value
do
diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh
index 169d3ea..9cc0a42 100755
--- a/t/t5150-request-pull.sh
+++ b/t/t5150-request-pull.sh
@@ -67,7 +67,7 @@ test_expect_success 'setup: two scripts for reading pull requests' '
cat <<-\EOT >read-request.sed &&
#!/bin/sed -nf
- / in the git repository at:$/! d
+ / in the git repository at:$/!d
n
/^$/ n
s/^[ ]*\(.*\) \([^ ]*\)/please pull\
@@ -102,7 +102,7 @@ test_expect_success 'setup: two scripts for reading pull requests' '
/^ [a-zA-Z]/ n
/^[a-zA-Z]* ([0-9]*):\$/ n
/^\$/ N
- /^\n[a-zA-Z]* ([0-9]*):\$/! {
+ /^\n[a-zA-Z]* ([0-9]*):\$/!{
a\\
SHORTLOG
D
diff --git a/t/t5800-remote-helpers.sh b/t/t5800-remote-helpers.sh
index 75a0163..4ee7b65 100755
--- a/t/t5800-remote-helpers.sh
+++ b/t/t5800-remote-helpers.sh
@@ -7,9 +7,15 @@ test_description='Test remote-helper import and export commands'
. ./test-lib.sh
-if ! test_have_prereq PYTHON
+if test_have_prereq PYTHON && "$PYTHON_PATH" -c '
+import sys
+if sys.hexversion < 0x02040000:
+ sys.exit(1)
+'
then
- say 'skipping git remote-testgit tests: requires Python support'
+ :
+else
+ say 'skipping git remote-testgit tests: requires Python 2.4 or newer'
test_done
fi
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 3bc7a2a..a6f3677 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -40,7 +40,7 @@ else
fi
test_expect_success 'setup' '
- unset GIT_PAGER GIT_PAGER_IN_USE &&
+ unset GIT_PAGER GIT_PAGER_IN_USE;
test_might_fail git config --unset core.pager &&
PAGER="cat >paginated.out" &&
@@ -159,7 +159,7 @@ test_expect_success 'color when writing to a file intended for a pager' '
'
test_expect_success 'determine default pager' '
- unset PAGER GIT_PAGER &&
+ unset PAGER GIT_PAGER;
test_might_fail git config --unset core.pager ||
cleanup_fail &&
@@ -173,7 +173,7 @@ then
fi
test_expect_success SIMPLEPAGER 'default pager is used by default' '
- unset PAGER GIT_PAGER &&
+ unset PAGER GIT_PAGER;
test_might_fail git config --unset core.pager &&
rm -f default_pager_used ||
cleanup_fail &&
@@ -192,7 +192,7 @@ test_expect_success SIMPLEPAGER 'default pager is used by default' '
'
test_expect_success TTY 'PAGER overrides default pager' '
- unset GIT_PAGER &&
+ unset GIT_PAGER;
test_might_fail git config --unset core.pager &&
rm -f PAGER_used ||
cleanup_fail &&
@@ -204,7 +204,7 @@ test_expect_success TTY 'PAGER overrides default pager' '
'
test_expect_success TTY 'core.pager overrides PAGER' '
- unset GIT_PAGER &&
+ unset GIT_PAGER;
rm -f core.pager_used ||
cleanup_fail &&