2015-02-03 2 views
2

Я пытаюсь напечатать объект «diff», как показано ниже. Я ожидаю выхода, похожего на git show, но я не получаю то же самое. Как мне это достичь? Благодарю.Как распечатать содержимое объекта pygit в python

import pygit2 
repo=pygit2.Repository('/home/repository') 

t0=repo.revparse_single('HEAD') 
t1=repo.revparse_single('HEAD^') 


>>> repo.diff(t0,t1) 
<_pygit2.Diff object at 0x7fc46eeb0470> 
>>> out=repo.diff(t0,t1) 
>>> print out 
<_pygit2.Diff object at 0x7fc46eeb0410> 
>>> 

ответ

3

Давайте проверить документацию для pygit2:

$ pydoc pygit2.Diff 
| ---------------------------------- 
| Data descriptors defined here: 
| 
| patch 
|  Patch diff string. 

Итак, давайте попробуем, что:

>>> out=repo.diff(t0,t1) 
>>> print out 
<_pygit2.Diff object at 0x7fc46eeb0410> 
>>> print out.patch 
diff --git a/file1 b/file1 
index 10952f3..66ed2b8 100644 
--- a/file1 
+++ b/file1 
@@ -1,5 +1,6 @@ 
DIR_COLORS 
DIR_COLORS.256color 
+DIR_COLORS.lightbgcolor 
GREP_COLORS 
X11 
adjtime 

Кажется, работает.

+0

в порядке. поэтому патч и diff идут вместе. Спасибо @larsks – Zack

Смежные вопросы