Mercurial > public > mercurial-scm > hg
comparison mercurial/context.py @ 19704:bad0bd99ac96
commitablefilectx: move parents from workingfilectx
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Thu, 15 Aug 2013 13:42:33 -0500 |
parents | d2936bec530b |
children | 79792c8ea6da |
comparison
equal
deleted
inserted
replaced
19703:d2936bec530b | 19704:bad0bd99ac96 |
---|---|
1203 self._changectx = ctx | 1203 self._changectx = ctx |
1204 | 1204 |
1205 def __nonzero__(self): | 1205 def __nonzero__(self): |
1206 return True | 1206 return True |
1207 | 1207 |
1208 def parents(self): | |
1209 '''return parent filectxs, following copies if necessary''' | |
1210 def filenode(ctx, path): | |
1211 return ctx._manifest.get(path, nullid) | |
1212 | |
1213 path = self._path | |
1214 fl = self._filelog | |
1215 pcl = self._changectx._parents | |
1216 renamed = self.renamed() | |
1217 | |
1218 if renamed: | |
1219 pl = [renamed + (None,)] | |
1220 else: | |
1221 pl = [(path, filenode(pcl[0], path), fl)] | |
1222 | |
1223 for pc in pcl[1:]: | |
1224 pl.append((path, filenode(pc, path), fl)) | |
1225 | |
1226 return [filectx(self._repo, p, fileid=n, filelog=l) | |
1227 for p, n, l in pl if n != nullid] | |
1228 | |
1208 class workingfilectx(commitablefilectx): | 1229 class workingfilectx(commitablefilectx): |
1209 """A workingfilectx object makes access to data related to a particular | 1230 """A workingfilectx object makes access to data related to a particular |
1210 file in the working directory convenient.""" | 1231 file in the working directory convenient.""" |
1211 def __init__(self, repo, path, filelog=None, workingctx=None): | 1232 def __init__(self, repo, path, filelog=None, workingctx=None): |
1212 super(workingfilectx, self).__init__(repo, path, filelog, workingctx) | 1233 super(workingfilectx, self).__init__(repo, path, filelog, workingctx) |
1220 def renamed(self): | 1241 def renamed(self): |
1221 rp = self._repo.dirstate.copied(self._path) | 1242 rp = self._repo.dirstate.copied(self._path) |
1222 if not rp: | 1243 if not rp: |
1223 return None | 1244 return None |
1224 return rp, self._changectx._parents[0]._manifest.get(rp, nullid) | 1245 return rp, self._changectx._parents[0]._manifest.get(rp, nullid) |
1225 | |
1226 def parents(self): | |
1227 '''return parent filectxs, following copies if necessary''' | |
1228 def filenode(ctx, path): | |
1229 return ctx._manifest.get(path, nullid) | |
1230 | |
1231 path = self._path | |
1232 fl = self._filelog | |
1233 pcl = self._changectx._parents | |
1234 renamed = self.renamed() | |
1235 | |
1236 if renamed: | |
1237 pl = [renamed + (None,)] | |
1238 else: | |
1239 pl = [(path, filenode(pcl[0], path), fl)] | |
1240 | |
1241 for pc in pcl[1:]: | |
1242 pl.append((path, filenode(pc, path), fl)) | |
1243 | |
1244 return [filectx(self._repo, p, fileid=n, filelog=l) | |
1245 for p, n, l in pl if n != nullid] | |
1246 | 1246 |
1247 def children(self): | 1247 def children(self): |
1248 return [] | 1248 return [] |
1249 | 1249 |
1250 def size(self): | 1250 def size(self): |