Merge: merge analysis now returns the user's preference
This commit is contained in:
parent
8a73c75f1a
commit
7906bdbdce
17
merge.go
17
merge.go
|
@ -156,7 +156,15 @@ const (
|
|||
MergeAnalysisUnborn = C.GIT_MERGE_ANALYSIS_UNBORN
|
||||
)
|
||||
|
||||
func (r *Repository) MergeAnalysis(theirHeads []*MergeHead) (MergeAnalysis, error) {
|
||||
type MergePreference int
|
||||
|
||||
const (
|
||||
MergePreferenceNone MergePreference = C.GIT_MERGE_PREFERENCE_NONE
|
||||
MergePreferenceNoFastForward = C.GIT_MERGE_PREFERENCE_NO_FASTFORWARD
|
||||
MergePreferenceFastForwardOnly = C.GIT_MERGE_PREFERENCE_FASTFORWARD_ONLY
|
||||
)
|
||||
|
||||
func (r *Repository) MergeAnalysis(theirHeads []*MergeHead) (MergeAnalysis, MergePreference, error) {
|
||||
runtime.LockOSThread()
|
||||
defer runtime.UnlockOSThread()
|
||||
|
||||
|
@ -166,11 +174,12 @@ func (r *Repository) MergeAnalysis(theirHeads []*MergeHead) (MergeAnalysis, erro
|
|||
}
|
||||
ptr := unsafe.Pointer(&gmerge_head_array[0])
|
||||
var analysis C.git_merge_analysis_t
|
||||
err := C.git_merge_analysis(&analysis, r.ptr, (**C.git_merge_head)(ptr), C.size_t(len(theirHeads)))
|
||||
var preference C.git_merge_preference_t
|
||||
err := C.git_merge_analysis(&analysis, &preference, r.ptr, (**C.git_merge_head)(ptr), C.size_t(len(theirHeads)))
|
||||
if err < 0 {
|
||||
return MergeAnalysisNone, MakeGitError(err)
|
||||
return MergeAnalysisNone, MergePreferenceNone, MakeGitError(err)
|
||||
}
|
||||
return MergeAnalysis(analysis), nil
|
||||
return MergeAnalysis(analysis), MergePreference(preference), nil
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ func TestMergeAnalysisWithSelf(t *testing.T) {
|
|||
|
||||
mergeHeads := make([]*MergeHead, 1)
|
||||
mergeHeads[0] = mergeHead
|
||||
a, err := repo.MergeAnalysis(mergeHeads)
|
||||
a, _, err := repo.MergeAnalysis(mergeHeads)
|
||||
checkFatal(t, err)
|
||||
|
||||
if a != MergeAnalysisUpToDate {
|
||||
|
|
Loading…
Reference in New Issue