##// END OF EJS Templates
export: serialize revisions to be exported per destination file...
Yuya Nishihara -
r37619:2e0e6131 default
parent child Browse files
Show More
@@ -1014,7 +1014,7 b' class _unclosablefile(object):'
1014 1014 def __exit__(self, exc_type, exc_value, exc_tb):
1015 1015 pass
1016 1016
1017 def makefileobj(ctx, pat, mode='wb', modemap=None, **props):
1017 def makefileobj(ctx, pat, mode='wb', **props):
1018 1018 writable = mode not in ('r', 'rb')
1019 1019
1020 1020 if isstdiofilename(pat):
@@ -1025,10 +1025,6 b" def makefileobj(ctx, pat, mode='wb', mod"
1025 1025 fp = repo.ui.fin
1026 1026 return _unclosablefile(fp)
1027 1027 fn = makefilename(ctx, pat, **props)
1028 if modemap is not None:
1029 mode = modemap.get(fn, mode)
1030 if mode == 'wb':
1031 modemap[fn] = 'ab'
1032 1028 return open(fn, mode)
1033 1029
1034 1030 def openrevlog(repo, cmd, file_, opts):
@@ -1579,18 +1575,23 b' def _exportfntemplate(repo, revs, fntemp'
1579 1575 """Export changesets to possibly multiple files"""
1580 1576 total = len(revs)
1581 1577 revwidth = max(len(str(rev)) for rev in revs)
1582 filemode = {}
1578 filemap = util.sortdict() # filename: [(seqno, rev), ...]
1583 1579
1584 1580 for seqno, rev in enumerate(revs, 1):
1585 1581 ctx = repo[rev]
1586 fo = makefileobj(ctx, fntemplate, mode='wb', modemap=filemode,
1587 total=total, seqno=seqno, revwidth=revwidth)
1588 dest = fo.name
1589 def write(s, **kw):
1590 fo.write(s)
1591 repo.ui.note("%s\n" % dest)
1592 _exportsingle(repo, ctx, match, switch_parent, seqno, write, diffopts)
1593 fo.close()
1582 dest = makefilename(ctx, fntemplate,
1583 total=total, seqno=seqno, revwidth=revwidth)
1584 filemap.setdefault(dest, []).append((seqno, rev))
1585
1586 for dest in filemap:
1587 with open(dest, 'wb') as fo:
1588 repo.ui.note("%s\n" % dest)
1589 def write(s, **kw):
1590 fo.write(s)
1591 for seqno, rev in filemap[dest]:
1592 ctx = repo[rev]
1593 _exportsingle(repo, ctx, match, switch_parent, seqno, write,
1594 diffopts)
1594 1595
1595 1596 def export(repo, revs, fntemplate='hg-%h.patch', fp=None, switch_parent=False,
1596 1597 opts=None, match=None):
General Comments 0
You need to be logged in to leave comments. Login now