~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

  • Committer: Martin Pool
  • Date: 2007-04-01 06:19:16 UTC
  • mfrom: (2323.5.20 0.15-integration)
  • mto: This revision was merged to the branch mainline in revision 2390.
  • Revision ID: mbp@sourcefrog.net-20070401061916-plpgsxdf8g7gll9o
Merge 0.15 final release back to trunk, including: recommend upgrades of old workingtrees, handle multiple http redirections, some dirstate fixes, 

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
    revisiontree,
69
69
    repository,
70
70
    textui,
 
71
    trace,
71
72
    transform,
 
73
    ui,
72
74
    urlutils,
73
75
    xml5,
74
76
    xml6,
1393
1395
        # prevent race conditions with the lock
1394
1396
        return iter(
1395
1397
            [subp for subp in self.extras() if not self.is_ignored(subp)])
1396
 
    
 
1398
 
1397
1399
    @needs_tree_write_lock
1398
1400
    def unversion(self, file_ids):
1399
1401
        """Remove the file ids in file_ids from the current versioned set.
2263
2265
        self.set_conflicts(un_resolved)
2264
2266
        return un_resolved, resolved
2265
2267
 
 
2268
    def _validate(self):
 
2269
        """Validate internal structures.
 
2270
 
 
2271
        This is meant mostly for the test suite. To give it a chance to detect
 
2272
        corruption after actions have occurred. The default implementation is a
 
2273
        just a no-op.
 
2274
 
 
2275
        :return: None. An exception should be raised if there is an error.
 
2276
        """
 
2277
        return
 
2278
 
2266
2279
 
2267
2280
class WorkingTree2(WorkingTree):
2268
2281
    """This is the Format 2 working tree.
2428
2441
 
2429
2442
    requires_rich_root = False
2430
2443
 
 
2444
    upgrade_recommended = False
 
2445
 
2431
2446
    @classmethod
2432
2447
    def find_format(klass, a_bzrdir):
2433
2448
        """Return the format for the working tree object in a_bzrdir."""
2482
2497
        del klass._formats[format.get_format_string()]
2483
2498
 
2484
2499
 
2485
 
 
2486
2500
class WorkingTreeFormat2(WorkingTreeFormat):
2487
2501
    """The second working tree format. 
2488
2502
 
2489
2503
    This format modified the hash cache from the format 1 hash cache.
2490
2504
    """
2491
2505
 
 
2506
    upgrade_recommended = True
 
2507
 
2492
2508
    def get_format_description(self):
2493
2509
        """See WorkingTreeFormat.get_format_description()."""
2494
2510
        return "Working tree format 2"
2557
2573
            raise NotImplementedError
2558
2574
        if not isinstance(a_bzrdir.transport, LocalTransport):
2559
2575
            raise errors.NotLocalUrl(a_bzrdir.transport.base)
2560
 
        return WorkingTree2(a_bzrdir.root_transport.local_abspath('.'),
 
2576
        wt = WorkingTree2(a_bzrdir.root_transport.local_abspath('.'),
2561
2577
                           _internal=True,
2562
2578
                           _format=self,
2563
2579
                           _bzrdir=a_bzrdir)
2564
 
 
 
2580
        return wt
2565
2581
 
2566
2582
class WorkingTreeFormat3(WorkingTreeFormat):
2567
2583
    """The second working tree format updated to record a format marker.
2574
2590
        - is new in bzr 0.8
2575
2591
        - uses a LockDir to guard access for writes.
2576
2592
    """
 
2593
    
 
2594
    upgrade_recommended = True
2577
2595
 
2578
2596
    def get_format_string(self):
2579
2597
        """See WorkingTreeFormat.get_format_string()."""
2664
2682
            raise NotImplementedError
2665
2683
        if not isinstance(a_bzrdir.transport, LocalTransport):
2666
2684
            raise errors.NotLocalUrl(a_bzrdir.transport.base)
2667
 
        return self._open(a_bzrdir, self._open_control_files(a_bzrdir))
 
2685
        wt = self._open(a_bzrdir, self._open_control_files(a_bzrdir))
 
2686
        return wt
2668
2687
 
2669
2688
    def _open(self, a_bzrdir, control_files):
2670
2689
        """Open the tree itself.