~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bzrdir.py

merge repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
175
175
        :param force_new_repo: If True a new repository is always created.
176
176
        """
177
177
        bzrdir = BzrDir.create(base)
178
 
        if force_new_repo:
179
 
            bzrdir.create_repository()
180
 
        try:
181
 
            repo = bzrdir.find_repository()
182
 
        except errors.NoRepositoryPresent:
183
 
            bzrdir.create_repository()
 
178
        bzrdir._find_or_create_repository(force_new_repo)
184
179
        return bzrdir.create_branch()
 
180
 
 
181
    def _find_or_create_repository(self, force_new_repo):
 
182
        """Create a new repository if needed, returning the repository."""
 
183
        if force_new_repo:
 
184
            return self.create_repository()
 
185
        try:
 
186
            return self.find_repository()
 
187
        except errors.NoRepositoryPresent:
 
188
            return self.create_repository()
185
189
        
186
190
    @staticmethod
187
191
    def create_branch_convenience(base, force_new_repo=False, force_new_tree=None):
189
193
 
190
194
        This is a convenience function - it will use an existing repository
191
195
        if possible, can be told explicitly whether to create a working tree or
192
 
        nor.
 
196
        not.
193
197
 
194
198
        This will use the current default BzrDirFormat, and use whatever 
195
199
        repository format that that uses via bzrdir.create_branch and
207
211
                               prevent such creation respectively.
208
212
        """
209
213
        bzrdir = BzrDir.create(base)
210
 
        if force_new_repo:
211
 
            bzrdir.create_repository()
212
 
        try:
213
 
            repo = bzrdir.find_repository()
214
 
        except errors.NoRepositoryPresent:
215
 
            repo = bzrdir.create_repository()
 
214
        repo = bzrdir._find_or_create_repository(force_new_repo)
216
215
        result = bzrdir.create_branch()
217
216
        if force_new_tree or (repo.make_working_trees() and 
218
217
                              force_new_tree is None):
277
276
        next_transport = self.root_transport.clone('..')
278
277
        while True:
279
278
            try:
280
 
                found_bzrdir = BzrDir.open_containing_transport(
 
279
                found_bzrdir = BzrDir.open_containing_from_transport(
281
280
                    next_transport)[0]
282
281
            except errors.NotBranchError:
283
282
                raise errors.NoRepositoryPresent(self)
383
382
        """Open an existing branch which contains url.
384
383
        
385
384
        :param url: url to search from.
386
 
        See open_containing_transport for more detail.
 
385
        See open_containing_from_transport for more detail.
387
386
        """
388
 
        return BzrDir.open_containing_transport(get_transport(url))
 
387
        return BzrDir.open_containing_from_transport(get_transport(url))
389
388
    
390
389
    @staticmethod
391
 
    def open_containing_transport(a_transport):
 
390
    def open_containing_from_transport(a_transport):
392
391
        """Open an existing branch which contains a_transport.base
393
392
 
394
393
        This probes for a branch at a_transport, and searches upwards from there.