You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2014/03/25 15:27:02 UTC
[04/50] git commit: [#6301] ticket:536 Show description changes as
diff
[#6301] ticket:536 Show description changes as diff
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/714cf870
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/714cf870
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/714cf870
Branch: refs/heads/db/5995
Commit: 714cf8709033d43c9ce689383db529d092a07f05
Parents: 8deb965
Author: Igor Bondarenko <je...@gmail.com>
Authored: Wed Mar 5 16:07:59 2014 +0200
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Mar 5 15:51:21 2014 +0000
----------------------------------------------------------------------
Allura/allura/controllers/repository.py | 2 +-
Allura/allura/lib/helpers.py | 10 +++++++++
.../templates/repo/merge_request_changed.html | 13 +++++++++++-
.../tests/functional/test_controllers.py | 22 +++++++++++++++-----
4 files changed, 40 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/714cf870/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 4be5213..ad8a974 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -419,7 +419,7 @@ class MergeRequestController(object):
self.req.source_branch = kw['source_branch']
if self.req.description != kw['description']:
- changes['Description'] = [self.req.description, kw['description']]
+ changes['Description'] = h.unidiff(self.req.description, kw['description'])
self.req.description = kw['description']
with self.req.push_downstream_context():
self.req.downstream['commit_id'] = c.app.repo.commit(kw['source_branch'])._id
http://git-wip-us.apache.org/repos/asf/allura/blob/714cf870/Allura/allura/lib/helpers.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index 83992aa..d109917 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -1180,3 +1180,13 @@ def map_jinja_filter(ctx, seq, filter_name, *a, **kw):
"""
filter_ = get_filter(ctx, filter_name)
return [filter_(value, *a, **kw) for value in seq]
+
+
+def unidiff(old, new):
+ """Returns unified diff between `one` and `two`."""
+ return '\n'.join(difflib.unified_diff(
+ a=old.splitlines(),
+ b=new.splitlines(),
+ fromfile='old',
+ tofile='new',
+ lineterm=''))
http://git-wip-us.apache.org/repos/asf/allura/blob/714cf870/Allura/allura/templates/repo/merge_request_changed.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/repo/merge_request_changed.html b/Allura/allura/templates/repo/merge_request_changed.html
index 1c278e6..dd4059c 100644
--- a/Allura/allura/templates/repo/merge_request_changed.html
+++ b/Allura/allura/templates/repo/merge_request_changed.html
@@ -17,5 +17,16 @@
under the License.
-#}
{% for field, values in changes.iteritems() %}
+{% if field == 'Description': %}
+- **{{ field }}**:
+
+Diff:
+
+~~~~
+{{ values }}
+~~~~
+
+{% else %}
- **{{ field }}**: {{ values[0] }} --> {{ values[1] }}
-{% endfor %}
\ No newline at end of file
+{% endif %}
+{% endfor %}
http://git-wip-us.apache.org/repos/asf/allura/blob/714cf870/ForgeGit/forgegit/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index 90230b5..d7bc19f 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -631,15 +631,27 @@ class TestFork(_TestCase):
assert '[5c4724]' not in r
assert '<p>changed description</p' in r
assert 'Merge Request #1: changed summary (open)' in r
- assert '''<li>
+ changes = r.html.findAll('div', attrs={'class': 'markdown_content'})[-1]
+ assert unicode(changes) == """
+<div class="markdown_content"><ul>
+<li>
<p><strong>Source branch</strong>: zz --> master</p>
</li>
<li>
-<p><strong>Description</strong>: description --> changed description</p>
+<p><strong>Description</strong>:</p>
</li>
-<li>
-<p><strong>Summary</strong>: summary --> changed summary</p>
-</li>''' in r
+</ul>
+<p>Diff:</p>
+<div class="codehilite"><pre><span class="gd">--- old</span>
+<span class="gi">+++ new</span>
+<span class="gu">@@ -1 +1 @@</span>
+<span class="gd">-description</span>
+<span class="gi">+changed description</span>
+</pre></div>
+<ul>
+<li><strong>Summary</strong>: summary --> changed summary</li>
+</ul></div>
+""".strip()
r = self.app.get('/p/test/src-git/merge-requests')
assert '<a href="1/">changed summary</a>' in r