2

我只想显示添加了标签的提交之间的差异。或者最接近这个。换句话说,像这样:

tag  "5 ..."
@@ -1,1 +1,3 @@
+ dfd
+ dfgd

tag "4.."
@@ -1,1 +1,3 @@
+ dfd
+ dfgd

等等。我已经尝试过,但无法获得这种特定格式,也许有人可以帮助我。然后,一旦我有一个具有这种格式或尽可能接近的文本文件,我将执行以下操作:

with open('log_output_alex.txt', 'r') as f:
  read_data = f.read()
f.closed

tag_separation = read_data.split('tag: "')

这样做之后,我不知道如何读取数组 tag_separation 中每个字符串中的每一行?

一旦我能做到这一点,我就可以检查字符串中的行是否以某个字符(@、+、- 或标记)开头,并将不同的行存储在数据结构中以供以后操作。

在此先感谢您的帮助!

4

2 回答 2

1

您可能想要使用library GitPython这将为您提供对git存储库的更高级别的访问权限。

即使你决定不使用它,你也可以看看它是如何在那里完成的!

于 2012-12-06T11:33:00.943 回答
0

Git 无法在单个命令中为您提供该格式,因此您需要自己创建一下。为此,这里有一些提示:

  • 您可以使用获取标签列表git tag
  • 您可以使用以下方式获取提交 SHA1 以供参考(即标签)git rev-parse TAGNAME
  • git diff A..B例如,您可以使用 获取两个提交之间的差异git diff tag1..tag2

这样你也会得到每个标签已经分开的差异,所以你不需要先将它存储在一个文件中然后再次拆分它,你可以从它开始。

这样做之后,我不知道如何读取每个字符串中的每一行

您可以通过首先拆分字符串来遍历字符串的行,使用str.splitlines.

于 2012-12-06T11:41:54.743 回答