2

比如我有一个文件t.json,内容是:

{
  "a": "abcdefg"
}

文件 t.json 被推送到 master 分支。然后我在文件中添加了一些内容,所以文件现在看起来像这样:

{
  "a": "abcdefg",
  "b": "mkjuujj"
}

现在我可以使用 PyGithub 比较两个提交。代码是这样的:

last_head = repo.get_branch(WORKING_BRANCH)
fc = repo.get_file_contents("/t.json", ref=WORKING_BRANCH)
file = 't.json'
commit_message = "create a new branch with changes"
input_file = open(file, 'rb')
data = input_file.read()


result = repo.update_file("/t.json",
                          commit_message,
                          data,#need solve this problem, how to use a file pass in
                          fc.sha, branch=WORKING_BRANCH)

diff_url = repo.compare(last_head.commit.sha,
                        result['commit'].sha)

print diff_url.diff_url

这就是我得到的:

diff --git a/t.json b/t.json
index ef03bf5..b775e51 100644
--- a/t.json
+++ b/t.json
@@ -1,3 +1,4 @@
 {
-  "a": "abcdefg"
+  "a": "abcdefg",
+  "b": "mkjuujj"
 }

我想要的是

 {
    "a": "abcdefg"
 +  "b": "mkjuujj"
 }

我应该怎么做才能通过将整个文件传递到 repo.update_file() 来比较差异。非常感谢。真的很感激。

4

0 回答 0