diff --git a/po.py b/po.py
index 67a4486056..8109c694e7 100644
--- a/po.py
+++ b/po.py
@@ -5,7 +5,7 @@ TRANSLATION_MAP = {
'Added' : u'添加了',
'Deleted' : u'删除了',
'Modified' : u'修改了',
- 'Renamed' : u'重命名了',
+ 'Renamed' : u'重命名或移动了',
'and' : u'以及另外',
'more files' : u'个文件',
'Reverted repo to status at' : u'同步目录内容还原到',
diff --git a/templates/repo_history.html b/templates/repo_history.html
index 79252ceab8..68d9d1a786 100644
--- a/templates/repo_history.html
+++ b/templates/repo_history.html
@@ -106,7 +106,7 @@
show(data['removed']);
}
if (data['renamed'].length > 0) {
- str_con += '
移动的文件
';
+ str_con += '重命名或移动的文件
';
show(data['renamed']);
}
if (data['modified'].length > 0) {
diff --git a/views.py b/views.py
index 344ec33dfa..d60682e19f 100644
--- a/views.py
+++ b/views.py
@@ -435,44 +435,22 @@ def repo_history_revert(request, repo_id):
return HttpResponseRedirect(reverse(repo_history, args=[repo_id]))
-def get_filename(start, ent):
- i = start + 1
- lenidx = start - 1
- while i <= len(ent):
- tmp = " ".join(ent[start:i])
- if len(tmp) == int(ent[lenidx]):
- return (tmp, i)
- i = i + 1
- return ("", 0)
-
-def add_to_status_list(lists, status_ent):
- if status_ent[1] == 'A':
- filename, index = get_filename(4, status_ent)
- lists['new'].append(filename)
- elif status_ent[1] == 'D':
- filename, index = get_filename(4, status_ent)
- lists['removed'].append(filename)
- elif status_ent[1] == 'R':
- filename1, index1 = get_filename(4, status_ent)
- filename2, index2 = get_filename(index1 + 1, status_ent)
- lists['renamed'].append(filename1 + u' 被移动到 ' + filename2)
- elif status_ent[1] == 'M':
- filename, index = get_filename(4, status_ent)
- lists['modified'].append(filename)
-
def get_diff(repo_id, arg1, arg2):
lists = {'new' : [], 'removed' : [], 'renamed' : [], 'modified' : []}
diff_result = seafserv_threaded_rpc.get_diff(repo_id, arg1, arg2)
- if diff_result == "":
- return lists;
+ if not diff_result:
+ return lists
- diff_result = diff_result[:len(diff_result)-1]
-
- for d in diff_result.split("\n"):
- tmp = d.split(" ")
- if tmp[0] == 'C':
- add_to_status_list(lists, tmp)
+ for d in diff_result:
+ if d.status == "add":
+ lists['new'].append(d.name)
+ elif d.status == "del":
+ lists['removed'].append(d.name)
+ elif d.status == "mov":
+ lists['renamed'].append(d.name + " ==> " + d.new_name)
+ elif d.status == "mod":
+ lists['modified'].append(d.name)
return lists