我写了一个小python程序作为个人实用程序来帮助我进行一些重构.它类似于unix替换,除了它支持正则表达式并对目录中的所有文件和(可选)所有子目录进行操作.
问题是我没有替换到位.我打开文件,将内容传递到内存,然后覆盖文件,如下所示:
file = open('path/to/file','r') in_string = file.read() file.close() # ... #Processing logic # ... file = open('path/to/file','w') file.write(out_string) file.close()
除了显而易见的性能/内存问题,这是合法的,但对我的使用并不是一个问题,这个方法还有另一个缺点.SVN吓坏了.事后我可以做一些复制和粘贴解决方法来修复svn在提交时抛出的校验和错误,但它使得实用程序毫无意义.
有一个更好的方法吗?我猜测如果我正在编辑文件就不存在任何问题.我该怎么做?
我怀疑问题是你实际上编辑了错误的文件.独立的-当你只是修改您的跟踪文件的Subversion不应该提高对校验和任何错误怎么要修改它们.
也许你不小心编辑了.svn
目录中的文件?在.svn/text-base
,Subversion使用相同的名称和扩展名存储您的文件的副本,请.svn-base
确保您没有编辑那些!