# HG changeset patch # User FUJIWARA Katsunori # Date 1416389714 -32400 # Node ID bf8c3172255ccd83af6a283c58592783a9aaf3aa # Parent 115af8de76a4942a87071b1a5fe19787e612948a vfs: add "readlines" and "tryreadlines" This patch allows "readlines" and "tryreadlines" to take "mode" argument, because "subrepo" requires to read files not in "rb" (binary, default for vfs) but in "r" (text) mode in subsequent patch. diff -r 115af8de76a4 -r bf8c3172255c mercurial/scmutil.py --- a/mercurial/scmutil.py Wed Nov 19 18:35:14 2014 +0900 +++ b/mercurial/scmutil.py Wed Nov 19 18:35:14 2014 +0900 @@ -188,6 +188,15 @@ raise return "" + def tryreadlines(self, path, mode='rb'): + '''gracefully return an empty array for missing files''' + try: + return self.readlines(path, mode=mode) + except IOError, inst: + if inst.errno != errno.ENOENT: + raise + return [] + def open(self, path, mode="r", text=False, atomictemp=False): self.open = self.__call__ return self.__call__(path, mode, text, atomictemp) @@ -199,6 +208,13 @@ finally: fp.close() + def readlines(self, path, mode='rb'): + fp = self(path, mode=mode) + try: + return fp.readlines() + finally: + fp.close() + def write(self, path, data): fp = self(path, 'wb') try: