~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bzrdir.py

Merge bzr.dev and tree-file-ids-as-tuples.

Show diffs side-by-side

added added

removed removed

Lines of Context:
829
829
 
830
830
    def destroy_branch(self, name=None):
831
831
        """See BzrDir.create_branch."""
832
 
        if name is not None:
 
832
        if name is None:
 
833
            name = self._get_selected_branch()
 
834
        if name != "":
833
835
            raise errors.NoColocatedBranchSupport(self)
834
836
        self.transport.delete_tree('branch')
835
837
 
885
887
        format = BranchFormatMetadir.find_format(self, name=name)
886
888
        return format.get_reference(self, name=name)
887
889
 
 
890
    def set_branch_reference(self, target_branch, name=None):
 
891
        format = _mod_branch.BranchReferenceFormat()
 
892
        return format.initialize(self, target_branch=target_branch, name=name)
 
893
 
888
894
    def get_branch_transport(self, branch_format, name=None):
889
895
        """See BzrDir.get_branch_transport()."""
890
 
        if name is not None:
 
896
        if name is None:
 
897
            name = self._get_selected_branch()
 
898
        if name != "":
891
899
            raise errors.NoColocatedBranchSupport(self)
892
900
        # XXX: this shouldn't implicitly create the directory if it's just
893
901
        # promising to get a transport -- mbp 20090727
1021
1029
        :param name: Optional branch name to use
1022
1030
        :return: Relative path to branch
1023
1031
        """
1024
 
        if name is None:
 
1032
        if name == "":
1025
1033
            return 'branch'
1026
1034
        return urlutils.join('branches', name.encode("utf-8"))
1027
1035
 
1056
1064
        if name is None:
1057
1065
            name = self._get_selected_branch()
1058
1066
        path = self._get_branch_path(name)
1059
 
        if name is not None:
 
1067
        if name != "":
1060
1068
            self.control_files.lock_write()
1061
1069
            try:
1062
1070
                branches = self._read_branch_list()
1073
1081
        """See ControlDir.get_branches."""
1074
1082
        ret = {}
1075
1083
        try:
1076
 
            ret[None] = self.open_branch()
 
1084
            ret[""] = self.open_branch(name="")
1077
1085
        except (errors.NotBranchError, errors.NoRepositoryPresent):
1078
1086
            pass
1079
1087
 
1080
1088
        for name in self._read_branch_list():
1081
 
            ret[name] = self.open_branch(name.decode('utf-8'))
 
1089
            ret[name] = self.open_branch(name=name.decode('utf-8'))
1082
1090
 
1083
1091
        return ret
1084
1092
 
1085
1093
    def get_branch_transport(self, branch_format, name=None):
1086
1094
        """See BzrDir.get_branch_transport()."""
 
1095
        if name is None:
 
1096
            name = self._get_selected_branch()
1087
1097
        path = self._get_branch_path(name)
1088
1098
        # XXX: this shouldn't implicitly create the directory if it's just
1089
1099
        # promising to get a transport -- mbp 20090727
1093
1103
            branch_format.get_format_string()
1094
1104
        except NotImplementedError:
1095
1105
            raise errors.IncompatibleFormat(branch_format, self._format)
1096
 
        if name is not None:
 
1106
        if name != "":
1097
1107
            try:
1098
1108
                self.transport.mkdir('branches', mode=self._get_mkdir_mode())
1099
1109
            except errors.FileExists:
1465
1475
        # mode from the root directory
1466
1476
        temp_control = lockable_files.LockableFiles(transport,
1467
1477
                            '', lockable_files.TransportLock)
1468
 
        temp_control._transport.mkdir('.bzr',
1469
 
                                      # FIXME: RBC 20060121 don't peek under
1470
 
                                      # the covers
1471
 
                                      mode=temp_control._dir_mode)
 
1478
        try:
 
1479
            temp_control._transport.mkdir('.bzr',
 
1480
                # FIXME: RBC 20060121 don't peek under
 
1481
                # the covers
 
1482
                mode=temp_control._dir_mode)
 
1483
        except errors.FileExists:
 
1484
            raise errors.AlreadyControlDirError(transport.base)
1472
1485
        if sys.platform == 'win32' and isinstance(transport, local.LocalTransport):
1473
1486
            win32utils.set_file_attr_hidden(transport._abspath('.bzr'))
1474
1487
        file_mode = temp_control._file_mode