/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to __init__.py

Slight refactoring.

* __init__.py:
Extract upload_file. Use 'location' instead of 'dest'. Use
'self.to_transport' instead of 'self.dest'.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
    If no destination is specified use the last one used.
38
38
    If no revision is specified upload the changes since the last upload.
39
39
    """
40
 
    takes_args = ['dest?']
 
40
    takes_args = ['location?']
41
41
    takes_options = [
42
42
        'revision',
43
43
        option.Option('full', 'Upload the full working tree.'),
44
44
       ]
45
45
 
46
 
    def run(self, dest, full=False, revision=None):
 
46
    def run(self, location, full=False, revision=None):
47
47
        wt = workingtree.WorkingTree.open_containing(u'.')[0]
48
48
        b = wt.branch
49
49
 
50
 
        if dest is None:
 
50
        if location is None:
 
51
            # XXX: use the remembered location
51
52
            raise NotImplementedError
52
53
        else:
53
 
            self.dest = transport.get_transport(dest)
 
54
            self.to_transport = transport.get_transport(location)
54
55
        if revision is None:
55
56
            rev_id = wt.last_revision()
56
57
        else:
71
72
 
72
73
    def set_uploaded_revid(self, rev_id):
73
74
        # XXX: Rename to .bzr/uploaded ? Add tests for concurrent updates, etc.
74
 
        self.dest.put_bytes('.bzr.uploaded', rev_id)
 
75
        self.to_transport.put_bytes('.bzr.uploaded', rev_id)
 
76
 
 
77
    def upload_file(self, relpath, id):
 
78
        self.to_transport.put_bytes(relpath, self.tree.get_file_text(id))
75
79
 
76
80
    def upload_full_tree(self):
77
 
        self.dest.ensure_base() # XXX: Handle errors
 
81
        self.to_transport.ensure_base() # XXX: Handle errors
78
82
        self.tree.lock_read()
79
83
        try:
80
84
            inv = self.tree.inventory
86
90
                if dp == ".bzrignore":
87
91
                    continue
88
92
 
89
 
                self.dest.put_bytes(dp, self.tree.get_file_text(ie.file_id))
 
93
                self.upload_file(dp, ie.file_id)
90
94
            self.set_uploaded_revid(self.rev_id)
91
95
        finally:
92
96
            self.tree.unlock()
93
97
 
94
98
    def upload_tree(self, from_tree):
95
 
        self.dest.ensure_base() # XXX: Handle errors
 
99
        self.to_transport.ensure_base() # XXX: Handle errors
96
100
        # XXX: add tests for directories
97
101
        changes = self.tree.changes_from(from_tree)
98
102
        self.tree.lock_read()
99
103
        try:
100
104
            for (path, id, kind) in changes.added:
101
105
                if kind is 'file':
102
 
                    self.dest.put_bytes(path, self.tree.get_file_text(id))
 
106
                    self.upload_file(path, id)
103
107
                else:
104
108
                    raise NotImplementedError
105
109
            # XXX: Add a test for exec_change
106
110
            for (path, id, kind,
107
111
                 content_change, exec_change) in changes.modified:
108
112
                if kind is 'file':
109
 
                    self.dest.put_bytes(path, self.tree.get_file_text(id))
 
113
                    self.upload_file(path, id)
110
114
                else:
111
115
                    raise NotImplementedError
112
116
            self.set_uploaded_revid(self.rev_id)