~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/config.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-04-15 03:10:36 UTC
  • mfrom: (4288.1.6 push.roundtrips)
  • Revision ID: pqm@pqm.ubuntu.com-20090415031036-ikndntbkaaj5zjya
(robertc) 6 less round trips on smart push by using a verb to get
        bzrdir stacking policy and inheriting set_parent for
        RemoteBranch. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1346
1346
 
1347
1347
class BzrDirConfig(object):
1348
1348
 
1349
 
    def __init__(self, transport):
1350
 
        self._config = TransportConfig(transport, 'control.conf')
 
1349
    def __init__(self, bzrdir):
 
1350
        self._bzrdir = bzrdir
 
1351
        self._config = bzrdir._get_config()
1351
1352
 
1352
1353
    def set_default_stack_on(self, value):
1353
1354
        """Set the default stacking location.
1357
1358
        This policy affects all branches contained by this bzrdir, except for
1358
1359
        those under repositories.
1359
1360
        """
 
1361
        if self._config is None:
 
1362
            raise errors.BzrError("Cannot set configuration in %s" % self._bzrdir)
1360
1363
        if value is None:
1361
1364
            self._config.set_option('', 'default_stack_on')
1362
1365
        else:
1370
1373
        This policy affects all branches contained by this bzrdir, except for
1371
1374
        those under repositories.
1372
1375
        """
 
1376
        if self._config is None:
 
1377
            return None
1373
1378
        value = self._config.get_option('default_stack_on')
1374
1379
        if value == '':
1375
1380
            value = None
1420
1425
            configobj.setdefault(section, {})[name] = value
1421
1426
        self._set_configobj(configobj)
1422
1427
 
 
1428
    def _get_config_file(self):
 
1429
        try:
 
1430
            return self._transport.get(self._filename)
 
1431
        except errors.NoSuchFile:
 
1432
            return StringIO()
 
1433
 
1423
1434
    def _get_configobj(self):
1424
 
        try:
1425
 
            return ConfigObj(self._transport.get(self._filename),
1426
 
                             encoding='utf-8')
1427
 
        except errors.NoSuchFile:
1428
 
            return ConfigObj(encoding='utf-8')
 
1435
        return ConfigObj(self._get_config_file(), encoding='utf-8')
1429
1436
 
1430
1437
    def _set_configobj(self, configobj):
1431
1438
        out_file = StringIO()