1

我正在编写将源代码从 MKS Source Integrity 7.3 导入 Git 的脚本。脚本通过管道传输到 git fast-import 并且所有内容都可以正常导入,但是Unsupported command exception当我读取.doc, .docx, .xls,.msg文件时出现错误。我应该如何阅读这些文件?或者有没有办法告诉 git fast-import 只导入这些类型的文件,而不读取它们。谢谢。

读取二进制文件的代码:

print("%s %s inline %s" % ('M', '644', filename), file=stdout)
line = open(filename, 'rb').read()
print('data %d\n%s' % (len(line), line), file=stdout)

快速导入崩溃报告:

fatal: Unsupported command: S\xffU\x0fV\x1fW/\x7fX?5\xbfZ\x0f[\x1f8\...
Most Recent Commands Before Crash
---------------------------------
M 644 inline Approval/RE_bno.msg
  data 43008
* S\xffU\x0fV\x1fW/\x7fX?5\xbfZ\x0f[\x1f8\...
4

1 回答 1

0

毕竟我通过将原始二进制数据写入stdout如下来解决它:

import sys

line = open(filename, 'rb').read()
print('data %d' % len(line), file=stdout)
sys.stdout.buffer.write(line)
于 2018-03-13T08:48:03.670 回答