/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 remote.py

Add simple tests and docstrings for GraphWalker.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
from bzrlib.trace import info
24
24
from bzrlib.transport import Transport
25
25
 
26
 
from bzrlib.plugins.git import lazy_check_versions
27
 
lazy_check_versions()
28
 
 
29
26
from bzrlib.plugins.git.branch import GitBranch
30
27
from bzrlib.plugins.git.errors import NoSuchRef
31
28
from bzrlib.plugins.git.dir import GitDir
106
103
        raise NotLocalUrl(self.transport.base)
107
104
 
108
105
 
109
 
class TemporaryPackIterator(object):
110
 
 
111
 
    def __init__(self, path):
112
 
        self.path_data = path
113
 
        basename = path[:-len(".pack")]
114
 
        p = PackData(path)
115
 
        self.path_idx = basename+".idx"
116
 
        p.create_index_v2(self.path_idx)
117
 
        self.pack = Pack(basename)
118
 
        self._iter = self.pack.iterobjects()
119
 
 
120
 
    def __del__(self):
121
 
        os.remove(self.path_data)
122
 
        os.remove(self.path_idx)
123
 
 
124
 
    def next(self):
125
 
        return (self._iter.next(), None)
126
 
 
127
 
    def __len__(self):
128
 
        return len(self.pack)
129
 
 
130
 
 
131
106
class RemoteGitRepository(GitRepository):
132
107
 
133
108
    def __init__(self, gitdir, lockfiles):
142
117
        fd, path = tempfile.mkstemp(suffix=".pack")
143
118
        self.fetch_pack(determine_wants, graph_walker, lambda x: os.write(fd, x), progress)
144
119
        os.close(fd)
145
 
        ret = TemporaryPackIterator(path)
146
 
        return (len(ret), iter(ret.next, None))
 
120
        basename = path[:-len(".pack")]
 
121
        p = PackData(path)
 
122
        p.create_index_v2(basename+".idx")
 
123
        pack = Pack(basename)
 
124
        os.remove(path)
 
125
        return (len(p), pack.iterobjects())
147
126
 
148
127
 
149
128
class RemoteGitBranch(GitBranch):