1224 workingctx have been committed. For example, it marks |
1224 workingctx have been committed. For example, it marks |
1225 modified and added files as normal in the dirstate. |
1225 modified and added files as normal in the dirstate. |
1226 |
1226 |
1227 """ |
1227 """ |
1228 |
1228 |
1229 with self._repo.dirstate.parentchange(): |
|
1230 for f in self.modified() + self.added(): |
|
1231 self._repo.dirstate.normal(f) |
|
1232 for f in self.removed(): |
|
1233 self._repo.dirstate.drop(f) |
|
1234 self._repo.dirstate.setparents(node) |
|
1235 |
|
1236 # write changes out explicitly, because nesting wlock at |
|
1237 # runtime may prevent 'wlock.release()' in 'repo.commit()' |
|
1238 # from immediately doing so for subsequent changing files |
|
1239 self._repo.dirstate.write(self._repo.currenttransaction()) |
|
1240 |
|
1241 def dirty(self, missing=False, merge=True, branch=True): |
1229 def dirty(self, missing=False, merge=True, branch=True): |
1242 return False |
1230 return False |
1243 |
1231 |
1244 class workingctx(committablectx): |
1232 class workingctx(committablectx): |
1245 """A workingctx object makes access to data related to |
1233 """A workingctx object makes access to data related to |
1655 match = self._repo.narrowmatch(match) |
1643 match = self._repo.narrowmatch(match) |
1656 ds = self._repo.dirstate |
1644 ds = self._repo.dirstate |
1657 return sorted(f for f in ds.matches(match) if ds[f] != 'r') |
1645 return sorted(f for f in ds.matches(match) if ds[f] != 'r') |
1658 |
1646 |
1659 def markcommitted(self, node): |
1647 def markcommitted(self, node): |
1660 super(workingctx, self).markcommitted(node) |
1648 with self._repo.dirstate.parentchange(): |
|
1649 for f in self.modified() + self.added(): |
|
1650 self._repo.dirstate.normal(f) |
|
1651 for f in self.removed(): |
|
1652 self._repo.dirstate.drop(f) |
|
1653 self._repo.dirstate.setparents(node) |
|
1654 |
|
1655 # write changes out explicitly, because nesting wlock at |
|
1656 # runtime may prevent 'wlock.release()' in 'repo.commit()' |
|
1657 # from immediately doing so for subsequent changing files |
|
1658 self._repo.dirstate.write(self._repo.currenttransaction()) |
1661 |
1659 |
1662 sparse.aftercommit(self._repo, node) |
1660 sparse.aftercommit(self._repo, node) |
1663 |
1661 |
1664 class committablefilectx(basefilectx): |
1662 class committablefilectx(basefilectx): |
1665 """A committablefilectx provides common functionality for a file context |
1663 """A committablefilectx provides common functionality for a file context |