~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/benchmarks/bench_status.py

Fix #531967 by creating helpers for PathConflicts when a deletion
is involved.

* bzrlib/tests/test_conflicts.py:
(TestParametrizedResolveConflicts.mirror_scenarios): Renamed from
multiply_scenarios to make the intent clearer. Turned into a
classmethod too for the same reason.
(TestParametrizedResolveConflicts.scenarios): Now a classmethod.

* bzrlib/merge.py:
(Merge3Merger._merge_names): 'name conflict' and 'parent conflict'
can (and must) be handled in the same way. If a deletion is
involved we create an unversioned copy of the rejected item so the
user can restore that easily.
(Merge3Merger.cook_conflicts): Get rid of 'name conflict', 'parent
conflict' distinction and just create PathConflicts with a file_id
to address bug #531967.

* bzrlib/conflicts.py:
(PathConflict.associated_filenames): Helpers exist only when a
deletion is involved.
(PathConflict._resolve): We may have to version one path
again. This may happen when a deletion have occurred.
(PathConflict.action_take_this, PathConflict.action_take_other):
As a special case, we may have an helper to use when deletion was
involved.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
"""Tests for bzr status performance."""
18
18
 
25
25
 
26
26
    def test_no_ignored_unknown_kernel_like_tree(self):
27
27
        """Status in a kernel sized tree with no ignored or unknowns.
28
 
        
 
28
 
29
29
        This should be bearable (<2secs) fast.
30
 
        """ 
 
30
        """
31
31
        self.make_kernel_like_added_tree()
32
32
        # on robertc's machine the first sample of this took 1687ms/15994ms
33
33
        self.time(self.run_bzr, 'status')
34
34
 
35
35
    def test_no_changes_known_kernel_like_tree(self):
36
 
        """Status in a kernel sized tree with no ignored, unknowns, or added.""" 
 
36
        """Status in a kernel sized tree with no ignored, unknowns, or added."""
37
37
        self.make_kernel_like_committed_tree(link_bzr=True)
38
38
        self.time(self.run_bzr, 'status')
39
39