~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_pull.py

  • Committer: Vincent Ladeuil
  • Date: 2012-01-18 14:09:19 UTC
  • mto: This revision was merged to the branch mainline in revision 6468.
  • Revision ID: v.ladeuil+lp@free.fr-20120118140919-rlvdrhpc0nq1lbwi
Change set/remove to require a lock for the branch config files.

This means that tests (or any plugin for that matter) do not requires an
explicit lock on the branch anymore to change a single option. This also
means the optimisation becomes "opt-in" and as such won't be as
spectacular as it may be and/or harder to get right (nothing fails
anymore).

This reduces the diff by ~300 lines.

Code/tests that were updating more than one config option is still taking
a lock to at least avoid some IOs and demonstrate the benefits through
the decreased number of hpss calls.

The duplication between BranchStack and BranchOnlyStack will be removed
once the same sharing is in place for local config files, at which point
the Stack class itself may be able to host the changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
144
144
        # Make a source, sprout a target off it
145
145
        builder = self.make_branch_builder('source')
146
146
        source = fixtures.build_branch_with_non_ancestral_rev(builder)
147
 
        source.lock_write()
148
 
        try:
149
 
            source.get_config_stack().set('branch.fetch_tags', True)
150
 
        finally:
151
 
            source.unlock()
 
147
        source.get_config_stack().set('branch.fetch_tags', True)
152
148
        target_bzrdir = source.bzrdir.sprout('target')
153
149
        source.tags.set_tag('tag-a', 'rev-2')
154
150
        # Pull from source
241
237
        # reset parent
242
238
        parent = branch_b.get_parent()
243
239
        branch_b = branch.Branch.open('branch_b')
244
 
        branch_b.lock_write()
245
 
        try:
246
 
            branch_b.set_parent(None)
247
 
        finally:
248
 
            branch_b.unlock()
 
240
        branch_b.set_parent(None)
249
241
        self.assertEqual(None, branch_b.get_parent())
250
242
        # test pull for failure without parent set
251
243
        out = self.run_bzr('pull', retcode=3, working_dir='branch_b')
375
367
    def test_pull_verbose_uses_default_log(self):
376
368
        tree = self.example_branch('source')
377
369
        target = self.make_branch_and_tree('target')
378
 
        target.branch.lock_write()
379
 
        try:
380
 
            target.branch.get_config_stack().set('log_format', 'short')
381
 
        finally:
382
 
            target.branch.unlock()
 
370
        target.branch.get_config_stack().set('log_format', 'short')
383
371
        out = self.run_bzr('pull -v source -d target')[0]
384
372
        self.assertContainsRe(out, r'\n {4}1 .*\n {6}setup\n')
385
373
        self.assertNotContainsRe(