Support git_repository_message, git_repository_message_remove (#734)
Closes #646
This commit is contained in:
parent
4b2ac7c998
commit
07147a8ea8
|
@ -43,6 +43,14 @@ func TestMergeWithSelf(t *testing.T) {
|
||||||
mergeHeads[0] = mergeHead
|
mergeHeads[0] = mergeHead
|
||||||
err = repo.Merge(mergeHeads, nil, nil)
|
err = repo.Merge(mergeHeads, nil, nil)
|
||||||
checkFatal(t, err)
|
checkFatal(t, err)
|
||||||
|
|
||||||
|
mergeMessage, err := repo.Message()
|
||||||
|
checkFatal(t, err)
|
||||||
|
|
||||||
|
expectedMessage := "Merge branch 'master'\n"
|
||||||
|
if mergeMessage != expectedMessage {
|
||||||
|
t.Errorf("merge Message = %v, want %v", mergeMessage, expectedMessage)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMergeAnalysisWithSelf(t *testing.T) {
|
func TestMergeAnalysisWithSelf(t *testing.T) {
|
||||||
|
|
|
@ -688,3 +688,39 @@ func (r *Repository) ClearGitIgnoreRules() error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Message retrieves git's prepared message.
|
||||||
|
// Operations such as git revert/cherry-pick/merge with the -n option stop just
|
||||||
|
// short of creating a commit with the changes and save their prepared message
|
||||||
|
// in .git/MERGE_MSG so the next git-commit execution can present it to the
|
||||||
|
// user for them to amend if they wish.
|
||||||
|
//
|
||||||
|
// Use this function to get the contents of this file. Don't forget to remove
|
||||||
|
// the file after you create the commit.
|
||||||
|
func (r *Repository) Message() (string, error) {
|
||||||
|
buf := C.git_buf{}
|
||||||
|
defer C.git_buf_dispose(&buf)
|
||||||
|
|
||||||
|
runtime.LockOSThread()
|
||||||
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
|
cErr := C.git_repository_message(&buf, r.ptr)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
if cErr < 0 {
|
||||||
|
return "", MakeGitError(cErr)
|
||||||
|
}
|
||||||
|
return C.GoString(buf.ptr), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveMessage removes git's prepared message.
|
||||||
|
func (r *Repository) RemoveMessage() error {
|
||||||
|
runtime.LockOSThread()
|
||||||
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
|
cErr := C.git_repository_message_remove(r.ptr)
|
||||||
|
runtime.KeepAlive(r)
|
||||||
|
if cErr < 0 {
|
||||||
|
return MakeGitError(cErr)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue