我想弄清楚如何做到以下几点
svn diff –r REVNO:HEAD FilePath
使用svn
python包装器。我尝试过以下几种方法:
import svn.local
l = svn.local.LocalClient(FilePath)
ModifiedFiles = l.diff_summary(6382,6383) #List of dicts containing modified files and some attributes
Difference = l.diff(6382, 6383, FilePath) #throws error
我得到了错误:
索引回溯(最近一次调用):文件“D:/TEMP/SVN/
/GetLines.py”,第6行,in Difference = l.diff(6382,6383)文件索引行447,用于筛选器中的索引的diff (None,diff_result.decode(‘utf8’).split(‘non_empty_diff:')):UnicodeDecodeError:'utf-8’编解码器无法解码位置396852中的字节0xda :无效的继续字节
不过,在subversion命令行中,它工作得很好。
如何使用python包装器获取特定文件的更改?
发布于 2018-07-01 05:15:21
这似乎是pysvn
中的一个错误。函数diff
默默地假定文件的utf8
-encoding,但是如果文件有不同的编码(例如,ISO 8859-1
,也称为Latin-1
),则ASCII码> 127 = 0x7f
(例如,Latin-1
中的0xda
= 'Ö‘)的字符被错误地解释为多字节字符,在许多情况下,这将导致不存在的字节组合,从而导致解码错误。
我自己和filed a bug刚才都遇到过这个错误。
https://stackoverflow.com/questions/48885265
复制相似问题