~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Martin Pool
  • Date: 2005-04-15 01:31:21 UTC
  • Revision ID: mbp@sourcefrog.net-20050415013121-b18f1be12a735066
- Doc cleanups from Magnus Therning

Show diffs side-by-side

added added

removed removed

Lines of Context:
73
73
class Branch:
74
74
    """Branch holding a history of revisions.
75
75
 
76
 
    :todo: Perhaps use different stores for different classes of object,
 
76
    TODO: Perhaps use different stores for different classes of object,
77
77
           so that we can keep track of how much space each one uses,
78
78
           or garbage-collect them.
79
79
 
80
 
    :todo: Add a RemoteBranch subclass.  For the basic case of read-only
 
80
    TODO: Add a RemoteBranch subclass.  For the basic case of read-only
81
81
           HTTP access this should be very easy by, 
82
82
           just redirecting controlfile access into HTTP requests.
83
83
           We would need a RemoteStore working similarly.
84
84
 
85
 
    :todo: Keep the on-disk branch locked while the object exists.
 
85
    TODO: Keep the on-disk branch locked while the object exists.
86
86
 
87
 
    :todo: mkdir() method.
 
87
    TODO: mkdir() method.
88
88
    """
89
89
    def __init__(self, base, init=False, find_root=True):
90
90
        """Create new branch object at a particular location.
91
91
 
92
 
        :param base: Base directory for the branch.
 
92
        base -- Base directory for the branch.
93
93
        
94
 
        :param init: If True, create new control files in a previously
 
94
        init -- If True, create new control files in a previously
95
95
             unversioned directory.  If False, the branch must already
96
96
             be versioned.
97
97
 
98
 
        :param find_root: If true and init is false, find the root of the
 
98
        find_root -- If true and init is false, find the root of the
99
99
             existing branch containing base.
100
100
 
101
101
        In the test suite, creation of new trees is tested using the
249
249
        This puts the files in the Added state, so that they will be
250
250
        recorded by the next commit.
251
251
 
252
 
        :todo: Perhaps have an option to add the ids even if the files do
 
252
        TODO: Perhaps have an option to add the ids even if the files do
253
253
               not (yet) exist.
254
254
 
255
 
        :todo: Perhaps return the ids of the files?  But then again it
 
255
        TODO: Perhaps return the ids of the files?  But then again it
256
256
               is easy to retrieve them if they're needed.
257
257
 
258
 
        :todo: Option to specify file id.
 
258
        TODO: Option to specify file id.
259
259
 
260
 
        :todo: Adding a directory should optionally recurse down and
 
260
        TODO: Adding a directory should optionally recurse down and
261
261
               add all non-ignored children.  Perhaps do that in a
262
262
               higher-level method.
263
263
 
336
336
 
337
337
        This does not remove their text.  This does not run on 
338
338
 
339
 
        :todo: Refuse to remove modified files unless --force is given?
 
339
        TODO: Refuse to remove modified files unless --force is given?
340
340
 
341
341
        >>> b = ScratchBranch(files=['foo'])
342
342
        >>> b.add('foo')
360
360
        >>> b.working_tree().has_filename('foo') 
361
361
        True
362
362
 
363
 
        :todo: Do something useful with directories.
 
363
        TODO: Do something useful with directories.
364
364
 
365
 
        :todo: Should this remove the text or not?  Tough call; not
 
365
        TODO: Should this remove the text or not?  Tough call; not
366
366
        removing may be useful and the user can just use use rm, and
367
367
        is the opposite of add.  Removing it is consistent with most
368
368
        other tools.  Maybe an option.
432
432
        be robust against files disappearing, moving, etc.  So the
433
433
        whole thing is a bit hard.
434
434
 
435
 
        :param timestamp: if not None, seconds-since-epoch for a
 
435
        timestamp -- if not None, seconds-since-epoch for a
436
436
             postdated/predated commit.
437
437
        """
438
438
 
612
612
    def get_inventory(self, inventory_id):
613
613
        """Get Inventory object by hash.
614
614
 
615
 
        :todo: Perhaps for this and similar methods, take a revision
 
615
        TODO: Perhaps for this and similar methods, take a revision
616
616
               parameter which can be either an integer revno or a
617
617
               string hash."""
618
618
        i = Inventory.read_xml(self.inventory_store[inventory_id])
721
721
    def write_log(self, show_timezone='original', verbose=False):
722
722
        """Write out human-readable log of commits to this branch
723
723
 
724
 
        :param utc: If true, show dates in universal time, not local time."""
 
724
        utc -- If true, show dates in universal time, not local time."""
725
725
        ## TODO: Option to choose either original, utc or local timezone
726
726
        revno = 1
727
727
        precursor = None
888
888
        D       foo
889
889
        
890
890
 
891
 
        :todo: Get state for single files.
 
891
        TODO: Get state for single files.
892
892
 
893
 
        :todo: Perhaps show a slash at the end of directory names.        
 
893
        TODO: Perhaps show a slash at the end of directory names.        
894
894
 
895
895
        """
896
896
 
923
923
            elif fs == '?':
924
924
                show_status(fs, kind, newname)
925
925
            else:
926
 
                bailout("wierd file state %r" % ((fs, fid),))
 
926
                bailout("weird file state %r" % ((fs, fid),))
927
927
                
928
928
 
929
929