2824
2824
def revert(working_tree, target_tree, filenames, backups=False,
2825
2825
pb=None, change_reporter=None):
2826
2826
"""Revert a working tree's contents to those of a target tree."""
2827
target_tree.lock_read()
2828
2827
pb = ui.ui_factory.nested_progress_bar()
2829
tt = TreeTransform(working_tree, pb)
2831
pp = ProgressPhase("Revert phase", 3, pb)
2832
conflicts, merge_modified = _prepare_revert_transform(
2833
working_tree, target_tree, tt, filenames, backups, pp)
2835
change_reporter = delta._ChangeReporter(
2836
unversioned_filter=working_tree.is_ignored)
2837
delta.report_changes(tt.iter_changes(), change_reporter)
2838
for conflict in conflicts:
2839
trace.warning(unicode(conflict))
2842
if working_tree.supports_merge_modified():
2843
working_tree.set_merge_modified(merge_modified)
2829
with target_tree.lock_read(), TreeTransform(working_tree, pb) as tt:
2830
pp = ProgressPhase("Revert phase", 3, pb)
2831
conflicts, merge_modified = _prepare_revert_transform(
2832
working_tree, target_tree, tt, filenames, backups, pp)
2834
change_reporter = delta._ChangeReporter(
2835
unversioned_filter=working_tree.is_ignored)
2836
delta.report_changes(tt.iter_changes(), change_reporter)
2837
for conflict in conflicts:
2838
trace.warning(unicode(conflict))
2841
if working_tree.supports_merge_modified():
2842
working_tree.set_merge_modified(merge_modified)
2845
target_tree.unlock()
2848
2845
return conflicts