mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
svnexternals: keep diff() simple for the caller, return a list
This commit is contained in:
parent
8b65a18ce1
commit
3213066d78
@ -97,8 +97,8 @@ def commit(ui, repo, rev_ctx, meta, base_revision, svn):
|
||||
elif parent_branch and parent_branch != 'default':
|
||||
branch_path = 'branches/%s' % parent_branch
|
||||
|
||||
extchanges = list(svnexternals.diff(svnexternals.parse(parent),
|
||||
svnexternals.parse(rev_ctx)))
|
||||
extchanges = svnexternals.diff(svnexternals.parse(parent),
|
||||
svnexternals.parse(rev_ctx))
|
||||
addeddirs, deleteddirs = _getdirchanges(svn, branch_path, parent, rev_ctx,
|
||||
rev_ctx.files(), extchanges)
|
||||
deleteddirs = set(deleteddirs)
|
||||
|
@ -61,18 +61,20 @@ class externalsfile(dict):
|
||||
self.setdefault(target, []).append(line[1:])
|
||||
|
||||
def diff(ext1, ext2):
|
||||
"""Compare 2 externalsfile and yield tuples like (dir, value1, value2)
|
||||
where value1 is the external value in ext1 for dir or None, and
|
||||
value2 the same in ext2.
|
||||
"""Compare 2 externalsfile and return a list of tuples like (dir,
|
||||
value1, value2) where value1 is the external value in ext1 for dir
|
||||
or None, and value2 the same in ext2.
|
||||
"""
|
||||
changes = []
|
||||
for d in ext1:
|
||||
if d not in ext2:
|
||||
yield d, '\n'.join(ext1[d]), None
|
||||
changes.append((d, '\n'.join(ext1[d]), None))
|
||||
elif ext1[d] != ext2[d]:
|
||||
yield d, '\n'.join(ext1[d]), '\n'.join(ext2[d])
|
||||
changes.append((d, '\n'.join(ext1[d]), '\n'.join(ext2[d])))
|
||||
for d in ext2:
|
||||
if d not in ext1:
|
||||
yield d, None, '\n'.join(ext2[d])
|
||||
changes.append((d, None, '\n'.join(ext2[d])))
|
||||
return changes
|
||||
|
||||
class BadDefinition(Exception):
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user