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

ライブラリを使用するGitPythongitと、リポジトリへのより高いレベルのアクセスが可能になります。

そして、それを使用しないことに決めたとしても、おそらくそこでどのように行われるかを見ることができます!

于 2012-12-06T11:33:00.943 に答える
0

Git は単一のコマンドでその形式を提供することはできないため、自分で少し作成する必要があります。そのためのヒントを次に示します。

  • を使用してタグのリストを取得できますgit tag
  • を使用して、参照 (つまりタグ) のコミット SHA1 を取得できます。git rev-parse TAGNAME
  • git diff A..Bたとえば、 を使用して 2 つのコミット間の差分を取得できます。git diff tag1..tag2

そうすれば、タグごとに既に分離された差分が得られるため、最初にファイルに保存してから再度分割する必要がなく、最初から始めることができます。

これを行った後、各文字列の各行を読み取る方法がわかりません

を使用して、最初に文字列を分割することにより、文字列の行を反復処理できますstr.splitlines

于 2012-12-06T11:41:54.743 に答える