Mercurial > kallithea
changeset 6938:6fde53180c50
diffs: wrap vcs repo get_diff
Refactor to get a single place for diff error handling outside the vcs lib.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 22 Oct 2017 00:42:12 +0200 |
parents | 9491eb545fef |
children | 07f026cdf7ac |
files | kallithea/controllers/changeset.py kallithea/controllers/compare.py kallithea/controllers/pullrequests.py kallithea/lib/diffs.py |
diffstat | 4 files changed, 15 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/changeset.py Sun Oct 22 00:42:12 2017 +0200 +++ b/kallithea/controllers/changeset.py Sun Oct 22 00:42:12 2017 +0200 @@ -270,7 +270,7 @@ context_lcl = get_line_ctx('', request.GET) ign_whitespace_lcl = get_ignore_ws('', request.GET) - raw_diff = c.db_repo_scm_instance.get_diff(cs1, cs2, + raw_diff = diffs.get_diff(c.db_repo_scm_instance, cs1, cs2, ignore_whitespace=ign_whitespace_lcl, context=context_lcl) diff_limit = None if c.fulldiff else self.cut_off_limit file_diff_data = []
--- a/kallithea/controllers/compare.py Sun Oct 22 00:42:12 2017 +0200 +++ b/kallithea/controllers/compare.py Sun Oct 22 00:42:12 2017 +0200 @@ -266,7 +266,7 @@ log.debug('running diff between %s and %s in %s', rev1, c.cs_rev, org_repo.scm_instance.path) - raw_diff = org_repo.scm_instance.get_diff(rev1=rev1, rev2=c.cs_rev, + raw_diff = diffs.get_diff(org_repo.scm_instance, rev1=rev1, rev2=c.cs_rev, ignore_whitespace=ignore_whitespace, context=line_context)
--- a/kallithea/controllers/pullrequests.py Sun Oct 22 00:42:12 2017 +0200 +++ b/kallithea/controllers/pullrequests.py Sun Oct 22 00:42:12 2017 +0200 @@ -591,9 +591,8 @@ log.debug('running diff between %s and %s in %s', c.a_rev, c.cs_rev, org_scm_instance.path) try: - raw_diff = org_scm_instance.get_diff(rev1=safe_str(c.a_rev), rev2=safe_str(c.cs_rev), - ignore_whitespace=ignore_whitespace, - context=line_context) + raw_diff = diffs.get_diff(org_scm_instance, rev1=safe_str(c.a_rev), rev2=safe_str(c.cs_rev), + ignore_whitespace=ignore_whitespace, context=line_context) except ChangesetDoesNotExistError: raw_diff = _("The diff can't be shown - the PR revisions could not be found.") diff_processor = diffs.DiffProcessor(raw_diff or '', diff_limit=diff_limit)
--- a/kallithea/lib/diffs.py Sun Oct 22 00:42:12 2017 +0200 +++ b/kallithea/lib/diffs.py Sun Oct 22 00:42:12 2017 +0200 @@ -248,10 +248,19 @@ old_raw_id = getattr(filenode_old.changeset, 'raw_id', repo.EMPTY_CHANGESET) new_raw_id = getattr(filenode_new.changeset, 'raw_id', repo.EMPTY_CHANGESET) - vcs_gitdiff = repo.get_diff(old_raw_id, new_raw_id, filenode_new.path, - ignore_whitespace, context) + vcs_gitdiff = get_diff(repo, old_raw_id, new_raw_id, filenode_new.path, + ignore_whitespace, context) return vcs_gitdiff + +def get_diff(scm_instance, rev1, rev2, path=None, ignore_whitespace=False, context=3): + """ + A thin wrapper around vcs lib get_diff. + """ + return scm_instance.get_diff(rev1, rev2, path=path, + ignore_whitespace=ignore_whitespace, context=context) + + NEW_FILENODE = 1 DEL_FILENODE = 2 MOD_FILENODE = 3