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
This commit is contained in:
Junio C Hamano 2010-06-21 06:02:42 -07:00
commit 919e06b228
12 changed files with 63 additions and 28 deletions

View File

@ -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)))'\' >>$@

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -6,7 +6,7 @@ failed=0
broken=0
total=0
for file
while read file
do
while read type value
do

View File

@ -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

View File

@ -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

View File

@ -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 &&