import os
import subprocess
-from region import *
-from style import modified_regions
+from .region import *
+from .style import modified_regions
class AbstractRepo(object):
__metaclass__ = ABCMeta
def repo_base(self):
if self._repo_base is None:
self._repo_base = subprocess.check_output(
- [ self.git, "rev-parse", "--show-toplevel" ]).rstrip("\n")
+ [ self.git, "rev-parse", "--show-toplevel" ]) \
+ .decode().rstrip("\n")
return self._repo_base
try:
self._head_revision = subprocess.check_output(
[ self.git, "rev-parse", "--verify", "HEAD" ],
- stderr=subprocess.PIPE).rstrip("\n")
+ stderr=subprocess.PIPE).decode().rstrip("\n")
except subprocess.CalledProcessError:
# Assume that the repo is empty and use the semi-magic
# empty tree revision if git rev-parse returned an error.
if filter:
cmd += [ "--diff-filter=%s" % filter ]
cmd += [ self.head_revision(), "--" ] + files
- status = subprocess.check_output(cmd).rstrip("\n")
+ status = subprocess.check_output(cmd).decode().rstrip("\n")
if status:
return [ f.split("\t") for f in status.split("\n") ]
def file_from_index(self, name):
return subprocess.check_output(
- [ self.git, "show", ":%s" % (name, ) ])
+ [ self.git, "show", ":%s" % (name, ) ]).decode()
def file_from_head(self, name):
return subprocess.check_output(
- [ self.git, "show", "%s:%s" % (self.head_revision(), name) ])
+ [ self.git, "show", "%s:%s" % (self.head_revision(), name) ]) \
+ .decode()
class MercurialRepo(AbstractRepo):
def __init__(self):
def repo_base(self):
if self._repo_base is None:
self._repo_base = subprocess.check_output(
- [ self.hg, "root" ]).rstrip("\n")
+ [ self.hg, "root" ]).decode().rstrip("\n")
return self._repo_base
return modified_regions(old, new, context=context)
def status(self, filter=None):
- files = subprocess.check_output([ self.hg, "status" ]).rstrip("\n")
+ files = subprocess.check_output([ self.hg, "status" ]) \
+ .decode().rstrip("\n")
if files:
return [ f.split(" ") for f in files.split("\n") ]
else:
return []
def file_from_tip(self, name):
- return subprocess.check_output([ self.hg, "cat", name ])
+ return subprocess.check_output([ self.hg, "cat", name ]) \
+ .decode()
def detect_repo(path="."):
"""Auto-detect the revision control system used for a source code