diff options
| author | Carlos Martín Nieto <[email protected]> | 2014-05-31 16:47:35 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2014-05-31 16:47:35 +0200 |
| commit | 7906bdbdceddff34827ba13640b6d03bc813139f (patch) | |
| tree | efab136c622306aff0f2a771beb8f28671d9fa76 | |
| parent | 8a73c75f1a68f2855d03e6d2ce45c95c414aa71a (diff) | |
Merge: merge analysis now returns the user's preference
| -rw-r--r-- | merge.go | 17 | ||||
| -rw-r--r-- | merge_test.go | 2 |
2 files changed, 14 insertions, 5 deletions
@@ -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 } diff --git a/merge_test.go b/merge_test.go index 3f9dc33..cc7af81 100644 --- a/merge_test.go +++ b/merge_test.go @@ -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 { |
