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