Merge branch 'bc/portable' into next

* bc/portable:
  Remove python 2.5'isms
  Makefile: add PYTHON_PATH to GIT-BUILD-OPTIONS

Conflicts:
	Makefile
This commit is contained in:
Junio C Hamano
2010-06-13 21:02:44 -07:00
7 changed files with 40 additions and 13 deletions

View File

@@ -1951,6 +1951,7 @@ GIT-BUILD-OPTIONS: FORCE
@echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
@echo PERL_PATH=\''$(subst ','\'',$(PERL_PATH_SQ))'\' >>$@
@echo DIFF=\''$(subst ','\'',$(subst ','\'',$(DIFF)))'\' >>$@
@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

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

@@ -9,13 +9,13 @@ test_description='Test remote-helper import and export commands'
if test_have_prereq PYTHON && "$PYTHON_PATH" -c '
import sys
if sys.hexversion < 0x02050000:
if sys.hexversion < 0x02040000:
sys.exit(1)
'
then
:
else
say 'skipping git remote-testgit tests: requires Python 2.5 or newer'
say 'skipping git remote-testgit tests: requires Python 2.4 or newer'
test_done
fi