diff --git a/kallithea/lib/diffs.py b/kallithea/lib/diffs.py
--- a/kallithea/lib/diffs.py
+++ b/kallithea/lib/diffs.py
@@ -327,49 +327,49 @@ class DiffProcessor(object):
}
if head['deleted_file_mode']:
- op = 'D'
+ op = 'removed'
stats['binary'] = True
stats['ops'][DEL_FILENODE] = 'deleted file'
elif head['new_file_mode']:
- op = 'A'
+ op = 'added'
stats['binary'] = True
stats['ops'][NEW_FILENODE] = 'new file %s' % head['new_file_mode']
else: # modify operation, can be cp, rename, chmod
# CHMOD
if head['new_mode'] and head['old_mode']:
- op = 'M'
+ op = 'modified'
stats['binary'] = True
stats['ops'][CHMOD_FILENODE] = ('modified file chmod %s => %s'
% (head['old_mode'], head['new_mode']))
# RENAME
if (head['rename_from'] and head['rename_to']
and head['rename_from'] != head['rename_to']):
- op = 'R'
+ op = 'renamed'
stats['binary'] = True
stats['ops'][RENAMED_FILENODE] = ('file renamed from %s to %s'
% (head['rename_from'], head['rename_to']))
# COPY
if head.get('copy_from') and head.get('copy_to'):
- op = 'M'
+ op = 'modified'
stats['binary'] = True
stats['ops'][COPIED_FILENODE] = ('file copied from %s to %s'
% (head['copy_from'], head['copy_to']))
# FALL BACK: detect missed old style add or remove
if op is None:
if not head['a_file'] and head['b_file']:
- op = 'A'
+ op = 'added'
stats['binary'] = True
stats['ops'][NEW_FILENODE] = 'new file'
elif head['a_file'] and not head['b_file']:
- op = 'D'
+ op = 'removed'
stats['binary'] = True
stats['ops'][DEL_FILENODE] = 'deleted file'
# it's not ADD not DELETE
if op is None:
- op = 'M'
+ op = 'modified'
stats['binary'] = True
stats['ops'][MOD_FILENODE] = 'modified file'
@@ -380,7 +380,7 @@ class DiffProcessor(object):
stats['added'] = added
stats['deleted'] = deleted
# explicit mark that it's a modified file
- if op == 'M':
+ if op == 'modified':
stats['ops'][MOD_FILENODE] = 'modified file'
else: # Git binary patch (or empty diff)
# Git binary patch
@@ -388,7 +388,7 @@ class DiffProcessor(object):
stats['ops'][BIN_FILENODE] = 'binary diff not shown'
chunks = []
- if op == 'D' and chunks:
+ if op == 'removed' and chunks:
# a way of seeing deleted content could perhaps be nice - but
# not with the current UI
chunks = []
diff --git a/kallithea/public/css/contextbar.css b/kallithea/public/css/contextbar.css
--- a/kallithea/public/css/contextbar.css
+++ b/kallithea/public/css/contextbar.css
@@ -11,29 +11,6 @@ i[class^='icon-'] {
/* background-color: red; /* for debugging */
}
/* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon styling without an actual glyph */
-/* css classes for diff file status ... it'd be nice if css had a way to
- inherit from another class but alas, we must make sure this content is the
- same from the icon font file */
-.icon-diff-M:before {
- font-family: 'kallithea';
- content: '\22a1';
- color: #d0b44c;
-}
-.icon-diff-D:before {
- font-family: 'kallithea';
- content: '\229f';
- color: #bd2c00;
-}
-.icon-diff-A:before {
- font-family: 'kallithea';
- content: '\229e';
- color: #6cc644;
-}
-.icon-diff-R:before {
- font-family: 'kallithea';
- content: '\e81f';
- color: #677a85;
-}
nav.navbar #quick a,
#content #context-bar,
#content #context-bar a {
diff --git a/kallithea/public/css/style.css b/kallithea/public/css/style.css
--- a/kallithea/public/css/style.css
+++ b/kallithea/public/css/style.css
@@ -1989,26 +1989,23 @@ BIN_FILENODE = 6
.cs_files .changes .bin.bin5 {
background-color: #6D99FF;
}
-.cs_files .cs_added,
-.cs_files .cs_A {
+.cs_files .cs_added {
height: 16px;
margin-top: 7px;
text-align: left;
}
.cs_files .cs_changed,
-.cs_files .cs_M {
+.cs_files .cs_modified {
height: 16px;
margin-top: 7px;
text-align: left;
}
-.cs_files .cs_removed,
-.cs_files .cs_D {
+.cs_files .cs_removed {
height: 16px;
margin-top: 7px;
text-align: left;
}
-.cs_files .cs_renamed,
-.cs_files .cs_R {
+.cs_files .cs_renamed {
height: 16px;
margin-top: 7px;
text-align: left;
@@ -2174,6 +2171,19 @@ table.code-difftable .unmod .code pre:be
.add-bubble div:hover {
transform: scale(1.2, 1.2);
}
+/* file diff icons */
+.icon-diff-modified:before {
+ color: #d0b44c;
+}
+.icon-diff-removed:before {
+ color: #bd2c00;
+}
+.icon-diff-added:before {
+ color: #6cc644;
+}
+.icon-diff-renamed:before {
+ color: #677a85;
+}
/* show some context of link targets - but only works when the link target
can be extended with any visual difference */
div.comment:target:before {
diff --git a/kallithea/public/less/kallithea-diff.less b/kallithea/public/less/kallithea-diff.less
--- a/kallithea/public/less/kallithea-diff.less
+++ b/kallithea/public/less/kallithea-diff.less
@@ -54,26 +54,23 @@ BIN_FILENODE = 6
.cs_files .changes .bin.bin5 {
background-color: #6D99FF;
}
-.cs_files .cs_added,
-.cs_files .cs_A {
+.cs_files .cs_added {
height: 16px;
margin-top: 7px;
text-align: left;
}
.cs_files .cs_changed,
-.cs_files .cs_M {
+.cs_files .cs_modified {
height: 16px;
margin-top: 7px;
text-align: left;
}
-.cs_files .cs_removed,
-.cs_files .cs_D {
+.cs_files .cs_removed {
height: 16px;
margin-top: 7px;
text-align: left;
}
-.cs_files .cs_renamed,
-.cs_files .cs_R {
+.cs_files .cs_renamed {
height: 16px;
margin-top: 7px;
text-align: left;
@@ -239,3 +236,17 @@ table.code-difftable .unmod .code pre:be
.add-bubble div:hover {
transform: scale(1.2, 1.2);
}
+
+/* file diff icons */
+.icon-diff-modified:before {
+ color: #d0b44c;
+}
+.icon-diff-removed:before {
+ color: #bd2c00;
+}
+.icon-diff-added:before {
+ color: #6cc644;
+}
+.icon-diff-renamed:before {
+ color: #677a85;
+}
diff --git a/kallithea/tests/functional/test_compare_local.py b/kallithea/tests/functional/test_compare_local.py
--- a/kallithea/tests/functional/test_compare_local.py
+++ b/kallithea/tests/functional/test_compare_local.py
@@ -31,48 +31,48 @@ class TestCompareController(TestControll
## files diff
response.mustcontain(
'''
-
+
docs/api/utils/index.rst
''')
response.mustcontain(
'''
-
+
test_and_report.sh''')
response.mustcontain(
'''
-
+
.hgignore''')
response.mustcontain(
'''
-
+
.hgtags''')
response.mustcontain(
'''
-
+
docs/api/index.rst''')
response.mustcontain(
'''
-
+
vcs/__init__.py''')
response.mustcontain(
'''
-
+
vcs/backends/hg.py''')
response.mustcontain(
'''
-
+
vcs/utils/__init__.py''')
response.mustcontain(
'''
-
+
vcs/utils/annotate.py''')
response.mustcontain(
'''
-
+
vcs/utils/diffs.py''')
response.mustcontain(
'''
-
+
vcs/utils/lazy.py''')
def test_compare_tag_git(self):
diff --git a/kallithea/tests/models/test_diff_parsers.py b/kallithea/tests/models/test_diff_parsers.py
--- a/kallithea/tests/models/test_diff_parsers.py
+++ b/kallithea/tests/models/test_diff_parsers.py
@@ -8,7 +8,7 @@ fixture = Fixture()
DIFF_FIXTURES = {
'hg_diff_add_single_binary_file.diff': [
- ('US Warszawa.jpg', 'A',
+ ('US Warszawa.jpg', 'added',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -16,7 +16,7 @@ DIFF_FIXTURES = {
BIN_FILENODE: 'binary diff not shown'}}),
],
'hg_diff_mod_single_binary_file.diff': [
- ('US Warszawa.jpg', 'M',
+ ('US Warszawa.jpg', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -25,7 +25,7 @@ DIFF_FIXTURES = {
],
'hg_diff_mod_single_file_and_rename_and_chmod.diff': [
- ('README', 'R',
+ ('README', 'renamed',
{'added': 3,
'deleted': 0,
'binary': False,
@@ -33,14 +33,14 @@ DIFF_FIXTURES = {
CHMOD_FILENODE: 'modified file chmod 100755 => 100644'}}),
],
'hg_diff_mod_file_and_rename.diff': [
- ('README.rst', 'R',
+ ('README.rst', 'renamed',
{'added': 3,
'deleted': 0,
'binary': False,
'ops': {RENAMED_FILENODE: 'file renamed from README to README.rst'}}),
],
'hg_diff_del_single_binary_file.diff': [
- ('US Warszawa.jpg', 'D',
+ ('US Warszawa.jpg', 'removed',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -48,7 +48,7 @@ DIFF_FIXTURES = {
BIN_FILENODE: 'binary diff not shown'}}),
],
'hg_diff_chmod_and_mod_single_binary_file.diff': [
- ('gravatar.png', 'M',
+ ('gravatar.png', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -56,21 +56,21 @@ DIFF_FIXTURES = {
BIN_FILENODE: 'binary diff not shown'}}),
],
'hg_diff_chmod.diff': [
- ('file', 'M',
+ ('file', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {CHMOD_FILENODE: 'modified file chmod 100755 => 100644'}}),
],
'hg_diff_rename_file.diff': [
- ('file_renamed', 'R',
+ ('file_renamed', 'renamed',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {RENAMED_FILENODE: 'file renamed from file to file_renamed'}}),
],
'hg_diff_rename_and_chmod_file.diff': [
- ('README', 'R',
+ ('README', 'renamed',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -78,64 +78,64 @@ DIFF_FIXTURES = {
RENAMED_FILENODE: 'file renamed from README.rst to README'}}),
],
'hg_diff_binary_and_normal.diff': [
- ('img/baseline-10px.png', 'A',
+ ('img/baseline-10px.png', 'added',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {NEW_FILENODE: 'new file 100644',
BIN_FILENODE: 'binary diff not shown'}}),
- ('img/baseline-20px.png', 'D',
+ ('img/baseline-20px.png', 'removed',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {DEL_FILENODE: 'deleted file',
BIN_FILENODE: 'binary diff not shown'}}),
- ('index.html', 'M',
+ ('index.html', 'modified',
{'added': 3,
'deleted': 2,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('js/global.js', 'D',
+ ('js/global.js', 'removed',
{'added': 0,
'deleted': 75,
'binary': False,
'ops': {DEL_FILENODE: 'deleted file'}}),
- ('js/jquery/hashgrid.js', 'A',
+ ('js/jquery/hashgrid.js', 'added',
{'added': 340,
'deleted': 0,
'binary': False,
'ops': {NEW_FILENODE: 'new file 100755'}}),
- ('less/docs.less', 'M',
+ ('less/docs.less', 'modified',
{'added': 34,
'deleted': 0,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('less/scaffolding.less', 'M',
+ ('less/scaffolding.less', 'modified',
{'added': 1,
'deleted': 3,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('readme.markdown', 'M',
+ ('readme.markdown', 'modified',
{'added': 1,
'deleted': 10,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
],
'git_diff_chmod.diff': [
- ('work-horus.xls', 'M',
+ ('work-horus.xls', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {CHMOD_FILENODE: 'modified file chmod 100644 => 100755'}})
],
'git_diff_rename_file.diff': [
- ('file.xls', 'R',
+ ('file.xls', 'renamed',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {RENAMED_FILENODE: 'file renamed from work-horus.xls to file.xls'}}),
('files/var/www/favicon.ico/DEFAULT',
- 'R',
+ 'renamed',
{'added': 0,
'binary': True,
'deleted': 0,
@@ -143,7 +143,7 @@ DIFF_FIXTURES = {
6: 'modified file chmod 100644 => 100755'}})
],
'git_diff_mod_single_binary_file.diff': [
- ('US Warszawa.jpg', 'M',
+ ('US Warszawa.jpg', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -151,78 +151,78 @@ DIFF_FIXTURES = {
BIN_FILENODE: 'binary diff not shown'}})
],
'git_diff_binary_and_normal.diff': [
- ('img/baseline-10px.png', 'A',
+ ('img/baseline-10px.png', 'added',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {NEW_FILENODE: 'new file 100644',
BIN_FILENODE: 'binary diff not shown'}}),
- ('img/baseline-20px.png', 'D',
+ ('img/baseline-20px.png', 'removed',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {DEL_FILENODE: 'deleted file',
BIN_FILENODE: 'binary diff not shown'}}),
- ('index.html', 'M',
+ ('index.html', 'modified',
{'added': 3,
'deleted': 2,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('js/global.js', 'D',
+ ('js/global.js', 'removed',
{'added': 0,
'deleted': 75,
'binary': False,
'ops': {DEL_FILENODE: 'deleted file'}}),
- ('js/jquery/hashgrid.js', 'A',
+ ('js/jquery/hashgrid.js', 'added',
{'added': 340,
'deleted': 0,
'binary': False,
'ops': {NEW_FILENODE: 'new file 100755'}}),
- ('less/docs.less', 'M',
+ ('less/docs.less', 'modified',
{'added': 34,
'deleted': 0,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('less/scaffolding.less', 'M',
+ ('less/scaffolding.less', 'modified',
{'added': 1,
'deleted': 3,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('readme.markdown', 'M',
+ ('readme.markdown', 'modified',
{'added': 1,
'deleted': 10,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
],
'diff_with_diff_data.diff': [
- ('vcs/backends/base.py', 'M',
+ ('vcs/backends/base.py', 'modified',
{'added': 18,
'deleted': 2,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('vcs/backends/git/repository.py', 'M',
+ ('vcs/backends/git/repository.py', 'modified',
{'added': 46,
'deleted': 15,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('vcs/backends/hg.py', 'M',
+ ('vcs/backends/hg.py', 'modified',
{'added': 22,
'deleted': 3,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('vcs/tests/test_git.py', 'M',
+ ('vcs/tests/test_git.py', 'modified',
{'added': 5,
'deleted': 5,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
- ('vcs/tests/test_repository.py', 'M',
+ ('vcs/tests/test_repository.py', 'modified',
{'added': 174,
'deleted': 2,
'binary': False,
'ops': {MOD_FILENODE: 'modified file'}}),
],
'git_diff_modify_binary_file.diff': [
- ('file.name', 'M',
+ ('file.name', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -230,14 +230,14 @@ DIFF_FIXTURES = {
BIN_FILENODE: 'binary diff not shown'}})
],
'hg_diff_copy_file.diff': [
- ('file2', 'M',
+ ('file2', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
'ops': {COPIED_FILENODE: 'file copied from file1 to file2'}}),
],
'hg_diff_copy_and_modify_file.diff': [
- ('file3', 'M',
+ ('file3', 'modified',
{'added': 1,
'deleted': 0,
'binary': False,
@@ -245,7 +245,7 @@ DIFF_FIXTURES = {
MOD_FILENODE: 'modified file'}}),
],
'hg_diff_copy_and_chmod_file.diff': [
- ('file4', 'M',
+ ('file4', 'modified',
{'added': 0,
'deleted': 0,
'binary': True,
@@ -253,7 +253,7 @@ DIFF_FIXTURES = {
CHMOD_FILENODE: 'modified file chmod 100644 => 100755'}}),
],
'hg_diff_copy_chmod_and_edit_file.diff': [
- ('file5', 'M',
+ ('file5', 'modified',
{'added': 2,
'deleted': 1,
'binary': False,
@@ -262,7 +262,7 @@ DIFF_FIXTURES = {
MOD_FILENODE: 'modified file'}}),
],
'hg_diff_rename_space_cr.diff': [
- ('oh yes', 'R',
+ ('oh yes', 'renamed',
{'added': 3,
'deleted': 2,
'binary': False,