Skip to content

Commit

Permalink
Fix revision saving when the given commitid doesn't exist in the repo…
Browse files Browse the repository at this point in the history
… (save without info)

Fix mercurial and subversion error reporting and logging
  • Loading branch information
tobami committed Aug 21, 2011
1 parent 6041592 commit 8c25971
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 16 deletions.
6 changes: 4 additions & 2 deletions codespeed/mercurial.py
@@ -1,5 +1,7 @@
import os, datetime
from subprocess import Popen, PIPE
import logging

from django.conf import settings


Expand Down Expand Up @@ -52,8 +54,8 @@ def getlogs(endrev, startrev):
p = Popen(cmd, stdout=PIPE, stderr=PIPE, cwd=working_copy)
stdout, stderr = p.communicate()

if stderr:
return [{'error': True, 'message': stderr}]
if p.returncode != 0:
raise RuntimeError(str(stderr))
else:
stdout = stdout.rstrip('\n')#Remove last newline
logs = []
Expand Down
11 changes: 4 additions & 7 deletions codespeed/subversion.py
Expand Up @@ -34,14 +34,11 @@ def get_login(realm, username, may_save):
)
)
except pysvn.ClientError:
return [
{'error': True,
'message': "Could not resolve '" + newrev.branch.project.repo_path + "'"}]
raise RuntimeError(
"Could not resolve '" + newrev.branch.project.repo_path + "'")
except ValueError:
return [{
'error': True,
'message': "'%s' is an invalid subversion revision number" % newrev.commitid
}]
raise RuntimeError(
"'%s' is an invalid subversion revision number" % newrev.commitid)
log_messages.reverse()
s = len(log_messages)
while s > loglimit:
Expand Down
13 changes: 6 additions & 7 deletions codespeed/views.py
Expand Up @@ -765,8 +765,6 @@ def saverevisioninfo(rev):
rev.author = log['author']
rev.date = log['date']
rev.message = log['message']
else:
rev.date = datetime.now()


def validate_result(item):
Expand Down Expand Up @@ -830,7 +828,7 @@ def save_result(data):
return res, True
else:
assert(isinstance(res, Environment))
e = res
env = res

p, created = Project.objects.get_or_create(name=data["project"])
branch, created = Branch.objects.get_or_create(name=data["branch"],
Expand All @@ -852,20 +850,21 @@ def save_result(data):
if p.repo_type not in ("N", ""):
try:
saverevisioninfo(rev)
except StandardError, e:
except RuntimeError as e:
logging.warning("unable to save revision %s info: %s", rev, e,
exc_info=True)
rev.save()

exe, created = Executable.objects.get_or_create(
name=data['executable'],
project=p
)

try:
r = Result.objects.get(
revision=rev,executable=exe,benchmark=b,environment=e)
revision=rev,executable=exe,benchmark=b,environment=env)
except Result.DoesNotExist:
r = Result(revision=rev,executable=exe,benchmark=b,environment=e)
r = Result(revision=rev,executable=exe,benchmark=b,environment=env)

r.value = data["result_value"]
if 'result_date' in data:
Expand All @@ -882,7 +881,7 @@ def save_result(data):
r.full_clean()
r.save()

return (rev, exe, e), False
return (rev, exe, env), False


def add_result(request):
Expand Down

0 comments on commit 8c25971

Please sign in to comment.