Merge lp:~jelmer/brz-git/mergetag into lp:brz-git

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: 1920
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz-git/mergetag
Merge into: lp:brz-git
Diff against target: 105 lines (+53/-1)
2 files modified
mapping.py (+10/-1)
tests/test_mapping.py (+43/-0)
To merge this branch: bzr merge lp:~jelmer/brz-git/mergetag
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+342515@code.launchpad.net

Commit message

Add support for the mergetag property.

Description of the change

Add support for the mergetag property.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Rubberstamp! Proposer approves of own proposal.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mapping.py'
2--- mapping.py 2018-03-30 22:49:03 +0000
3+++ mapping.py 2018-04-02 18:04:42 +0000
4@@ -263,7 +263,7 @@
5 :param verifiers: Verifiers info
6 :return dulwich.objects.Commit represent the revision:
7 """
8- from dulwich.objects import Commit
9+ from dulwich.objects import Commit, Tag
10 commit = Commit()
11 commit.tree = tree_sha
12 if not lossy:
13@@ -335,6 +335,12 @@
14 raise NoPushSupport()
15 if type(commit.message) is not str:
16 raise TypeError(commit.message)
17+ i = 0
18+ propname = 'git-mergetag-0'
19+ while propname in rev.properties:
20+ commit.mergetag.append(Tag.from_string(rev.properties[propname].encode(encoding)))
21+ i += 1
22+ propname = 'git-mergetag-%d' % i
23 if 'git-extra' in rev.properties:
24 commit.extra.extend([l.split(' ', 1) for l in rev.properties['git-extra'].splitlines()])
25 return commit
26@@ -387,6 +393,9 @@
27 rev.properties['commit-timezone-neg-utc'] = ""
28 if commit.gpgsig:
29 rev.properties['git-gpg-signature'] = commit.gpgsig.decode('ascii')
30+ if commit.mergetag:
31+ for i, tag in enumerate(commit.mergetag):
32+ rev.properties['git-mergetag-%d' % i] = tag.as_raw_string()
33 rev.timestamp = commit.commit_time
34 rev.timezone = commit.commit_timezone
35 rev.parent_ids = None
36
37=== modified file 'tests/test_mapping.py'
38--- tests/test_mapping.py 2018-03-30 22:49:03 +0000
39+++ tests/test_mapping.py 2018-04-02 18:04:42 +0000
40@@ -30,9 +30,13 @@
41 from dulwich.objects import (
42 Blob,
43 Commit,
44+ Tag,
45 Tree,
46 parse_timezone,
47 )
48+from dulwich.tests.utils import (
49+ make_object,
50+ )
51
52 from .. import tests
53 from ..errors import UnknownCommitExtra
54@@ -196,6 +200,27 @@
55 self.assertRaises(UnknownCommitExtra, mapping.import_commit, c,
56 mapping.revision_id_foreign_to_bzr)
57
58+ def test_mergetag(self):
59+ c = Commit()
60+ c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
61+ c.message = "Some message"
62+ c.committer = "Committer"
63+ c.commit_time = 4
64+ c.author_time = 5
65+ c.commit_timezone = 60 * 5
66+ c.author_timezone = 60 * 3
67+ c.author = "Author"
68+ tag = make_object(Tag,
69+ tagger=b'Jelmer Vernooij <jelmer@samba.org>',
70+ name=b'0.1', message=None,
71+ object=(Blob, b'd80c186a03f423a81b39df39dc87fd269736ca86'),
72+ tag_time=423423423, tag_timezone=0)
73+ c.mergetag = [tag]
74+ mapping = BzrGitMappingv1()
75+ rev, roundtrip_revid, verifiers = mapping.import_commit(
76+ c, mapping.revision_id_foreign_to_bzr)
77+ self.assertEqual(rev.properties['git-mergetag-0'], tag.as_raw_string())
78+
79
80 class RoundtripRevisionsFromBazaar(tests.TestCase):
81
82@@ -354,6 +379,24 @@
83 c._extra = [("HG:rename-source", "hg")]
84 self.assertRoundtripCommit(c)
85
86+ def test_commit_mergetag(self):
87+ c = Commit()
88+ c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
89+ c.message = "Some message"
90+ c.committer = "Committer <Committer>"
91+ c.commit_time = 4
92+ c.commit_timezone = -60 * 3
93+ c.author_time = 5
94+ c.author_timezone = 60 * 2
95+ c.author = "Author <author>"
96+ tag = make_object(Tag,
97+ tagger=b'Jelmer Vernooij <jelmer@samba.org>',
98+ name=b'0.1', message=None,
99+ object=(Blob, b'd80c186a03f423a81b39df39dc87fd269736ca86'),
100+ tag_time=423423423, tag_timezone=0)
101+ c.mergetag = [tag]
102+ self.assertRoundtripCommit(c)
103+
104
105 class DirectoryToTreeTests(tests.TestCase):
106

Subscribers

People subscribed via source and target branches

to all changes: