現在、pygit2 ライブラリを使用して、github リポジトリのコミット ツリーをトラバースできます。リポジトリ内の各ファイル変更のすべてのコミットを取得しています。これは、リポジトリ内の拡張子 .rtf を持つテキスト ファイルの変更を取得していることを意味します。コード変更のみに関連するコミットを除外するにはどうすればよいですか? テキスト ドキュメントに関連する変更は必要ありません。
ヘルプやポインタに感謝します。ありがとう。
last = repo[repo.head.target]
t0=last
f = open(outputFile,'w')
print t0.hex
for commit in repo.walk(last.id):
if t0.hex == commit.hex:
continue
print commit.hex
out=repo.diff(t0,commit)
f.write(out.patch)
t0=commit;
出力の一部として、rtf ファイルと以下の違いを取得します。
diff --git a/archived-output/NEW/action-core[best].rtf b/archived-output/NEW/action-core[best].rtf
deleted file mode 100644
index 56cdec6..0000000
--- a/archived-output/NEW/action-core[best].rtf
+++ /dev/null
@@ -1,8935 +0,0 @@
-{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
-{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}
ツリーからコミットをフィルタリングするか、出力をフィルタリングする必要があります。ツリーをたどりながら対応するコミットを削除することで、rtf ファイルに関連する変更を削除できるかどうかを考えていました。