1200 # Go through all our files in order sorted by name. |
1200 # Go through all our files in order sorted by name. |
1201 for fname in changedfiles: |
1201 for fname in changedfiles: |
1202 filerevlog = self.file(fname) |
1202 filerevlog = self.file(fname) |
1203 # Toss out the filenodes that the recipient isn't really |
1203 # Toss out the filenodes that the recipient isn't really |
1204 # missing. |
1204 # missing. |
1205 prune_filenodes(fname, filerevlog) |
1205 if msng_filenode_set.has_key(fname): |
1206 msng_filenode_lst = msng_filenode_set[fname].keys() |
1206 prune_filenodes(fname, filerevlog) |
|
1207 msng_filenode_lst = msng_filenode_set[fname].keys() |
|
1208 else: |
|
1209 msng_filenode_lst = [] |
1207 # If any filenodes are left, generate the group for them, |
1210 # If any filenodes are left, generate the group for them, |
1208 # otherwise don't bother. |
1211 # otherwise don't bother. |
1209 if len(msng_filenode_lst) > 0: |
1212 if len(msng_filenode_lst) > 0: |
1210 yield struct.pack(">l", len(fname) + 4) + fname |
1213 yield struct.pack(">l", len(fname) + 4) + fname |
1211 # Sort the filenodes by their revision # |
1214 # Sort the filenodes by their revision # |
1215 # from filenodes. |
1218 # from filenodes. |
1216 group = filerevlog.group(msng_filenode_lst, |
1219 group = filerevlog.group(msng_filenode_lst, |
1217 lookup_filenode_link_func(fname)) |
1220 lookup_filenode_link_func(fname)) |
1218 for chnk in group: |
1221 for chnk in group: |
1219 yield chnk |
1222 yield chnk |
1220 # Don't need this anymore, toss it to free memory. |
1223 if msng_filenode_set.has_key(fname): |
1221 del msng_filenode_set[fname] |
1224 # Don't need this anymore, toss it to free memory. |
|
1225 del msng_filenode_set[fname] |
1222 # Signal that no more groups are left. |
1226 # Signal that no more groups are left. |
1223 yield struct.pack(">l", 0) |
1227 yield struct.pack(">l", 0) |
1224 |
1228 |
1225 return util.chunkbuffer(gengroup()) |
1229 return util.chunkbuffer(gengroup()) |
1226 |
1230 |