Browse Source

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
maint
Junio C Hamano 15 years ago
parent
commit
919e06b228
  1. 1
      Makefile
  2. 15
      git-remote-testgit.py
  3. 12
      git-request-pull.sh
  4. 4
      git_remote_helpers/git/exporter.py
  5. 4
      git_remote_helpers/git/importer.py
  6. 16
      git_remote_helpers/git/non_local.py
  7. 9
      git_remote_helpers/git/repo.py
  8. 4
      t/Makefile
  9. 2
      t/aggregate-results.sh
  10. 4
      t/t5150-request-pull.sh
  11. 10
      t/t5800-remote-helpers.sh
  12. 10
      t/t7006-pager.sh

1
Makefile

@ -1884,6 +1884,7 @@ GIT-CFLAGS: FORCE @@ -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)))'\' >>$@

15
git-remote-testgit.py

@ -1,6 +1,12 @@ @@ -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): @@ -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): @@ -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)

12
git-request-pull.sh

@ -1,4 +1,4 @@ @@ -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: @@ -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

4
git_remote_helpers/git/exporter.py

@ -48,4 +48,6 @@ class GitExporter(object): @@ -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

4
git_remote_helpers/git/importer.py

@ -35,4 +35,6 @@ class GitImporter(object): @@ -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

16
git_remote_helpers/git/non_local.py

@ -29,7 +29,9 @@ class NonLocalGit(object): @@ -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): @@ -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): @@ -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

9
git_remote_helpers/git/repo.py

@ -19,7 +19,10 @@ def is_remote(url): @@ -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): @@ -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:

4
t/Makefile

@ -35,7 +35,9 @@ aggregate-results-and-cleanup: $(T) @@ -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:

2
t/aggregate-results.sh

@ -6,7 +6,7 @@ failed=0 @@ -6,7 +6,7 @@ failed=0
broken=0
total=0

for file
while read file
do
while read type value
do

4
t/t5150-request-pull.sh

@ -67,7 +67,7 @@ test_expect_success 'setup: two scripts for reading pull requests' ' @@ -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' ' @@ -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

10
t/t5800-remote-helpers.sh

@ -7,9 +7,15 @@ test_description='Test remote-helper import and export commands' @@ -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


10
t/t7006-pager.sh

@ -40,7 +40,7 @@ else @@ -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' ' @@ -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 @@ -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' ' @@ -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' ' @@ -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 &&


Loading…
Cancel
Save