Jump to >

reviewboard.diffviewer.models.filediff

FileDiff model definition.

class FileDiff(*args, **kwargs)[source]

A diff of a single file.

This contains the patch and information needed to produce original and patched versions of a single file in a repository.

property source_file_display[source]

The displayed filename for the source/original file.

This may be different than source_file, as the associated SCMTool may normalize it for display.

Type:

unicode

property dest_file_display[source]

The displayed filename for the destination/modified file.

This may be different than dest_file, as the associated SCMTool may normalize it for display.

Type:

unicode

property modified[source]

Whether this file is a modification to an existing file.

Whether this file represents a symlink.

This represents the value of the is_symlink key in extra_data.

New in version 4.0.6.

Type:

bool

The old target for the symlink.

This represents the value of the old_symlink_target key in extra_data.

New in version 4.0.6.

Type:

unicode

The new target for the symlink.

This represents the value of the new_symlink_target key in extra_data.

New in version 4.0.6.

Type:

unicode

property old_unix_mode[source]

The old UNIX permissions mode for the file.

This represents the value of the old_unix_mode key in extra_data. It is stored as a string representing an octal.

New in version 4.0.6.

Type:

unicode

property new_unix_mode[source]

The new UNIX permissions mode for the file.

This represents the value of the new_unix_mode key in extra_data. It is stored as a string representing an octal.

New in version 4.0.6.

Type:

unicode

property status_string[source]

The FileDiff’s status as a human-readable string.

property is_diff_empty[source]

Whether or not the diff is empty.

is_parent_diff_empty(cache_only=False)[source]

Return whether or not the parent diff is empty.

Parameters

cache_only (bool, optional) – Whether or not to only use cached results.

Returns

Whether or not the parent diff is empty. This is true if either there is no parent diff or if the parent diff has no insertions and no deletions.

Return type

bool

property orig_sha1[source]

The computed SHA1 hash of the original file.

This may be None, in which case it will be populated when the diff is next viewed.

property patched_sha1[source]

The computed SHA1 hash of the patched file.

This may be None, in which case it will be populated when the diff is next viewed.

property orig_sha256[source]

The computed SHA256 hash of the original file.

This may be None, in which case it will be populated when the diff is next viewed.

New in version 4.0.

property patched_sha256[source]

The computed SHA256 hash of the patched file.

This may be None, in which case it will be populated when the diff is next viewed.

New in version 4.0.

property encoding[source]

The encoding of the source and patched file.

This will check the encoding key in extra_data. If not available, then this will be None.

New in version 4.0.

get_line_counts()[source]

Return the stored line counts for the diff.

This will return all the types of line counts that can be set.

Returns

A dictionary with the following keys:

  • raw_insert_count

  • raw_delete_count

  • insert_count

  • delete_count

  • replace_count

  • equal_count

  • total_line_count

These are not all guaranteed to have values set, and may instead be None. Only raw_insert_count, raw_delete_count insert_count, and delete_count are guaranteed to have values set.

If there isn’t a processed number of inserts or deletes stored, then insert_count and delete_count will be equal to the raw versions.

Return type

dict

set_line_counts(raw_insert_count=None, raw_delete_count=None, insert_count=None, delete_count=None, replace_count=None, equal_count=None, total_line_count=None)[source]

Set the line counts on the FileDiff.

There are many types of useful line counts that can be set.

Parameters
  • raw_insert_count (int, optional) –

    The insert count on the original patch.

    This will be set on the reviewboard.diffviewer.models.raw_file_diff_data.RawFileDiffData as well.

  • raw_delete_count (int, optional) –

    The delete count in the original patch.

    This will be set on the reviewboard.diffviewer.models.raw_file_diff_data.RawFileDiffData as well.

  • insert_count (int, optional) – The number of lines that were inserted in the diff.

  • delete_count (int, optional) – The number of lines that were deleted in the diff.

  • replace_count (int, optional) – The number of lines that were replaced in the diff.

  • equal_count (int, optional) – The number of lines that were identical in the diff.

  • total_line_count (int, optional) – The total line count.

get_ancestors(minimal, filediffs=None, update=True)[source]

Return the ancestors of this FileDiff.

This will update the ancestors of this FileDiff and all its ancestors if they are not already cached.

Parameters
  • minimal (bool) –

    Whether or not the minimal set of ancestors are returned.

    The minimal set of ancestors does not include ancestors where the file was deleted. In other words, if a file is deleted and then re-created, the deletion will not appear in the re-created file’s ancestor list.

  • filediffs (iterable of FileDiff, optional) – An optional list of FileDiffs to check for ancestors so that a query does not have to be performed.

  • update (bool, optional) –

    Whether or not to cache the results in the database.

    If True and the results have not already been cached, this FileDiff and its ancestors will all be updated.

Returns

The ancestor FileDiffs, in application order.

Return type

list of FileDiff

get_repository()[source]

Return the repository this diff applies to.

New in version 4.0.

Returns

The repository used for any operations for this FileDiff.

Return type

reviewboard.scmtools.models.Repository

get_base_filediff(base_commit, ancestors=None)[source]

Return the base FileDiff within a commit range.

This looks through the FileDiff’s ancestors, looking for the most recent one that equals or precedes base_commit.

Parameters
  • base_commit (reviewboard.diffviewer.models.diffcommit.DiffCommit) – The newest commit that the resulting base FileDiff can be associated with.

  • ancestors (list of FileDiff, optional) – A pre-fetched list of FileDiff ancestors. If not provided, a list will be fetched.

Returns

The base FileDiff, if one could be found. None will be returned if no base could be found.

Return type

FileDiff