diff --git a/hgext/convert/common.py b/hgext/convert/common.py --- a/hgext/convert/common.py +++ b/hgext/convert/common.py @@ -447,7 +447,7 @@ if not self.path: return try: - fp = open(self.path, 'r') + fp = open(self.path, 'rb') except IOError as err: if err.errno != errno.ENOENT: raise @@ -471,7 +471,7 @@ def __setitem__(self, key, value): if self.fp is None: try: - self.fp = open(self.path, 'a') + self.fp = open(self.path, 'ab') except IOError as err: raise error.Abort( _('could not open map file %r: %s') % diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -202,7 +202,7 @@ return {} m = {} try: - fp = open(path, 'r') + fp = open(path, 'rb') for i, line in enumerate(util.iterfile(fp)): line = line.splitlines()[0].rstrip() if not line: @@ -407,13 +407,13 @@ authorfile = self.authorfile if authorfile: self.ui.status(_('writing author map file %s\n') % authorfile) - ofile = open(authorfile, 'w+') + ofile = open(authorfile, 'wb+') for author in self.authors: ofile.write("%s=%s\n" % (author, self.authors[author])) ofile.close() def readauthormap(self, authorfile): - afile = open(authorfile, 'r') + afile = open(authorfile, 'rb') for line in afile: line = line.strip() diff --git a/hgext/convert/cvs.py b/hgext/convert/cvs.py --- a/hgext/convert/cvs.py +++ b/hgext/convert/cvs.py @@ -46,8 +46,8 @@ self.tags = {} self.lastbranch = {} self.socket = None - self.cvsroot = open(os.path.join(cvs, "Root")).read()[:-1] - self.cvsrepo = open(os.path.join(cvs, "Repository")).read()[:-1] + self.cvsroot = open(os.path.join(cvs, "Root"), 'rb').read()[:-1] + self.cvsrepo = open(os.path.join(cvs, "Repository"), 'rb').read()[:-1] self.encoding = encoding.encoding self._connect() @@ -141,7 +141,7 @@ passw = "A" cvspass = os.path.expanduser("~/.cvspass") try: - pf = open(cvspass) + pf = open(cvspass, 'rb') for line in pf.read().splitlines(): part1, part2 = line.split(' ', 1) # /1 :pserver:user@example.com:2401/cvsroot/foo diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py --- a/hgext/convert/cvsps.py +++ b/hgext/convert/cvsps.py @@ -132,7 +132,7 @@ # Get the real directory in the repository try: - prefix = open(os.path.join('CVS','Repository')).read().strip() + prefix = open(os.path.join('CVS','Repository'), 'rb').read().strip() directory = prefix if prefix == ".": prefix = "" @@ -144,7 +144,7 @@ # Use the Root file in the sandbox, if it exists try: - root = open(os.path.join('CVS','Root')).read().strip() + root = open(os.path.join('CVS','Root'), 'rb').read().strip() except IOError: pass @@ -177,7 +177,7 @@ if cache == 'update': try: ui.note(_('reading cvs log cache %s\n') % cachefile) - oldlog = pickle.load(open(cachefile)) + oldlog = pickle.load(open(cachefile, 'rb')) for e in oldlog: if not (util.safehasattr(e, 'branchpoints') and util.safehasattr(e, 'commitid') and @@ -486,7 +486,7 @@ # write the new cachefile ui.note(_('writing cvs log cache %s\n') % cachefile) - pickle.dump(log, open(cachefile, 'w')) + pickle.dump(log, open(cachefile, 'wb')) else: log = oldlog diff --git a/hgext/convert/filemap.py b/hgext/convert/filemap.py --- a/hgext/convert/filemap.py +++ b/hgext/convert/filemap.py @@ -71,7 +71,7 @@ (lex.infile, lex.lineno, listname, name)) return 1 return 0 - lex = shlex.shlex(open(path), path, True) + lex = shlex.shlex(open(path, 'rb'), path, True) lex.wordchars += '!@#$%^&*()-=+[]{}|;:,./<>?' cmd = lex.get_token() while cmd: diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py --- a/hgext/convert/hg.py +++ b/hgext/convert/hg.py @@ -625,7 +625,7 @@ def converted(self, rev, destrev): if self.convertfp is None: - self.convertfp = open(self.repo.vfs.join('shamap'), 'a') + self.convertfp = open(self.repo.vfs.join('shamap'), 'ab') self.convertfp.write('%s %s\n' % (destrev, rev)) self.convertfp.flush() diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -231,7 +231,7 @@ def httpcheck(ui, path, proto): try: opener = urlreq.buildopener() - rsp = opener.open('%s://%s/!svn/ver/0/.svn' % (proto, path)) + rsp = opener.open('%s://%s/!svn/ver/0/.svn' % (proto, path), 'rb') data = rsp.read() except urlerr.httperror as inst: if inst.code != 404: @@ -639,7 +639,7 @@ return if self.convertfp is None: self.convertfp = open(os.path.join(self.wc, '.svn', 'hg-shamap'), - 'a') + 'ab') self.convertfp.write('%s %d\n' % (destrev, self.revnum(rev))) self.convertfp.flush() @@ -1158,7 +1158,7 @@ if created: hook = os.path.join(created, 'hooks', 'pre-revprop-change') - fp = open(hook, 'w') + fp = open(hook, 'wb') fp.write(pre_revprop_change) fp.close() util.setflags(hook, False, True) @@ -1308,7 +1308,7 @@ self.setexec = [] fd, messagefile = tempfile.mkstemp(prefix='hg-convert-') - fp = os.fdopen(fd, pycompat.sysstr('w')) + fp = os.fdopen(fd, pycompat.sysstr('wb')) fp.write(commit.desc) fp.close() try: