##// END OF EJS Templates
mq: use list of already known target files instead of matching object for diff...
FUJIWARA Katsunori -
r16366:913d1fa6 default
parent child Browse files
Show More
@@ -950,6 +950,7 b' class queue(object):'
950 inclsubs = self.checksubstate(repo)
950 inclsubs = self.checksubstate(repo)
951 if inclsubs:
951 if inclsubs:
952 inclsubs.append('.hgsubstate')
952 inclsubs.append('.hgsubstate')
953 substatestate = repo.dirstate['.hgsubstate']
953 if opts.get('include') or opts.get('exclude') or pats:
954 if opts.get('include') or opts.get('exclude') or pats:
954 if inclsubs:
955 if inclsubs:
955 pats = list(pats or []) + inclsubs
956 pats = list(pats or []) + inclsubs
@@ -959,9 +960,11 b' class queue(object):'
959 if f != '.hgsubstate': # .hgsubstate is auto-created
960 if f != '.hgsubstate': # .hgsubstate is auto-created
960 raise util.Abort('%s: %s' % (f, msg))
961 raise util.Abort('%s: %s' % (f, msg))
961 match.bad = badfn
962 match.bad = badfn
962 m, a, r, d = repo.status(match=match)[:4]
963 changes = repo.status(match=match)
964 m, a, r, d = changes[:4]
963 else:
965 else:
964 m, a, r, d = self.checklocalchanges(repo, force=True)
966 changes = self.checklocalchanges(repo, force=True)
967 m, a, r, d = changes
965 match = scmutil.matchfiles(repo, m + a + r + inclsubs)
968 match = scmutil.matchfiles(repo, m + a + r + inclsubs)
966 if len(repo[None].parents()) > 1:
969 if len(repo[None].parents()) > 1:
967 raise util.Abort(_('cannot manage merge changesets'))
970 raise util.Abort(_('cannot manage merge changesets'))
@@ -1010,8 +1013,15 b' class queue(object):'
1010 p.write(msg)
1013 p.write(msg)
1011 if commitfiles:
1014 if commitfiles:
1012 parent = self.qparents(repo, n)
1015 parent = self.qparents(repo, n)
1016 if inclsubs:
1017 if substatestate in 'a?':
1018 changes[1].append('.hgsubstate')
1019 elif substatestate in 'r':
1020 changes[2].append('.hgsubstate')
1021 else: # modified
1022 changes[0].append('.hgsubstate')
1013 chunks = patchmod.diff(repo, node1=parent, node2=n,
1023 chunks = patchmod.diff(repo, node1=parent, node2=n,
1014 match=match, opts=diffopts)
1024 changes=changes, opts=diffopts)
1015 for chunk in chunks:
1025 for chunk in chunks:
1016 p.write(chunk)
1026 p.write(chunk)
1017 p.close()
1027 p.close()
General Comments 0
You need to be logged in to leave comments. Login now