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

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-06-30 23:11:39 UTC
  • mfrom: (6973.12.13 python3-k)
  • Revision ID: breezy.the.bot@gmail.com-20180630231139-tf5t5khh6bu5ntpm
Fix some more tests on python3.

Merged from https://code.launchpad.net/~jelmer/brz/python3-k/+merge/348646

Show diffs side-by-side

added added

removed removed

Lines of Context:
178
178
        if unusual_file_modes:
179
179
            ret = [(path, unusual_file_modes[path])
180
180
                   for path in sorted(unusual_file_modes.keys())]
181
 
            rev.properties['file-modes'] = bencode.bencode(ret)
 
181
            rev.properties[u'file-modes'] = bencode.bencode(ret)
182
182
 
183
183
    def export_unusual_file_modes(self, rev):
184
184
        try:
185
 
            file_modes = rev.properties['file-modes']
 
185
            file_modes = rev.properties[u'file-modes']
186
186
        except KeyError:
187
187
            return {}
188
188
        else:
190
190
 
191
191
    def _generate_git_svn_metadata(self, rev, encoding):
192
192
        try:
193
 
            git_svn_id = rev.properties["git-svn-id"]
 
193
            git_svn_id = rev.properties[u"git-svn-id"]
194
194
        except KeyError:
195
195
            return ""
196
196
        else:
201
201
        renames = []
202
202
        branch = 'default'
203
203
        for name in rev.properties:
204
 
            if name == 'hg:extra:branch':
205
 
                branch = rev.properties['hg:extra:branch']
206
 
            elif name.startswith('hg:extra'):
207
 
                extra[name[len('hg:extra:'):]] = base64.b64decode(
 
204
            if name == u'hg:extra:branch':
 
205
                branch = rev.properties[u'hg:extra:branch']
 
206
            elif name.startswith(u'hg:extra'):
 
207
                extra[name[len(u'hg:extra:'):]] = base64.b64decode(
208
208
                    rev.properties[name])
209
 
            elif name == 'hg:renames':
 
209
            elif name == u'hg:renames':
210
210
                renames = bencode.bdecode(base64.b64decode(
211
 
                    rev.properties['hg:renames']))
 
211
                    rev.properties[u'hg:renames']))
212
212
            # TODO: Export other properties as 'bzr:' extras?
213
213
        ret = format_hg_metadata(renames, branch, extra)
214
214
        if type(ret) is not str:
220
220
        if not (lines[-1] == "" and len(lines) >= 2 and lines[-2].startswith("git-svn-id:")):
221
221
            return message
222
222
        git_svn_id = lines[-2].split(": ", 1)[1]
223
 
        rev.properties['git-svn-id'] = git_svn_id
 
223
        rev.properties[u'git-svn-id'] = git_svn_id
224
224
        (url, rev, uuid) = parse_git_svn_id(git_svn_id)
225
225
        # FIXME: Convert this to converted-from property somehow..
226
226
        return "\n".join(lines[:-2])
228
228
    def _extract_hg_metadata(self, rev, message):
229
229
        (message, renames, branch, extra) = extract_hg_metadata(message)
230
230
        if branch is not None:
231
 
            rev.properties['hg:extra:branch'] = branch
 
231
            rev.properties[u'hg:extra:branch'] = branch
232
232
        for name, value in extra.iteritems():
233
 
            rev.properties['hg:extra:' + name] = base64.b64encode(value)
 
233
            rev.properties[u'hg:extra:' + name] = base64.b64encode(value)
234
234
        if renames:
235
 
            rev.properties['hg:renames'] = base64.b64encode(bencode.bencode(
 
235
            rev.properties[u'hg:renames'] = base64.b64encode(bencode.bencode(
236
236
                [(new, old) for (old, new) in renames.iteritems()]))
237
237
        return message
238
238
 
290
290
                parents.append(git_p)
291
291
        commit.parents = parents
292
292
        try:
293
 
            encoding = rev.properties['git-explicit-encoding']
 
293
            encoding = rev.properties[u'git-explicit-encoding']
294
294
        except KeyError:
295
 
            encoding = rev.properties.get('git-implicit-encoding', 'utf-8')
 
295
            encoding = rev.properties.get(u'git-implicit-encoding', 'utf-8')
296
296
        try:
297
 
            commit.encoding = rev.properties['git-explicit-encoding'].encode('ascii')
 
297
            commit.encoding = rev.properties[u'git-explicit-encoding'].encode('ascii')
298
298
        except KeyError:
299
299
            pass
300
300
        commit.committer = fix_person_identifier(rev.committer.encode(
302
302
        commit.author = fix_person_identifier(
303
303
            rev.get_apparent_authors()[0].encode(encoding))
304
304
        commit.commit_time = long(rev.timestamp)
305
 
        if 'author-timestamp' in rev.properties:
306
 
            commit.author_time = long(rev.properties['author-timestamp'])
 
305
        if u'author-timestamp' in rev.properties:
 
306
            commit.author_time = long(rev.properties[u'author-timestamp'])
307
307
        else:
308
308
            commit.author_time = commit.commit_time
309
 
        commit._commit_timezone_neg_utc = "commit-timezone-neg-utc" in rev.properties
 
309
        commit._commit_timezone_neg_utc = u"commit-timezone-neg-utc" in rev.properties
310
310
        commit.commit_timezone = rev.timezone
311
 
        commit._author_timezone_neg_utc = "author-timezone-neg-utc" in rev.properties
312
 
        if 'author-timezone' in rev.properties:
313
 
            commit.author_timezone = int(rev.properties['author-timezone'])
 
311
        commit._author_timezone_neg_utc = u"author-timezone-neg-utc" in rev.properties
 
312
        if u'author-timezone' in rev.properties:
 
313
            commit.author_timezone = int(rev.properties[u'author-timezone'])
314
314
        else:
315
315
            commit.author_timezone = commit.commit_timezone
316
 
        if 'git-gpg-signature' in rev.properties:
317
 
            commit.gpgsig = rev.properties['git-gpg-signature'].encode('ascii')
 
316
        if u'git-gpg-signature' in rev.properties:
 
317
            commit.gpgsig = rev.properties[u'git-gpg-signature'].encode('ascii')
318
318
        commit.message = self._encode_commit_message(rev, rev.message,
319
319
            encoding)
320
320
        if type(commit.message) is not str:
325
325
            except errors.InvalidRevisionId:
326
326
                metadata.revision_id = rev.revision_id
327
327
            mapping_properties = set(
328
 
                ['author', 'author-timezone', 'author-timezone-neg-utc',
329
 
                 'commit-timezone-neg-utc', 'git-implicit-encoding',
330
 
                 'git-gpg-signature', 'git-explicit-encoding',
331
 
                 'author-timestamp', 'file-modes'])
 
328
                [u'author', u'author-timezone', u'author-timezone-neg-utc',
 
329
                 u'commit-timezone-neg-utc', u'git-implicit-encoding',
 
330
                 u'git-gpg-signature', u'git-explicit-encoding',
 
331
                 u'author-timestamp', u'file-modes'])
332
332
            for k, v in rev.properties.iteritems():
333
333
                if not k in mapping_properties:
334
334
                    metadata.properties[k] = v
341
341
        if type(commit.message) is not str:
342
342
            raise TypeError(commit.message)
343
343
        i = 0
344
 
        propname = 'git-mergetag-0'
 
344
        propname = u'git-mergetag-0'
345
345
        while propname in rev.properties:
346
346
            commit.mergetag.append(Tag.from_string(rev.properties[propname].encode(encoding)))
347
347
            i += 1
348
 
            propname = 'git-mergetag-%d' % i
349
 
        if 'git-extra' in rev.properties:
350
 
            commit.extra.extend([l.split(' ', 1) for l in rev.properties['git-extra'].splitlines()])
 
348
            propname = u'git-mergetag-%d' % i
 
349
        if u'git-extra' in rev.properties:
 
350
            commit.extra.extend([l.split(' ', 1) for l in rev.properties[u'git-extra'].splitlines()])
351
351
        return commit
352
352
 
353
353
    def import_fileid_map(self, blob):
372
372
        def decode_using_encoding(rev, commit, encoding):
373
373
            rev.committer = str(commit.committer).decode(encoding)
374
374
            if commit.committer != commit.author:
375
 
                rev.properties['author'] = str(commit.author).decode(encoding)
 
375
                rev.properties[u'author'] = str(commit.author).decode(encoding)
376
376
            rev.message, rev.git_metadata = self._decode_commit_message(
377
377
                rev, commit.message, encoding)
378
378
        if commit.encoding is not None:
379
 
            rev.properties['git-explicit-encoding'] = commit.encoding
 
379
            rev.properties[u'git-explicit-encoding'] = commit.encoding
380
380
            decode_using_encoding(rev, commit, commit.encoding)
381
381
        else:
382
382
            for encoding in ('utf-8', 'latin1'):
386
386
                    pass
387
387
                else:
388
388
                    if encoding != 'utf-8':
389
 
                        rev.properties['git-implicit-encoding'] = encoding
 
389
                        rev.properties[u'git-implicit-encoding'] = encoding
390
390
                    break
391
391
        if commit.commit_time != commit.author_time:
392
 
            rev.properties['author-timestamp'] = str(commit.author_time)
 
392
            rev.properties[u'author-timestamp'] = str(commit.author_time)
393
393
        if commit.commit_timezone != commit.author_timezone:
394
 
            rev.properties['author-timezone'] = "%d" % commit.author_timezone
 
394
            rev.properties[u'author-timezone'] = "%d" % commit.author_timezone
395
395
        if commit._author_timezone_neg_utc:
396
 
            rev.properties['author-timezone-neg-utc'] = ""
 
396
            rev.properties[u'author-timezone-neg-utc'] = ""
397
397
        if commit._commit_timezone_neg_utc:
398
 
            rev.properties['commit-timezone-neg-utc'] = ""
 
398
            rev.properties[u'commit-timezone-neg-utc'] = ""
399
399
        if commit.gpgsig:
400
 
            rev.properties['git-gpg-signature'] = commit.gpgsig.decode('ascii')
 
400
            rev.properties[u'git-gpg-signature'] = commit.gpgsig.decode('ascii')
401
401
        if commit.mergetag:
402
402
            for i, tag in enumerate(commit.mergetag):
403
 
                rev.properties['git-mergetag-%d' % i] = tag.as_raw_string()
 
403
                rev.properties[u'git-mergetag-%d' % i] = tag.as_raw_string()
404
404
        rev.timestamp = commit.commit_time
405
405
        rev.timezone = commit.commit_timezone
406
406
        rev.parent_ids = None
437
437
        if unknown_extra_fields:
438
438
            raise UnknownCommitExtra(commit, unknown_extra_fields)
439
439
        if extra_lines:
440
 
            rev.properties['git-extra'] = ''.join(extra_lines)
 
440
            rev.properties[u'git-extra'] = ''.join(extra_lines)
441
441
        return rev, roundtrip_revid, verifiers
442
442
 
443
443
    def get_fileid_map(self, lookup_object, tree_sha):
487
487
 
488
488
    def import_commit(self, commit, lookup_parent_revid):
489
489
        rev, roundtrip_revid, verifiers = super(BzrGitMappingExperimental, self).import_commit(commit, lookup_parent_revid)
490
 
        rev.properties['converted_revision'] = "git %s\n" % commit.id
 
490
        rev.properties[u'converted_revision'] = "git %s\n" % commit.id
491
491
        return rev, roundtrip_revid, verifiers
492
492
 
493
493