def isChange(self, fieldname, changeType, newValue=None, isMd5=False):
<EOL>changes = self._collapseChanges(self.baseline, self.current)<EOL>if fieldname not in changes:<EOL><INDENT>return fieldname<EOL><DEDENT>cur = changes[fieldname]<EOL>if changeType == constants.ITEM_DELETED:<EOL><INDENT>if cur.op == constants.ITEM_ADDED or cur.op == constants.ITEM_DELETED:<EOL><INDENT>return None<EOL><DEDENT>raise ConflictError('<STR_LIT>'<EOL>% (fieldname,))<EOL><DEDENT>if isMd5Equal(newValue, isMd5, cur.ival, cur.md5):<EOL><INDENT>return None<EOL><DEDENT>raise ConflictError(<EOL>'<STR_LIT>' % (fieldname,))<EOL>
Implements as specified in :meth:`.ChangeTracker.isChange` where
the `changeObject` is simply the fieldname that needs to be
updated with the `newValue`. Currently, this is always equal to
`fieldname`.