Comment 1 for bug 408193

Revision history for this message
Martin Pool (mbp) wrote :

This behaviour is explained by this comment by Ian in workingtree_4.py:

   1416 # If content filtering is supported, do not use the accelerator
   1417 # tree - the cost of transforming the content both ways and
   1418 # checking for changed content can outweight the gains it gives.
   1419 # Note: do NOT move this logic up higher - using the basis from
   1420 # the accelerator tree is still desirable because that can save
   1421 # a minute or more of processing on large trees!
   1422 # The original tree may not have the same content filters
   1423 # applied so we can't safely build the inventory delta from
   1424 # the source tree.
   1425 if wt.supports_content_filtering():
   1426 accelerator_tree = None
   1427 delta_from_tree = False
   1428 else:
   1429 delta_from_tree = True
   1430 # delta_from_tree is safe even for DirStateRevisionTrees,
   1431 # because wt4.apply_inventory_delta does not mutate the input
   1432 # inventory entries.
   1433 transform.build_tree(basis, wt, accelerator_tree,
   1434 hardlink=hardlink,
   1435 delta_from_tree=delta_from_tree)

I'll change the test to expect failure here, and I think we should at least give a message to the user explaining why their request was not followed.

It seems like Ian's saying that we *could* hardlink them, it just might be slow. I think we should still give the user the option to do it if it's safe: they may care about disk space more than they care about speed, or they may not actually have any content filters configured.