1
# Copyright (C) 2005-2010 Canonical Ltd
1
# Copyright (C) 2005, 2006 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
40
40
if should_print is not None:
41
41
self.should_print = should_print
43
def __call__(self, inv, parent_ie, path, kind, _quote=osutils.quotefn):
43
def __call__(self, inv, parent_ie, path, kind, _quote=bzrlib.osutils.quotefn):
44
44
"""Add path to inventory.
46
46
The default action does nothing.
86
86
Else, we look for an entry in the base tree with the same path.
89
if self.base_tree.has_id(parent_ie.file_id):
89
if (parent_ie.file_id in self.base_tree):
90
90
base_parent_ie = self.base_tree.inventory[parent_ie.file_id]
91
base_child_ie = base_parent_ie.children.get(
92
osutils.basename(path))
91
base_child_ie = base_parent_ie.children.get(path.base_path)
93
92
if base_child_ie is not None:
94
93
return (base_child_ie.file_id,
95
94
self.base_tree.id2path(base_child_ie.file_id))
96
full_base_path = osutils.pathjoin(self.base_path, path)
95
full_base_path = bzrlib.osutils.pathjoin(self.base_path, path.raw_path)
97
96
# This may return None, but it is our last attempt
98
97
return self.base_tree.path2id(full_base_path), full_base_path
100
# TODO: jam 20050105 These could be used for compatibility
101
# however, they bind against the current stdout, not the
102
# one which exists at the time they are called, so they
103
# don't work for the test suite.
105
add_action_add = AddAction()
106
add_action_null = add_action_add
107
add_action_add_and_print = AddAction(should_print=True)
108
add_action_print = add_action_add_and_print