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

Return mapping in revision_id_bzr_to_foreign() as required by the interface.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007-2008 Canonical Ltd
 
1
# Copyright (C) 2007 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
24
24
        ForeignRevision,
25
25
        )
26
26
 
 
27
 
27
28
def escape_file_id(file_id):
28
29
    return file_id.replace('_', '__').replace(' ', '_s')
29
30
 
36
37
    """Class that maps between Git and Bazaar semantics."""
37
38
    experimental = False
38
39
 
39
 
    def __init__(self):
40
 
        super(BzrGitMapping, self).__init__(foreign_git)
41
 
 
42
40
    def __eq__(self, other):
43
41
        return type(self) == type(other) and self.revid_prefix == other.revid_prefix
44
42
 
54
52
            raise errors.InvalidRevisionId(bzr_rev_id, cls)
55
53
        return bzr_rev_id[len(cls.revid_prefix)+1:], cls()
56
54
 
 
55
    @classmethod
 
56
    def show_foreign_revid(cls, foreign_revid):
 
57
        return { "git commit": foreign_revid }
 
58
 
57
59
    def generate_file_id(self, path):
58
60
        if path == "":
59
61
            return ROOT_ID
76
78
        rev.timezone = 0
77
79
        return rev
78
80
 
79
 
    def export_commit(self, rev, tree_sha):
80
 
        """Turn a Bazaar revision in to a Git commit
81
 
 
82
 
        :param tree_sha: HACK parameter (until we can retrieve this from the mapping)
83
 
        :return dulwich.objects.Commit represent the revision:
84
 
        """
85
 
        from dulwich.objects import Commit
86
 
        commit = Commit()
87
 
        commit._tree = tree_sha
88
 
        for p in rev.parent_ids:
89
 
            commit._parents.append(self.revision_id_bzr_to_foreign(p))
90
 
        commit._message = rev.message
91
 
        commit._committer = rev.committer
92
 
        if 'author' in rev.properties:
93
 
            commit._author = rev.properties['author']
94
 
        else:
95
 
            commit._author = rev.committer
96
 
        commit._commit_time = long(rev.timestamp)
97
 
        commit.serialize()
98
 
        return commit
99
 
 
100
81
 
101
82
class BzrGitMappingv1(BzrGitMapping):
102
83
    revid_prefix = 'git-v1'
133
114
    def __init__(self):
134
115
        super(ForeignGit, self).__init__(mapping_registry)
135
116
 
136
 
    @classmethod
137
 
    def show_foreign_revid(cls, foreign_revid):
138
 
        return { "git commit": foreign_revid }
139
 
 
140
 
 
 
117
 
 
118
default_mapping = BzrGitMappingv1()
141
119
foreign_git = ForeignGit()
142
 
default_mapping = BzrGitMappingv1()