本文整理汇总了Python中reviewboard.scmtools.core.ChangeSet类的典型用法代码示例。如果您正苦于以下问题:Python ChangeSet类的具体用法?Python ChangeSet怎么用?Python ChangeSet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ChangeSet类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get_fake_changeset
def _get_fake_changeset(scmtool, commit_id, allow_empty=True):
self.assertEqual(commit_id, current_commit_id)
changeset = ChangeSet()
changeset.pending = False
changeset.changenum = int(new_commit_id)
return changeset
示例2: parse_change_desc
def parse_change_desc(changedesc, changenum, allow_empty=False):
if not changedesc:
return None
changeset = ChangeSet()
try:
changeset.changenum = int(changedesc['change'])
except ValueError:
changeset.changenum = changenum
# At it's most basic, a perforce changeset description has three
# sections.
#
# ---------------------------------------------------------
# Change <num> by <user>@<client> on <timestamp> *pending*
#
# description...
# this can be any number of lines
#
# Affected files ...
#
# //depot/branch/etc/file.cc#<revision> branch
# //depot/branch/etc/file.hh#<revision> delete
# ---------------------------------------------------------
#
# At the moment, we only care about the description and the list of
# files. We take the first line of the description as the summary.
#
# We parse the username out of the first line to check that one user
# isn't attempting to "claim" another's changelist. We then split
# everything around the 'Affected files ...' line, and process the
# results.
changeset.username = changedesc['user']
try:
changeset.description = changedesc['desc'].decode('utf-8')
except UnicodeDecodeError:
changeset.description = changedesc['desc'].decode('utf-8',
'replace')
if changedesc['status'] == "pending":
changeset.pending = True
try:
changeset.files = changedesc['depotFile']
except KeyError:
if not allow_empty:
raise EmptyChangeSetError(changenum)
split = changeset.description.find('\n\n')
if split >= 0 and split < 100:
changeset.summary = \
changeset.description.split('\n\n', 1)[0].replace('\n', ' ')
else:
changeset.summary = changeset.description.split('\n', 1)[0]
return changeset
示例3: get_changeset
def get_changeset(self, changesetid, allow_empty=False):
logging.debug('Plastic: get_changeset %s' % (changesetid))
changesetdata = self.client.get_changeset(changesetid)
logging.debug('Plastic: changesetdata %s' % (changesetdata))
# Changeset data is in the form of multiple lines of:
# <changesetid> <user> <revid> <file spec>
#
# We assume the user and comment will be the same for each item, so
# read it out of the first.
#
changeset = ChangeSet()
changeset.changenum = changesetid
split = changesetdata.split('\n')
m = self.CS_RE.match(split[0])
revid = m.group("revid")
changeset.username = m.group("user")
changeset.summary = self.client.get_changeset_comment(changesetid,
revid)
logging.debug('Plastic: changeset user %s summary %s' %
(changeset.username, changeset.summary))
for line in split:
if line:
m = self.CS_RE.match(line)
if not m:
logging.debug('Plastic: bad re %s failed to match %s' %
(self.CS_RE, line))
raise SCMError("Error looking up changeset")
if m.group("csid") != six.text_type(changesetid):
logging.debug('Plastic: csid %s != %s' % (m.group("csid"),
changesetid))
raise SCMError('The server returned a changeset ID that '
'was not requested')
logging.debug('Plastic: adding file %s' % (m.group("file")))
changeset.files += m.group("file")
return changeset
示例4: get_changeset
def get_changeset(self, changesetid, allow_empty=False):
changeset = ChangeSet()
changeset.changenum = changesetid
changeset.description = 'Hello world!'
changeset.pending = True
if not allow_empty:
changeset.files = ['README.md']
changeset.summary = 'Added a README markdown to help explain what the'\
' repository is used for. Hopefully, this takes off.'
changeset.testing_done = "None was performed"
return changeset
示例5: test_update_from_pending_change_with_rich_text_reset
def test_update_from_pending_change_with_rich_text_reset(self):
"""Testing ReviewRequestDraft.update_from_pending_change resets rich
text fields
"""
review_request = ReviewRequest.objects.create(self.user,
self.repository)
draft = ReviewRequestDraft.create(review_request)
draft.description_rich_text = True
draft.testing_done_rich_text = True
changeset = ChangeSet()
changeset.changenum = 4
changeset.summary = '* This is a summary'
changeset.description = '* This is a description.'
changeset.testing_done = '* This is some testing.'
draft.update_from_pending_change(4, changeset)
self.assertEqual(draft.summary, '* This is a summary')
self.assertEqual(draft.description, '* This is a description.')
self.assertFalse(draft.description_rich_text)
self.assertEqual(draft.testing_done, '* This is some testing.')
self.assertFalse(draft.testing_done_rich_text)
示例6: _parse_change_desc
def _parse_change_desc(self, changedesc, changenum, allow_empty=False):
"""Parse the contents of a change description from Perforce.
This will attempt to grab details from the change description,
including the changeset ID, the list of files, change message,
and state.
Args:
changedesc (dict):
The change description dictionary from Perforce.
changenum (int):
THe change number.
allow_empty (bool, optional):
Whether an empty changeset (containing no files) is allowed.
Returns:
reviewboard.scmtools.core.ChangeSet:
The resulting changeset, or ``None`` if ``changedesc`` is empty.
Raises:
reviewboard.scmtools.errors.EmptyChangeSetError:
The resulting changeset contained no file modifications (and
``allow_empty`` was ``False``).
"""
if not changedesc:
return None
changeset = ChangeSet()
try:
changeset.changenum = int(changedesc['change'])
except ValueError:
changeset.changenum = changenum
# At it's most basic, a perforce changeset description has three
# sections.
#
# ---------------------------------------------------------
# Change <num> by <user>@<client> on <timestamp> *pending*
#
# description...
# this can be any number of lines
#
# Affected files ...
#
# //depot/branch/etc/file.cc#<revision> branch
# //depot/branch/etc/file.hh#<revision> delete
# ---------------------------------------------------------
#
# At the moment, we only care about the description and the list of
# files. We take the first line of the description as the summary.
#
# We parse the username out of the first line to check that one user
# isn't attempting to "claim" another's changelist. We then split
# everything around the 'Affected files ...' line, and process the
# results.
changeset.username = changedesc['user']
try:
changeset.description = changedesc['desc'].decode('utf-8')
except UnicodeDecodeError:
changeset.description = changedesc['desc'].decode('utf-8',
'replace')
if changedesc['status'] == 'pending':
changeset.pending = True
try:
changeset.files = changedesc['depotFile']
except KeyError:
if not allow_empty:
raise EmptyChangeSetError(changenum)
split = changeset.description.find('\n\n')
if split >= 0 and split < 100:
changeset.summary = \
changeset.description.split('\n\n', 1)[0].replace('\n', ' ')
else:
changeset.summary = changeset.description.split('\n', 1)[0]
return changeset