Show More
@@ -1575,8 +1575,18 class queue(object): | |||
|
1575 | 1575 | m = list(mm) |
|
1576 | 1576 | r = list(dd) |
|
1577 | 1577 | a = list(aa) |
|
1578 | c = [filter(matchfn, l) for l in (m, a, r)] | |
|
1579 | match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs)) | |
|
1578 | ||
|
1579 | # create 'match' that includes the files to be recommited. | |
|
1580 | # apply matchfn via repo.status to ensure correct case handling. | |
|
1581 | cm, ca, cr, cd = repo.status(patchparent, match=matchfn)[:4] | |
|
1582 | allmatches = set(cm + ca + cr + cd) | |
|
1583 | refreshchanges = [x.intersection(allmatches) for x in (mm, aa, dd)] | |
|
1584 | ||
|
1585 | files = set(inclsubs) | |
|
1586 | for x in refreshchanges: | |
|
1587 | files.update(x) | |
|
1588 | match = scmutil.matchfiles(repo, files) | |
|
1589 | ||
|
1580 | 1590 | bmlist = repo[top].bookmarks() |
|
1581 | 1591 | |
|
1582 | 1592 | try: |
@@ -1656,6 +1666,7 class queue(object): | |||
|
1656 | 1666 | n = newcommit(repo, oldphase, message, user, ph.date, |
|
1657 | 1667 | match=match, force=True) |
|
1658 | 1668 | # only write patch after a successful commit |
|
1669 | c = [list(x) for x in refreshchanges] | |
|
1659 | 1670 | if inclsubs: |
|
1660 | 1671 | self.putsubstate2changes(substatestate, c) |
|
1661 | 1672 | chunks = patchmod.diff(repo, patchparent, |
@@ -160,4 +160,15 case changes. | |||
|
160 | 160 | $ hg status -A |
|
161 | 161 | C MiXeDcAsE |
|
162 | 162 | |
|
163 | $ hg qpop -a | |
|
164 | popping refresh-casechange | |
|
165 | patch queue now empty | |
|
166 | $ hg qnew refresh-pattern | |
|
167 | $ hg status | |
|
168 | $ echo A > A | |
|
169 | $ hg add | |
|
170 | adding A | |
|
171 | $ hg qrefresh a # issue 3271, qrefresh with file handled case wrong | |
|
172 | $ hg status # empty status means the qrefresh worked | |
|
173 | ||
|
163 | 174 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now