Skip to content

Commit

Permalink
added ignore_Whitespace flag into diff options
Browse files Browse the repository at this point in the history
  • Loading branch information
marcinkuzminski committed Dec 3, 2011
1 parent 14c534c commit f6e5f24
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
8 changes: 6 additions & 2 deletions vcs/backends/git.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,14 @@ def run_git_command(self, cmd):
"stderr:\n%s" % (cmd, se))
return so, se

def _get_diff(self, rev1, rev2, path=None):
def _get_diff(self, rev1, rev2, path=None, ignore_whitespace=False):
rev1 = self._get_revision(rev1)
rev2 = self._get_revision(rev2)
cmd = 'diff %s %s' % (rev1, rev2)

if ignore_whitespace:
cmd = 'diff -w %s %s' % (rev1, rev2)
else:
cmd = 'diff %s %s' % (rev1, rev2)
if path:
cmd += ' -- "%s"' % path
so, se = self.run_git_command(cmd)
Expand Down
5 changes: 3 additions & 2 deletions vcs/backends/hg.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,10 +254,11 @@ def _get_all_revisions(self):

return map(lambda x: hex(x[7]), self._repo.changelog.index)[:-1]

def _get_diff(self, rev1, rev2, path=None):
def _get_diff(self, rev1, rev2, path=None, ignore_whitespace=False):
file_filter = match(self.path, '', [path])
return patch.diff(self._repo, rev1, rev2, match=file_filter,
opts=diffopts(git=True))
opts=diffopts(git=True,
ignorews=ignore_whitespace))

def _check_url(self, url):
"""
Expand Down
9 changes: 6 additions & 3 deletions vcs/utils/diffs.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from vcs.nodes import FileNode, NodeError


def get_udiff(filenode_old, filenode_new):
def get_udiff(filenode_old, filenode_new,show_whitespace=True):
"""
Returns unified diff between given ``filenode_old`` and ``filenode_new``.
"""
Expand Down Expand Up @@ -48,9 +48,11 @@ def get_udiff(filenode_old, filenode_new):
return vcs_udiff


def get_gitdiff(filenode_old, filenode_new):
def get_gitdiff(filenode_old, filenode_new, ignore_whitespace=True):
"""
Returns git style diff between given ``filenode_old`` and ``filenode_new``.
:param ignore_whitespace: ignore whitespaces in diff
"""

for filenode in (filenode_old, filenode_new):
Expand All @@ -62,7 +64,8 @@ def get_gitdiff(filenode_old, filenode_new):
new_raw_id = getattr(filenode_new.changeset, 'raw_id', '0' * 40)

repo = filenode_new.changeset.repository
vcs_gitdiff = repo._get_diff(old_raw_id, new_raw_id, filenode_new.path)
vcs_gitdiff = repo._get_diff(old_raw_id, new_raw_id, filenode_new.path,
ignore_whitespace)

return vcs_gitdiff

Expand Down

0 comments on commit f6e5f24

Please sign in to comment.