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

More work on roundtripping support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
from bzrlib.plugins.git.mapping import (
44
44
    entry_mode,
45
45
    )
 
46
from bzrlib.plugins.git.roundtrip import (
 
47
    CommitSupplement,
 
48
    inject_bzr_metadata,
 
49
    )
46
50
 
47
51
 
48
52
class GitCommitBuilder(CommitBuilder):
165
169
        c.tree = commit_tree(self.store, self._iterblobs())
166
170
        c.committer = self._committer
167
171
        c.author = self._revprops.get('author', self._committer)
 
172
        if c.author != c.committer:
 
173
            self._revprops.remove("author")
168
174
        c.commit_time = int(self._timestamp)
169
175
        c.author_time = int(self._timestamp)
170
176
        c.commit_timezone = self._timezone
171
177
        c.author_timezone = self._timezone
172
178
        c.encoding = 'utf-8'
173
179
        c.message = message.encode("utf-8")
 
180
        if not self._lossy:
 
181
            commit_supplement = CommitSupplement()
 
182
            commit_supplement.revision_id = self._new_revision_id
 
183
            commit_supplement.properties = self._revprops
 
184
            commit_supplement.explicit_parent_ids = self.parents
 
185
            if commit_supplement:
 
186
                c.message = inject_bzr_metadata(c.message, commit_supplement, "utf-8")
 
187
 
 
188
        assert len(c.id) == 40
 
189
        if self._new_revision_id is None:
 
190
            self._new_revision_id = self.repository.get_mapping().revision_id_foreign_to_bzr(c.id)
174
191
        self.store.add_object(c)
175
 
        assert len(c.id) == 40
176
 
        self._new_revision_id = self.repository.get_mapping().revision_id_foreign_to_bzr(c.id)
177
192
        self.repository.commit_write_group()
178
193
        return self._new_revision_id
179
194