##// END OF EJS Templates
convert: encapsulate commit data fetching and commit object creation...
David Soria Parra -
r30603:db9e8835 default
parent child Browse files
Show More
@@ -151,24 +151,17 b' class p4_source(common.converter_source)'
151 151 lastid = change
152 152 continue
153 153
154 cmd = "p4 -G describe -s %s" % change
155 stdout = util.popen(cmd, mode='rb')
156 d = marshal.load(stdout)
157 desc = self.recode(d.get("desc", ""))
158 shortdesc = desc.split("\n", 1)[0]
159 t = '%s %s' % (d["change"], repr(shortdesc)[1:-1])
160 ui.status(util.ellipsis(t, 80) + '\n')
161
162 154 if lastid:
163 155 parents = [lastid]
164 156 else:
165 157 parents = []
166 158
167 date = (int(d["time"]), 0) # timezone not set
168 c = common.commit(author=self.recode(d["user"]),
169 date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
170 parents=parents, desc=desc, branch=None,
171 extra={"p4": change, "convert_revision": change})
159 d = self._fetch_revision(change)
160 c = self._construct_commit(d, parents)
161
162 shortdesc = c.desc.splitlines(True)[0].rstrip('\r\n')
163 t = '%s %s' % (c.rev, repr(shortdesc)[1:-1])
164 ui.status(util.ellipsis(t, 80) + '\n')
172 165
173 166 files = []
174 167 copies = {}
@@ -303,6 +296,30 b' class p4_source(common.converter_source)'
303 296 raise error.Abort(_("convert from p4 does not support --full"))
304 297 return self.files[rev], self.copies[rev], set()
305 298
299 def _construct_commit(self, obj, parents=None):
300 """
301 Constructs a common.commit object from an unmarshalled
302 `p4 describe` output
303 """
304 desc = self.recode(obj.get("desc", ""))
305 shortdesc = desc.split("\n", 1)[0]
306
307 date = (int(obj["time"]), 0) # timezone not set
308 if parents is None:
309 parents = []
310
311 return common.commit(author=self.recode(obj["user"]),
312 date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
313 parents=parents, desc=desc, branch=None, rev=obj['change'],
314 extra={"p4": obj['change'], "convert_revision": obj['change']})
315
316 def _fetch_revision(self, rev):
317 """Return an output of `p4 describe` including author, commit date as
318 a dictionary."""
319 cmd = "p4 -G describe -s %s" % rev
320 stdout = util.popen(cmd, mode='rb')
321 return marshal.load(stdout)
322
306 323 def getcommit(self, rev):
307 324 return self.changeset[rev]
308 325
General Comments 0
You need to be logged in to leave comments. Login now