35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
|
|
import py
|
|
|
|
class ChangeItem:
|
|
def __init__(self, repo, revision, line):
|
|
self.repo = py.path.local(repo)
|
|
self.revision = int(revision)
|
|
self.action = action = line[:4]
|
|
self.path = line[4:].strip()
|
|
self.added = action[0] == "A"
|
|
self.modified = action[0] == "M"
|
|
self.propchanged = action[1] == "U"
|
|
self.deleted = action[0] == "D"
|
|
|
|
def svnurl(self):
|
|
return py.path.svnurl("file://%s/%s" %(self.repo, self.path), self.revision)
|
|
|
|
def __repr__(self):
|
|
return "<ChangeItem %r>" %(self.action + self.path)
|
|
|
|
def changed(repo, revision):
|
|
out = py.process.cmdexec("svnlook changed -r %s %s" %(revision, repo))
|
|
l = []
|
|
for line in out.strip().split('\n'):
|
|
l.append(ChangeItem(repo, revision, line))
|
|
return l
|
|
|
|
def author(repo, revision):
|
|
out = py.process.cmdexec("svnlook author -r %s %s" %(revision, repo))
|
|
return out.strip()
|
|
|
|
def youngest(repo):
|
|
out = py.process.cmdexec("svnlook youngest %s" %(repo,))
|
|
return int(out)
|