| line |
true |
false |
branch |
|
92
|
0 |
19 |
if (length < 2) { |
|
97
|
0 |
19 |
if (git_vector_init(&list, length - 1, NULL) < 0) |
|
100
|
0 |
19 |
if (git_revwalk_new(&walk, repo) < 0) |
|
103
|
19 |
19 |
for (i = 1; i < length; i++) { |
|
105
|
0 |
19 |
if (commit == NULL) |
|
112
|
0 |
19 |
if (commit == NULL) |
|
115
|
0 |
19 |
if (git_merge__bases_many(&result, walk, commit, &list) < 0) |
|
118
|
0 |
19 |
if (!result) { |
|
142
|
13 |
0 |
assert(out && repo && input_array); |
|
|
13 |
0 |
assert(out && repo && input_array); |
|
|
0 |
13 |
assert(out && repo && input_array); |
|
144
|
0 |
13 |
if ((error = merge_bases_many(&result, &walk, repo, length, input_array)) < 0) |
|
162
|
6 |
0 |
assert(out && repo && input_array); |
|
|
6 |
0 |
assert(out && repo && input_array); |
|
|
0 |
6 |
assert(out && repo && input_array); |
|
164
|
0 |
6 |
if ((error = merge_bases_many(&result, &walk, repo, length, input_array)) < 0) |
|
170
|
6 |
6 |
while (list) { |
|
171
|
6 |
0 |
git_oid *id = git_array_alloc(array); |
|
|
0 |
0 |
git_oid *id = git_array_alloc(array); |
|
172
|
0 |
6 |
if (id == NULL) { |
|
196
|
0 |
0 |
assert(out && repo && input_array); |
|
|
0 |
0 |
assert(out && repo && input_array); |
|
|
0 |
0 |
assert(out && repo && input_array); |
|
198
|
0 |
0 |
if (length < 2) { |
|
204
|
0 |
0 |
for (i = 1; i < length; i++) { |
|
206
|
0 |
0 |
if (error < 0) |
|
223
|
0 |
20 |
if (git_revwalk_new(&walk, repo) < 0) |
|
227
|
0 |
20 |
if (commit == NULL) |
|
237
|
0 |
20 |
if (commit == NULL) |
|
240
|
0 |
20 |
if (git_merge__bases_many(&result, walk, commit, &list) < 0) |
|
243
|
0 |
20 |
if (!result) { |
|
266
|
0 |
20 |
if ((error = merge_bases(&result, &walk, repo, one, two)) < 0) |
|
285
|
0 |
0 |
if ((error = merge_bases(&result, &walk, repo, one, two)) < 0) |
|
289
|
0 |
0 |
while (list) { |
|
290
|
0 |
0 |
git_oid *id = git_array_alloc(array); |
|
|
0 |
0 |
git_oid *id = git_array_alloc(array); |
|
291
|
0 |
0 |
if (id == NULL) |
|
314
|
164 |
39 |
for (i = 0; i < git_pqueue_size(list); i++) { |
|
316
|
155 |
9 |
if ((commit->flags & STALE) == 0) |
|
326
|
0 |
0 |
while (commit) { |
|
329
|
0 |
0 |
if (!(mark & commit->flags)) |
|
334
|
0 |
0 |
for (i = 1; i < commit->out_degree; i++) { |
|
336
|
0 |
0 |
if (git_commit_list_insert(p, plist) == NULL) |
|
340
|
0 |
0 |
commit = commit->out_degree ? commit->parents[0] : NULL; |
|
352
|
0 |
0 |
git_vector_foreach(commits, i, c) { |
|
353
|
0 |
0 |
if (git_commit_list_insert(c, &list) == NULL) |
|
357
|
0 |
0 |
while (list) |
|
358
|
0 |
0 |
if (clear_commit_marks_1(&list, git_commit_list_pop(&list), mark) < 0) |
|
366
|
0 |
0 |
if (git_commit_list_insert(commit, &list) == NULL) |
|
368
|
0 |
0 |
while (list) |
|
369
|
0 |
0 |
if (clear_commit_marks_1(&list, git_commit_list_pop(&list), mark) < 0) |
|
384
|
0 |
39 |
if (git_pqueue_init(&list, 0, twos->length * 2, git_commit_list_time_cmp) < 0) |
|
388
|
0 |
39 |
if (git_pqueue_insert(&list, one) < 0) |
|
391
|
39 |
39 |
git_vector_foreach(twos, i, two) { |
|
392
|
0 |
39 |
if (git_commit_list_parse(walk, two) < 0) |
|
397
|
0 |
39 |
if (git_pqueue_insert(&list, two) < 0) |
|
402
|
155 |
39 |
while (interesting(&list)) { |
|
406
|
0 |
155 |
if (commit == NULL) |
|
410
|
66 |
89 |
if (flags == (PARENT1 | PARENT2)) { |
|
411
|
39 |
27 |
if (!(commit->flags & RESULT)) { |
|
413
|
0 |
39 |
if (git_commit_list_insert(commit, &result) == NULL) |
|
420
|
97 |
155 |
for (i = 0; i < commit->out_degree; i++) { |
|
422
|
16 |
81 |
if ((p->flags & flags) == flags) |
|
425
|
0 |
81 |
if ((error = git_commit_list_parse(walk, p)) < 0) |
|
429
|
0 |
81 |
if (git_pqueue_insert(&list, p) < 0) |
|
448
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(redundant); |
|
450
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(filled_index); |
|
452
|
0 |
0 |
for (i = 0; i < commits->length; ++i) { |
|
453
|
0 |
0 |
if ((error = git_commit_list_parse(walk, commits->contents[i])) < 0) |
|
457
|
0 |
0 |
for (i = 0; i < commits->length; ++i) { |
|
461
|
0 |
0 |
if (redundant[i]) |
|
466
|
0 |
0 |
for (j = 0; j < commits->length; j++) { |
|
467
|
0 |
0 |
if (i == j || redundant[j]) |
|
|
0 |
0 |
if (i == j || redundant[j]) |
|
471
|
0 |
0 |
if ((error = git_vector_insert(&work, commits->contents[j])) < 0) |
|
476
|
0 |
0 |
if (error < 0) |
|
479
|
0 |
0 |
if (commit->flags & PARENT2) |
|
482
|
0 |
0 |
for (j = 0; j < work.length; j++) { |
|
484
|
0 |
0 |
if (w->flags & PARENT1) |
|
490
|
0 |
0 |
if ((error = clear_commit_marks(commit, ALL_FLAGS)) < 0 || |
|
|
0 |
0 |
if ((error = clear_commit_marks(commit, ALL_FLAGS)) < 0 || |
|
495
|
0 |
0 |
for (i = 0; i < commits->length; ++i) { |
|
496
|
0 |
0 |
if (redundant[i]) |
|
515
|
0 |
39 |
if (twos->length == 0) { |
|
521
|
39 |
39 |
git_vector_foreach(twos, i, two) { |
|
522
|
0 |
39 |
if (one == two) |
|
523
|
0 |
0 |
return git_commit_list_insert(one, out) ? 0 : -1; |
|
526
|
0 |
39 |
if (git_commit_list_parse(walk, one) < 0) |
|
530
|
0 |
39 |
if (error < 0) |
|
537
|
39 |
39 |
while (tmp) { |
|
539
|
39 |
0 |
if (!(c->flags & STALE)) |
|
540
|
0 |
39 |
if (git_commit_list_insert_by_date(c, &result) == NULL) |
|
548
|
39 |
0 |
if (result && result->next) { |
|
|
0 |
39 |
if (result && result->next) { |
|
551
|
0 |
0 |
while (result) |
|
554
|
0 |
0 |
if ((error = clear_commit_marks(one, ALL_FLAGS)) < 0 || |
|
|
0 |
0 |
if ((error = clear_commit_marks(one, ALL_FLAGS)) < 0 || |
|
555
|
0 |
0 |
(error = clear_commit_marks_many(twos, ALL_FLAGS)) < 0 || |
|
561
|
0 |
0 |
git_vector_foreach(&redundant, i, two) { |
|
562
|
0 |
0 |
if (two != NULL) |
|
584
|
0 |
0 |
assert(repo && cb); |
|
|
0 |
0 |
assert(repo && cb); |
|
586
|
0 |
0 |
if ((error = git_buf_joinpath(&merge_head_path, repo->gitdir, |
|
590
|
0 |
0 |
if ((error = git_futils_readbuffer(&merge_head_file, |
|
596
|
0 |
0 |
while ((line = git__strsep(&buffer, "\n")) != NULL) { |
|
597
|
0 |
0 |
if (strlen(line) != GIT_OID_HEXSZ) { |
|
603
|
0 |
0 |
if ((error = git_oid_fromstr(&oid, line)) < 0) |
|
606
|
0 |
0 |
if ((error = cb(&oid, payload)) != 0) { |
|
614
|
0 |
0 |
if (*buffer) { |
|
631
|
1 |
88 |
if (a->path == NULL) |
|
634
|
88 |
0 |
if ((value = a->mode - b->mode) == 0 && |
|
|
64 |
24 |
if ((value = a->mode - b->mode) == 0 && |
|
653
|
22 |
0 |
assert(resolved && diff_list && conflict); |
|
|
22 |
0 |
assert(resolved && diff_list && conflict); |
|
|
0 |
22 |
assert(resolved && diff_list && conflict); |
|
657
|
22 |
0 |
if (conflict->type == GIT_MERGE_DIFF_DIRECTORY_FILE || |
|
|
0 |
22 |
if (conflict->type == GIT_MERGE_DIFF_DIRECTORY_FILE || |
|
661
|
22 |
0 |
if (conflict->our_status == GIT_DELTA_RENAMED || |
|
|
0 |
22 |
if (conflict->our_status == GIT_DELTA_RENAMED || |
|
670
|
8 |
14 |
ours_theirs_differ = ours_changed && theirs_changed && |
|
697
|
8 |
14 |
if (ours_changed && !ours_empty && !ours_theirs_differ) |
|
|
7 |
1 |
if (ours_changed && !ours_empty && !ours_theirs_differ) |
|
|
1 |
6 |
if (ours_changed && !ours_empty && !ours_theirs_differ) |
|
700
|
7 |
14 |
else if (ours_changed && ours_empty && theirs_empty) |
|
|
1 |
6 |
else if (ours_changed && ours_empty && theirs_empty) |
|
|
0 |
1 |
else if (ours_changed && ours_empty && theirs_empty) |
|
703
|
4 |
17 |
else if (ours_empty && !theirs_changed) |
|
|
0 |
4 |
else if (ours_empty && !theirs_changed) |
|
706
|
14 |
7 |
else if (!ours_changed && theirs_empty) |
|
|
0 |
14 |
else if (!ours_changed && theirs_empty) |
|
709
|
7 |
14 |
else if (ours_changed && !theirs_changed) |
|
|
0 |
7 |
else if (ours_changed && !theirs_changed) |
|
712
|
14 |
7 |
else if (!ours_changed && theirs_changed) |
|
|
14 |
0 |
else if (!ours_changed && theirs_changed) |
|
717
|
15 |
7 |
if (result != NULL && |
|
|
15 |
0 |
if (result != NULL && |
|
718
|
15 |
0 |
GIT_MERGE_INDEX_ENTRY_EXISTS(*result) && |
|
736
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
0 |
7 |
assert(resolved && diff_list && conflict); |
|
740
|
7 |
0 |
if (conflict->type == GIT_MERGE_DIFF_DIRECTORY_FILE || |
|
|
0 |
7 |
if (conflict->type == GIT_MERGE_DIFF_DIRECTORY_FILE || |
|
751
|
7 |
0 |
if (ours_changed && ours_empty && theirs_empty) |
|
|
1 |
6 |
if (ours_changed && ours_empty && theirs_empty) |
|
|
0 |
1 |
if (ours_changed && ours_empty && theirs_empty) |
|
754
|
1 |
6 |
else if (ours_empty && !theirs_changed) |
|
|
0 |
1 |
else if (ours_empty && !theirs_changed) |
|
757
|
0 |
7 |
else if (!ours_changed && theirs_empty) |
|
|
0 |
0 |
else if (!ours_changed && theirs_empty) |
|
760
|
0 |
7 |
if (*resolved) |
|
776
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
0 |
7 |
assert(resolved && diff_list && conflict); |
|
780
|
6 |
1 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) || |
|
|
0 |
6 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) || |
|
787
|
6 |
0 |
if (!ours_renamed && !theirs_renamed) |
|
|
6 |
0 |
if (!ours_renamed && !theirs_renamed) |
|
791
|
0 |
0 |
if (conflict->type == GIT_MERGE_DIFF_BOTH_RENAMED_2_TO_1 || |
|
|
0 |
0 |
if (conflict->type == GIT_MERGE_DIFF_BOTH_RENAMED_2_TO_1 || |
|
792
|
0 |
0 |
conflict->type == GIT_MERGE_DIFF_BOTH_RENAMED_1_TO_2 || |
|
800
|
0 |
0 |
if (ours_changed && theirs_changed && |
|
804
|
0 |
0 |
if ((merged = git_pool_malloc(&diff_list->pool, sizeof(git_index_entry))) == NULL) |
|
807
|
0 |
0 |
if (ours_changed) |
|
812
|
0 |
0 |
if (ours_renamed) |
|
828
|
6 |
1 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) || |
|
|
0 |
6 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) || |
|
833
|
0 |
6 |
if (conflict->type == GIT_MERGE_DIFF_DIRECTORY_FILE) |
|
837
|
6 |
0 |
if (S_ISGITLINK(conflict->ancestor_entry.mode) || |
|
|
6 |
0 |
if (S_ISGITLINK(conflict->ancestor_entry.mode) || |
|
838
|
0 |
6 |
S_ISGITLINK(conflict->our_entry.mode) || |
|
843
|
6 |
0 |
if ((S_ISLNK(conflict->ancestor_entry.mode) ^ |
|
844
|
0 |
6 |
S_ISLNK(conflict->our_entry.mode)) || |
|
850
|
6 |
0 |
if (conflict->type == GIT_MERGE_DIFF_BOTH_RENAMED_2_TO_1 || |
|
|
0 |
6 |
if (conflict->type == GIT_MERGE_DIFF_BOTH_RENAMED_2_TO_1 || |
|
854
|
0 |
6 |
if ((conflict->our_status & GIT_DELTA_RENAMED) == GIT_DELTA_RENAMED && |
|
|
0 |
0 |
if ((conflict->our_status & GIT_DELTA_RENAMED) == GIT_DELTA_RENAMED && |
|
855
|
0 |
0 |
(conflict->their_status & GIT_DELTA_RENAMED) == GIT_DELTA_RENAMED && |
|
879
|
2 |
4 |
if ((error = driver->apply(driver, &path, &mode, &buf, name, src)) < 0 || |
|
|
2 |
0 |
if ((error = driver->apply(driver, &path, &mode, &buf, name, src)) < 0 || |
|
880
|
2 |
0 |
(error = git_repository_odb(&odb, src->repo)) < 0 || |
|
885
|
0 |
2 |
GIT_ERROR_CHECK_ALLOC(result); |
|
892
|
0 |
2 |
GIT_ERROR_CHECK_ALLOC(result->path); |
|
920
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
7 |
0 |
assert(resolved && diff_list && conflict); |
|
|
0 |
7 |
assert(resolved && diff_list && conflict); |
|
924
|
1 |
6 |
if (!merge_conflict_can_resolve_contents(conflict)) |
|
931
|
6 |
0 |
&conflict->ancestor_entry : NULL; |
|
933
|
6 |
0 |
&conflict->our_entry : NULL; |
|
935
|
6 |
0 |
&conflict->their_entry : NULL; |
|
937
|
2 |
4 |
if (file_opts->favor != GIT_MERGE_FILE_FAVOR_NORMAL) { |
|
949
|
0 |
4 |
if ((error = git_merge_driver_for_source(&name, &driver, &source)) < 0) |
|
952
|
0 |
4 |
if (driver == NULL) |
|
956
|
6 |
0 |
if (driver) { |
|
960
|
0 |
6 |
if (error == GIT_PASSTHROUGH) |
|
964
|
0 |
6 |
if (fallback) { |
|
969
|
4 |
2 |
if (error < 0) { |
|
970
|
4 |
0 |
if (error == GIT_EMERGECONFLICT) |
|
1000
|
0 |
22 |
if ((error = merge_conflict_resolve_trivial( |
|
1004
|
7 |
15 |
if (!resolved && (error = merge_conflict_resolve_one_removed( |
|
|
0 |
7 |
if (!resolved && (error = merge_conflict_resolve_one_removed( |
|
1008
|
7 |
15 |
if (!resolved && (error = merge_conflict_resolve_one_renamed( |
|
|
0 |
7 |
if (!resolved && (error = merge_conflict_resolve_one_renamed( |
|
1012
|
7 |
15 |
if (!resolved && (error = merge_conflict_resolve_contents( |
|
|
0 |
7 |
if (!resolved && (error = merge_conflict_resolve_contents( |
|
1040
|
0 |
0 |
if (*out || *out == &cache_invalid_marker) |
|
|
0 |
0 |
if (*out || *out == &cache_invalid_marker) |
|
1045
|
0 |
0 |
if ((error = git_blob_lookup(&blob, repo, &entry->id)) < 0) |
|
1057
|
0 |
0 |
if (!git__is_sizet(blobsize)) |
|
1063
|
0 |
0 |
if (error == GIT_EBUFS) |
|
1083
|
0 |
0 |
if (!GIT_MODE_ISBLOB(a->mode) || !GIT_MODE_ISBLOB(b->mode)) |
|
|
0 |
0 |
if (!GIT_MODE_ISBLOB(a->mode) || !GIT_MODE_ISBLOB(b->mode)) |
|
1087
|
0 |
0 |
if ((error = index_entry_similarity_calc(&cache[a_idx], repo, a, opts)) < 0 || |
|
|
0 |
0 |
if ((error = index_entry_similarity_calc(&cache[a_idx], repo, a, opts)) < 0 || |
|
1092
|
0 |
0 |
if (cache[a_idx] == &cache_invalid_marker || cache[b_idx] == &cache_invalid_marker) |
|
|
0 |
0 |
if (cache[a_idx] == &cache_invalid_marker || cache[b_idx] == &cache_invalid_marker) |
|
1096
|
0 |
0 |
if (opts->metric->similarity(&score, cache[a_idx], cache[b_idx], opts->metric->payload) < 0) |
|
1100
|
0 |
0 |
if (score < 0) |
|
1102
|
0 |
0 |
else if (score > 100) |
|
1120
|
0 |
44 |
if (!map) |
|
1123
|
1 |
44 |
git_oidmap_foreach_value(map, queue, { |
|
1134
|
1 |
0 |
if ((queue = git_oidmap_get(map, id)) == NULL) { |
|
1136
|
0 |
1 |
GIT_ERROR_CHECK_ALLOC(queue); |
|
1142
|
0 |
1 |
if (git_oidmap_set(map, id, queue) < 0) |
|
1145
|
0 |
0 |
array_entry = git_array_alloc(queue->arr); |
|
|
0 |
0 |
array_entry = git_array_alloc(queue->arr); |
|
1146
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(array_entry); |
|
1158
|
3 |
0 |
if ((queue = git_oidmap_get(map, id)) == NULL) |
|
1161
|
0 |
0 |
if (queue->next_pos == 0) { |
|
1164
|
0 |
0 |
array_entry = git_array_get(queue->arr, queue->next_pos - 1); |
|
1165
|
0 |
0 |
if (array_entry == NULL) |
|
1192
|
22 |
22 |
git_vector_foreach(&diff_list->conflicts, i, conflict_src) { |
|
1195
|
3 |
19 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->ancestor_entry)) |
|
1198
|
1 |
18 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->our_entry)) { |
|
1200
|
0 |
1 |
if (error < 0) |
|
1204
|
0 |
19 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->their_entry)) { |
|
1206
|
0 |
0 |
if (error < 0) |
|
1211
|
22 |
22 |
git_vector_foreach(&diff_list->conflicts, j, conflict_tgt) { |
|
1212
|
19 |
3 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->ancestor_entry)) |
|
1215
|
0 |
3 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->our_entry)) { |
|
1216
|
0 |
0 |
if (deletes_by_oid_dequeue(&i, ours_deletes_by_oid, &conflict_tgt->our_entry.id) == 0) { |
|
1225
|
3 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->their_entry)) { |
|
1226
|
0 |
3 |
if (deletes_by_oid_dequeue(&i, theirs_deletes_by_oid, &conflict_tgt->their_entry.id) == 0) { |
|
1255
|
22 |
22 |
git_vector_foreach(&diff_list->conflicts, i, conflict_src) { |
|
1258
|
19 |
3 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->ancestor_entry) || |
|
|
18 |
1 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->ancestor_entry) || |
|
1259
|
18 |
0 |
(GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_src->our_entry) && |
|
1263
|
1 |
1 |
git_vector_foreach(&diff_list->conflicts, j, conflict_tgt) { |
|
1267
|
1 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->ancestor_entry)) |
|
1270
|
0 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->our_entry) && |
|
|
0 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->our_entry) && |
|
1274
|
0 |
0 |
if (similarity == GIT_EBUFS) |
|
1276
|
0 |
0 |
else if (similarity < 0) |
|
1279
|
0 |
0 |
if (similarity > similarity_ours[i].similarity && |
|
|
0 |
0 |
if (similarity > similarity_ours[i].similarity && |
|
1282
|
0 |
0 |
if (similarity_ours[i].similarity > 0) |
|
1285
|
0 |
0 |
if (similarity_ours[j].similarity > 0) |
|
1296
|
0 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->their_entry) && |
|
|
0 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict_tgt->their_entry) && |
|
1300
|
0 |
0 |
if (similarity > similarity_theirs[i].similarity && |
|
|
0 |
0 |
if (similarity > similarity_theirs[i].similarity && |
|
1303
|
0 |
0 |
if (similarity_theirs[i].similarity > 0) |
|
1306
|
0 |
0 |
if (similarity_theirs[j].similarity > 0) |
|
1354
|
0 |
22 |
if (ours_renamed) |
|
1357
|
0 |
22 |
if (theirs_renamed) |
|
1361
|
0 |
22 |
if (ours_renamed && theirs_renamed) { |
|
|
0 |
0 |
if (ours_renamed && theirs_renamed) { |
|
1363
|
0 |
0 |
if (ours_source_idx == theirs_source_idx) |
|
1369
|
0 |
22 |
} else if (ours_renamed) { |
|
1371
|
0 |
0 |
if (similarity_theirs[ours_source_idx].similarity >= opts->rename_threshold) |
|
1374
|
0 |
0 |
else if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->their_entry)) { |
|
1379
|
0 |
0 |
else if (!GIT_MERGE_INDEX_ENTRY_EXISTS(ours_source->their_entry)) |
|
1382
|
0 |
0 |
else if (ours_source->type == GIT_MERGE_DIFF_MODIFIED_DELETED) |
|
1384
|
0 |
22 |
} else if (theirs_renamed) { |
|
1386
|
0 |
0 |
if (similarity_ours[theirs_source_idx].similarity >= opts->rename_threshold) |
|
1389
|
0 |
0 |
else if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->our_entry)) { |
|
1394
|
0 |
0 |
else if (!GIT_MERGE_INDEX_ENTRY_EXISTS(theirs_source->our_entry)) |
|
1397
|
0 |
0 |
else if (theirs_source->type == GIT_MERGE_DIFF_MODIFIED_DELETED) |
|
1427
|
22 |
22 |
for (i = 0; i < diff_list->conflicts.length; i++) { |
|
1433
|
18 |
4 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->our_entry) && |
|
|
0 |
18 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->our_entry) && |
|
1452
|
22 |
0 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->their_entry) && |
|
|
0 |
22 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(target->their_entry) && |
|
1483
|
3 |
0 |
return (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->ancestor_entry) && |
|
1484
|
3 |
19 |
!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) && |
|
|
0 |
3 |
!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry) && |
|
1499
|
22 |
22 |
git_vector_foreach(&diff_list->conflicts, i, entry) { |
|
1500
|
19 |
3 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(entry->ancestor_entry) && |
|
|
18 |
1 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(entry->ancestor_entry) && |
|
1501
|
0 |
18 |
(!GIT_MERGE_INDEX_ENTRY_EXISTS(entry->our_entry) || |
|
1504
|
3 |
18 |
else if (!GIT_MERGE_INDEX_ENTRY_EXISTS(entry->ancestor_entry)) |
|
1520
|
22 |
0 |
assert(diff_list && opts); |
|
|
0 |
22 |
assert(diff_list && opts); |
|
1522
|
0 |
22 |
if ((opts->flags & GIT_MERGE_FIND_RENAMES) == 0) |
|
1527
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC(similarity_ours); |
|
1531
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC(similarity_theirs); |
|
1536
|
0 |
22 |
if ((error = merge_diff_mark_similarity_exact(diff_list, similarity_ours, similarity_theirs)) < 0) |
|
1539
|
22 |
0 |
if (opts->rename_threshold < 100 && diff_list->conflicts.length <= opts->target_limit) { |
|
|
22 |
0 |
if (opts->rename_threshold < 100 && diff_list->conflicts.length <= opts->target_limit) { |
|
1540
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&cache_size, diff_list->conflicts.length, 3); |
|
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&cache_size, diff_list->conflicts.length, 3); |
|
1542
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC(cache); |
|
1546
|
22 |
0 |
if (src_count > opts->target_limit || tgt_count > opts->target_limit) { |
|
|
22 |
0 |
if (src_count > opts->target_limit || tgt_count > opts->target_limit) { |
|
1549
|
0 |
22 |
if ((error = merge_diff_mark_similarity_inexact( |
|
1564
|
22 |
0 |
if (cache != NULL) { |
|
1565
|
66 |
22 |
for (i = 0; i < cache_size; ++i) { |
|
1566
|
0 |
66 |
if (cache[i] != NULL && cache[i] != &cache_invalid_marker) |
|
|
0 |
0 |
if (cache[i] != NULL && cache[i] != &cache_invalid_marker) |
|
1584
|
19 |
3 |
if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->ancestor_entry)) |
|
1586
|
0 |
3 |
else if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->our_entry)) |
|
1588
|
3 |
0 |
else if (GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->their_entry)) |
|
1597
|
0 |
0 |
if (conflict->our_status == GIT_DELTA_ADDED || |
|
|
0 |
0 |
if (conflict->our_status == GIT_DELTA_ADDED || |
|
1598
|
0 |
0 |
conflict->our_status == GIT_DELTA_MODIFIED || |
|
1599
|
0 |
0 |
conflict->their_status == GIT_DELTA_ADDED || |
|
1611
|
0 |
0 |
if (child_len < parent_len || |
|
|
0 |
0 |
if (child_len < parent_len || |
|
1628
|
0 |
22 |
else if(df_data->df_path) |
|
1631
|
0 |
0 |
merge_diff_any_side_added_or_modified(df_data->prev_conflict) && |
|
1632
|
0 |
0 |
merge_diff_any_side_added_or_modified(conflict) && |
|
1651
|
0 |
22 |
if (conflict->our_status == GIT_DELTA_ADDED && |
|
|
0 |
0 |
if (conflict->our_status == GIT_DELTA_ADDED && |
|
1654
|
7 |
15 |
else if (conflict->our_status == GIT_DELTA_MODIFIED && |
|
|
7 |
0 |
else if (conflict->our_status == GIT_DELTA_MODIFIED && |
|
1657
|
1 |
14 |
else if (conflict->our_status == GIT_DELTA_DELETED && |
|
|
0 |
1 |
else if (conflict->our_status == GIT_DELTA_DELETED && |
|
1660
|
0 |
15 |
else if (conflict->our_status == GIT_DELTA_MODIFIED && |
|
|
0 |
0 |
else if (conflict->our_status == GIT_DELTA_MODIFIED && |
|
1663
|
1 |
14 |
else if (conflict->our_status == GIT_DELTA_DELETED && |
|
|
1 |
0 |
else if (conflict->our_status == GIT_DELTA_DELETED && |
|
1677
|
85 |
7 |
if (src != NULL) { |
|
1679
|
0 |
85 |
if ((out->path = git_pool_strdup(pool, src->path)) == NULL) |
|
1690
|
6 |
38 |
if (ancestor == NULL && other == NULL) |
|
|
3 |
3 |
if (ancestor == NULL && other == NULL) |
|
1692
|
3 |
38 |
else if (ancestor == NULL && other != NULL) |
|
|
3 |
0 |
else if (ancestor == NULL && other != NULL) |
|
1694
|
38 |
0 |
else if (ancestor != NULL && other == NULL) |
|
|
1 |
37 |
else if (ancestor != NULL && other == NULL) |
|
1696
|
0 |
37 |
else if (S_ISDIR(ancestor->mode) ^ S_ISDIR(other->mode)) |
|
1698
|
0 |
37 |
else if(S_ISLNK(ancestor->mode) ^ S_ISLNK(other->mode)) |
|
1700
|
11 |
26 |
else if (git_oid__cmp(&ancestor->id, &other->id) || |
|
|
0 |
11 |
else if (git_oid__cmp(&ancestor->id, &other->id) || |
|
1714
|
0 |
22 |
if ((conflict = git_pool_mallocz(pool, sizeof(git_merge_diff))) == NULL) |
|
1718
|
0 |
22 |
index_entry_dup_pool(&conflict->our_entry, pool, entries[TREE_IDX_OURS]) < 0 || |
|
1740
|
22 |
0 |
merge_diff_detect_type(conflict) < 0 || |
|
1741
|
0 |
22 |
merge_diff_detect_df_conflict(merge_df_data, conflict) < 0 || |
|
1756
|
0 |
26 |
GIT_ERROR_CHECK_ALLOC(entry); |
|
1758
|
26 |
0 |
if ((error = index_entry_dup_pool(entry, &diff_list->pool, tree_items[0])) >= 0) |
|
1775
|
45 |
3 |
if (!entries[0] || !entries[1] || !entries[2]) { |
|
|
44 |
1 |
if (!entries[0] || !entries[1] || !entries[2]) { |
|
|
0 |
44 |
if (!entries[0] || !entries[1] || !entries[2]) { |
|
1778
|
81 |
26 |
for (i = 1; i < 3; i++) { |
|
1779
|
18 |
63 |
if (index_entry_cmp(entries[0], entries[i]) != 0) { |
|
1788
|
22 |
26 |
find_data->diff_list, &find_data->df_data, entries) : |
|
1808
|
0 |
22 |
if (diff_list == NULL) |
|
1816
|
0 |
22 |
git_vector_init(&diff_list->conflicts, 0, NULL) < 0 || |
|
1827
|
0 |
22 |
if (!diff_list) |
|
1846
|
22 |
0 |
assert(repo && opts); |
|
|
0 |
22 |
assert(repo && opts); |
|
1848
|
0 |
22 |
if ((error = git_repository_config__weakptr(&cfg, repo)) < 0) |
|
1851
|
18 |
4 |
if (given != NULL) { |
|
1858
|
22 |
0 |
if ((opts->flags & GIT_MERGE_FIND_RENAMES) && !opts->rename_threshold) |
|
|
21 |
1 |
if ((opts->flags & GIT_MERGE_FIND_RENAMES) && !opts->rename_threshold) |
|
1861
|
18 |
4 |
if (given && given->default_driver) { |
|
|
0 |
18 |
if (given && given->default_driver) { |
|
1863
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(opts->default_driver); |
|
1867
|
0 |
22 |
if (error == 0) { |
|
1869
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(opts->default_driver); |
|
1870
|
22 |
0 |
} else if (error == GIT_ENOTFOUND) { |
|
1877
|
21 |
1 |
if (!opts->target_limit) { |
|
1880
|
21 |
0 |
if (!limit) |
|
1884
|
0 |
21 |
GIT_MERGE_DEFAULT_TARGET_LIMIT : (unsigned int)limit; |
|
1888
|
22 |
0 |
if (!opts->metric) { |
|
1890
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC(opts->metric); |
|
1915
|
0 |
6 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(*entry)) |
|
1918
|
4 |
2 |
if ((reuc = git_index_reuc_get_bypath(index, entry->path)) != NULL) { |
|
1919
|
12 |
4 |
for (i = 0; i < 3; i++) { |
|
1940
|
2 |
22 |
git_vector_foreach(&diff_list->resolved, i, conflict) { |
|
1943
|
2 |
0 |
&conflict->ancestor_entry : NULL; |
|
1947
|
2 |
0 |
&conflict->our_entry : NULL; |
|
1951
|
2 |
0 |
&conflict->their_entry : NULL; |
|
1953
|
2 |
0 |
if (ancestor != NULL && |
|
|
0 |
2 |
if (ancestor != NULL && |
|
1957
|
2 |
0 |
if (ours != NULL && |
|
|
0 |
2 |
if (ours != NULL && |
|
1961
|
2 |
0 |
if (theirs != NULL && |
|
|
0 |
2 |
if (theirs != NULL && |
|
1979
|
0 |
22 |
if ((error = git_index_new(&index)) < 0) |
|
1982
|
0 |
22 |
if ((error = git_index__fill(index, &diff_list->staged)) < 0) |
|
1985
|
5 |
22 |
git_vector_foreach(&diff_list->conflicts, i, conflict) { |
|
1988
|
5 |
0 |
&conflict->ancestor_entry : NULL; |
|
1992
|
4 |
1 |
&conflict->our_entry : NULL; |
|
1996
|
5 |
0 |
&conflict->their_entry : NULL; |
|
1998
|
0 |
5 |
if ((error = git_index_conflict_add(index, ancestor, ours, theirs)) < 0) |
|
2003
|
5 |
22 |
git_vector_foreach(&diff_list->conflicts, i, conflict) { |
|
2006
|
0 |
5 |
if (!GIT_MERGE_INDEX_ENTRY_EXISTS(conflict->ancestor_entry)) |
|
2013
|
4 |
1 |
conflict->our_entry.path : NULL; |
|
2017
|
5 |
0 |
conflict->their_entry.path : NULL; |
|
2019
|
4 |
1 |
if ((our_path && strcmp(ancestor_path, our_path) != 0) || |
|
|
4 |
0 |
if ((our_path && strcmp(ancestor_path, our_path) != 0) || |
|
|
5 |
0 |
if ((our_path && strcmp(ancestor_path, our_path) != 0) || |
|
2020
|
0 |
5 |
(their_path && strcmp(ancestor_path, their_path) != 0)) { |
|
2021
|
0 |
0 |
if ((error = git_index_name_add(index, ancestor_path, our_path, their_path)) < 0) |
|
2026
|
22 |
0 |
if (!skip_reuc) { |
|
2027
|
0 |
22 |
if ((error = index_update_reuc(index, diff_list)) < 0) |
|
2043
|
66 |
0 |
if (given) |
|
2048
|
0 |
0 |
if (git_iterator_for_nothing(empty, &opts) < 0) |
|
2073
|
22 |
0 |
assert(out && repo); |
|
|
0 |
22 |
assert(out && repo); |
|
2077
|
0 |
22 |
GIT_ERROR_CHECK_VERSION( |
|
2080
|
0 |
22 |
if ((error = merge_normalize_opts(repo, &opts, given_opts)) < 0) |
|
2087
|
0 |
22 |
if (opts.flags & GIT_MERGE__VIRTUAL_BASE) { |
|
2096
|
0 |
22 |
GIT_ERROR_CHECK_ALLOC(diff_list); |
|
2102
|
22 |
0 |
if ((error = git_merge_diff_list__find_differences( |
|
2103
|
22 |
0 |
diff_list, ancestor_iter, our_iter, theirs_iter)) < 0 || |
|
2110
|
22 |
22 |
git_vector_foreach(&changes, i, conflict) { |
|
2113
|
0 |
22 |
if ((error = merge_conflict_resolve( |
|
2117
|
5 |
17 |
if (!resolved) { |
|
2118
|
0 |
5 |
if ((opts.flags & GIT_MERGE_FAIL_ON_CONFLICT)) { |
|
2132
|
18 |
4 |
if (!given_opts || !given_opts->metric) |
|
|
18 |
0 |
if (!given_opts || !given_opts->metric) |
|
2157
|
12 |
0 |
assert(out && repo); |
|
|
0 |
12 |
assert(out && repo); |
|
2160
|
12 |
0 |
if (ancestor_tree && merge_opts && (merge_opts->flags & GIT_MERGE_SKIP_REUC)) { |
|
|
12 |
0 |
if (ancestor_tree && merge_opts && (merge_opts->flags & GIT_MERGE_SKIP_REUC)) { |
|
|
0 |
12 |
if (ancestor_tree && merge_opts && (merge_opts->flags & GIT_MERGE_SKIP_REUC)) { |
|
2164
|
0 |
0 |
if (our_tree && !git_oid_cmp(ancestor_tree_id, git_tree_id(our_tree))) |
|
|
0 |
0 |
if (our_tree && !git_oid_cmp(ancestor_tree_id, git_tree_id(our_tree))) |
|
2166
|
0 |
0 |
else if (their_tree && !git_oid_cmp(ancestor_tree_id, git_tree_id(their_tree))) |
|
|
0 |
0 |
else if (their_tree && !git_oid_cmp(ancestor_tree_id, git_tree_id(their_tree))) |
|
2169
|
0 |
0 |
if (result) { |
|
2170
|
0 |
0 |
if ((error = git_index_new(out)) == 0) |
|
2179
|
12 |
0 |
if ((error = git_iterator_for_tree( |
|
2180
|
12 |
0 |
&ancestor_iter, (git_tree *)ancestor_tree, &iter_opts)) < 0 || |
|
2182
|
12 |
0 |
&our_iter, (git_tree *)our_tree, &iter_opts)) < 0 || |
|
2214
|
12 |
0 |
if (annotated_commit->type == GIT_ANNOTATED_COMMIT_REAL) { |
|
2215
|
6 |
6 |
id = git_array_alloc(*ids); |
|
|
6 |
0 |
id = git_array_alloc(*ids); |
|
2216
|
0 |
12 |
GIT_ERROR_CHECK_ALLOC(id); |
|
2220
|
0 |
0 |
for (i = 0; i < annotated_commit->parents.size; i++) { |
|
2221
|
0 |
0 |
id = git_array_alloc(*ids); |
|
|
0 |
0 |
id = git_array_alloc(*ids); |
|
2222
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(id); |
|
2246
|
0 |
0 |
if (opts) |
|
2252
|
0 |
0 |
if ((merge_annotated_commits(&index, NULL, repo, one, two, |
|
2257
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(result); |
|
2285
|
6 |
0 |
if (given_opts) |
|
2294
|
6 |
0 |
if ((error = insert_head_ids(&head_ids, two)) < 0 || |
|
|
6 |
0 |
if ((error = insert_head_ids(&head_ids, two)) < 0 || |
|
2295
|
6 |
0 |
(error = insert_head_ids(&head_ids, one)) < 0 || |
|
2300
|
6 |
0 |
base_count = (opts.flags & GIT_MERGE_NO_RECURSIVE) ? 0 : bases.count; |
|
2302
|
6 |
0 |
if (base_count) |
|
2305
|
0 |
6 |
if ((error = git_annotated_commit_lookup(&base, repo, &bases.ids[0])) < 0) |
|
2308
|
0 |
6 |
for (i = 1; i < base_count; i++) { |
|
2311
|
0 |
0 |
if (opts.recursion_limit && recursion_level > opts.recursion_limit) |
|
|
0 |
0 |
if (opts.recursion_limit && recursion_level > opts.recursion_limit) |
|
2314
|
0 |
0 |
if ((error = git_annotated_commit_lookup(&other, repo, |
|
2315
|
0 |
0 |
&bases.ids[i])) < 0 || |
|
2329
|
6 |
0 |
if (error == 0) |
|
2350
|
0 |
18 |
if (commit == NULL) { |
|
2352
|
0 |
18 |
} else if (commit->type == GIT_ANNOTATED_COMMIT_VIRTUAL) { |
|
2355
|
18 |
0 |
if (!commit->tree && |
|
|
0 |
18 |
if (!commit->tree && |
|
2379
|
0 |
6 |
if ((error = compute_base(&base, repo, ours, theirs, opts, |
|
2382
|
0 |
0 |
if (error != GIT_ENOTFOUND) |
|
2388
|
6 |
0 |
if ((error = iterator_for_annotated_commit(&base_iter, base)) < 0 || |
|
|
6 |
0 |
if ((error = iterator_for_annotated_commit(&base_iter, base)) < 0 || |
|
2389
|
6 |
0 |
(error = iterator_for_annotated_commit(&our_iter, ours)) < 0 || |
|
2390
|
6 |
0 |
(error = iterator_for_annotated_commit(&their_iter, theirs)) < 0 || |
|
2395
|
6 |
0 |
if (base_out) { |
|
2419
|
1 |
0 |
if ((error = git_annotated_commit_from_commit(&ours, (git_commit *)our_commit)) < 0 || |
|
|
1 |
0 |
if ((error = git_annotated_commit_from_commit(&ours, (git_commit *)our_commit)) < 0 || |
|
2444
|
5 |
0 |
assert(repo && heads); |
|
|
0 |
5 |
assert(repo && heads); |
|
2446
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_HEAD_FILE)) < 0 || |
|
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_HEAD_FILE)) < 0 || |
|
2450
|
5 |
5 |
for (i = 0; i < heads_len; i++) { |
|
2451
|
0 |
5 |
if ((error = git_filebuf_printf(&file, "%s\n", heads[i]->id_str)) < 0) |
|
2458
|
0 |
5 |
if (error < 0) |
|
2472
|
0 |
5 |
assert(repo); |
|
2474
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MODE_FILE)) < 0 || |
|
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MODE_FILE)) < 0 || |
|
2478
|
0 |
5 |
if ((error = git_filebuf_write(&file, "no-ff", 5)) < 0) |
|
2484
|
0 |
5 |
if (error < 0) |
|
2503
|
5 |
0 |
return (entry->written == 0 && |
|
2504
|
5 |
0 |
entry->merge_head->remote_url == NULL && |
|
2505
|
5 |
0 |
entry->merge_head->ref_name != NULL && |
|
|
5 |
0 |
entry->merge_head->ref_name != NULL && |
|
2515
|
0 |
0 |
return (entry->written == 0 && |
|
2516
|
0 |
0 |
entry->merge_head->remote_url == NULL && |
|
2517
|
0 |
5 |
entry->merge_head->ref_name != NULL && |
|
|
0 |
0 |
entry->merge_head->ref_name != NULL && |
|
2527
|
0 |
0 |
return (entry->written == 0 && |
|
2528
|
0 |
0 |
entry->merge_head->remote_url == NULL && |
|
2529
|
0 |
5 |
entry->merge_head->ref_name != NULL && |
|
|
0 |
0 |
entry->merge_head->ref_name != NULL && |
|
2537
|
0 |
5 |
if (entry->written == 0 && |
|
|
0 |
0 |
if (entry->written == 0 && |
|
2538
|
0 |
0 |
entry->merge_head->remote_url != NULL && |
|
2539
|
0 |
0 |
entry->merge_head->ref_name != NULL && |
|
2545
|
0 |
0 |
if (entries->length == 0) |
|
2560
|
0 |
5 |
return (merge_msg_entry->written == 0 && |
|
2561
|
5 |
0 |
merge_msg_entry->merge_head->ref_name == NULL && |
|
|
0 |
0 |
merge_msg_entry->merge_head->ref_name == NULL && |
|
2582
|
20 |
20 |
for (i = 0; i < len; i++) { |
|
2583
|
0 |
20 |
if ((matches = match(&entries[i], v)) < 0) |
|
2585
|
15 |
5 |
else if (!matches) |
|
2608
|
10 |
5 |
if (entries->length == 0) |
|
2611
|
0 |
5 |
if (sep && (error = git_filebuf_printf(file, "%c ", sep)) < 0) |
|
|
0 |
0 |
if (sep && (error = git_filebuf_printf(file, "%c ", sep)) < 0) |
|
2614
|
5 |
0 |
if ((error = git_filebuf_printf(file, "%s ", |
|
|
0 |
5 |
if ((error = git_filebuf_printf(file, "%s ", |
|
2618
|
5 |
5 |
git_vector_foreach(entries, i, entry) { |
|
2619
|
0 |
5 |
if (i > 0 && |
|
|
0 |
0 |
if (i > 0 && |
|
2620
|
0 |
0 |
(error = git_filebuf_printf(file, "%s", (i == entries->length - 1) ? " and " : ", ")) < 0) |
|
2623
|
0 |
5 |
if ((error = git_filebuf_printf(file, "'%s'", entry->merge_head->ref_name + ref_name_skip)) < 0) |
|
2629
|
0 |
5 |
if (source) |
|
2670
|
0 |
0 |
if (entries->length == 0) |
|
2692
|
5 |
0 |
assert(repo && heads); |
|
|
0 |
5 |
assert(repo && heads); |
|
2695
|
0 |
5 |
GIT_ERROR_CHECK_ALLOC(entries); |
|
2697
|
0 |
5 |
if (git_vector_init(&matching, heads_len, NULL) < 0) { |
|
2702
|
5 |
5 |
for (i = 0; i < heads_len; i++) |
|
2705
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 || |
|
|
5 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 || |
|
2706
|
5 |
0 |
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_MERGE_FILE_MODE)) < 0 || |
|
2721
|
5 |
0 |
for (i = 0; i < heads_len; i++) { |
|
2722
|
5 |
0 |
if (!msg_entry_is_oid(&entries[i])) |
|
2725
|
0 |
0 |
if ((error = git_filebuf_printf(&file, |
|
|
0 |
0 |
if ((error = git_filebuf_printf(&file, |
|
2733
|
0 |
5 |
if (i) |
|
2736
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_branch)) < 0 || |
|
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_branch)) < 0 || |
|
2740
|
5 |
0 |
if (matching.length) |
|
2743
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_tracking)) < 0 || |
|
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_tracking)) < 0 || |
|
2747
|
0 |
5 |
if (matching.length) |
|
2750
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_tag)) < 0 || |
|
|
5 |
0 |
if ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_tag)) < 0 || |
|
2754
|
0 |
5 |
if (matching.length) |
|
2759
|
0 |
5 |
while ((error = merge_msg_entries(&matching, entries, heads_len, msg_entry_is_remote)) > 0) { |
|
2760
|
0 |
0 |
if ((error = merge_msg_write_remotes(&file, &matching, sep)) < 0) |
|
2763
|
0 |
0 |
if (matching.length) |
|
2767
|
0 |
5 |
if (error < 0) |
|
2770
|
5 |
5 |
for (i = 0; i < heads_len; i++) { |
|
2771
|
5 |
0 |
if (merge_msg_entry_written(&entries[i])) |
|
2774
|
0 |
0 |
if ((error = git_filebuf_printf(&file, "; commit '%s'", |
|
2779
|
5 |
0 |
if ((error = git_filebuf_printf(&file, "\n")) < 0 || |
|
2784
|
0 |
5 |
if (error < 0) |
|
2803
|
5 |
0 |
assert (repo && our_head && heads); |
|
|
5 |
0 |
assert (repo && our_head && heads); |
|
|
0 |
5 |
assert (repo && our_head && heads); |
|
2805
|
5 |
0 |
if ((error = git_repository__set_orig_head(repo, git_annotated_commit_id(our_head))) == 0 && |
|
|
5 |
0 |
if ((error = git_repository__set_orig_head(repo, git_annotated_commit_id(our_head))) == 0 && |
|
2806
|
5 |
0 |
(error = write_merge_head(repo, heads, heads_len)) == 0 && |
|
2827
|
5 |
0 |
assert(repo && our_head && their_heads); |
|
|
5 |
0 |
assert(repo && our_head && their_heads); |
|
|
0 |
5 |
assert(repo && our_head && their_heads); |
|
2829
|
0 |
5 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, their_heads_len, 1); |
|
|
0 |
5 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, their_heads_len, 1); |
|
2831
|
0 |
5 |
GIT_ERROR_CHECK_ALLOC(oids); |
|
2835
|
5 |
5 |
for (i = 0; i < their_heads_len; i++) |
|
2838
|
0 |
5 |
if ((error = git_merge_base_many(&ancestor_oid, repo, their_heads_len + 1, oids)) < 0) |
|
2852
|
0 |
5 |
if ((slash = strrchr(branchname, '/')) == NULL) |
|
2855
|
0 |
5 |
if (*(slash+1) == '\0') |
|
2876
|
5 |
0 |
if (given_checkout_opts != NULL) |
|
2883
|
5 |
0 |
if (!out->ancestor_label) { |
|
2884
|
5 |
0 |
if (ancestor && ancestor->type == GIT_ANNOTATED_COMMIT_REAL) |
|
|
5 |
0 |
if (ancestor && ancestor->type == GIT_ANNOTATED_COMMIT_REAL) |
|
2886
|
0 |
0 |
else if (ancestor) |
|
2892
|
5 |
0 |
if (!out->our_label) { |
|
2893
|
5 |
0 |
if (our_head && our_head->ref_name) |
|
|
5 |
0 |
if (our_head && our_head->ref_name) |
|
2899
|
5 |
0 |
if (!out->their_label) { |
|
2900
|
5 |
0 |
if (their_heads_len == 1 && their_heads[0]->ref_name) |
|
|
5 |
0 |
if (their_heads_len == 1 && their_heads[0]->ref_name) |
|
2902
|
0 |
0 |
else if (their_heads_len == 1) |
|
2933
|
15 |
0 |
if ((error = git_repository_head_tree(&head_tree, repo)) < 0 || |
|
|
15 |
0 |
if ((error = git_repository_head_tree(&head_tree, repo)) < 0 || |
|
2934
|
15 |
0 |
(error = git_repository_index(&index_repo, repo)) < 0 || |
|
2938
|
12 |
3 |
if (staged_diff_list->deltas.length == 0) |
|
2941
|
3 |
3 |
git_vector_foreach(&staged_diff_list->deltas, i, delta) { |
|
2942
|
0 |
3 |
if ((error = git_vector_insert(&staged_paths, (char *)delta->new_file.path)) < 0) |
|
2950
|
3 |
0 |
if ((error = git_iterator_for_index(&iter_repo, repo, index_repo, &iter_opts)) < 0 || |
|
|
3 |
0 |
if ((error = git_iterator_for_index(&iter_repo, repo, index_repo, &iter_opts)) < 0 || |
|
2951
|
3 |
0 |
(error = git_iterator_for_index(&iter_new, repo, index_new, &iter_opts)) < 0 || |
|
2986
|
2 |
13 |
if (merged_paths->length == 0) |
|
3000
|
0 |
13 |
if ((error = git_diff_index_to_workdir(&wd_diff_list, repo, NULL, &opts)) < 0) |
|
3026
|
15 |
0 |
if ((error = git_repository_head_tree(&head_tree, repo)) < 0 || |
|
|
15 |
0 |
if ((error = git_repository_head_tree(&head_tree, repo)) < 0 || |
|
3027
|
15 |
0 |
(error = git_iterator_for_tree(&iter_head, head_tree, &iter_opts)) < 0 || |
|
3028
|
15 |
0 |
(error = git_iterator_for_index(&iter_new, repo, index_new, &iter_opts)) < 0 || |
|
3032
|
12 |
15 |
git_vector_foreach(&merged_list->deltas, i, delta) { |
|
3033
|
0 |
12 |
if ((error = git_vector_insert(&paths, (char *)delta->new_file.path)) < 0) |
|
3037
|
39 |
15 |
for (i = 0; i < git_index_entrycount(index_new); i++) { |
|
3041
|
0 |
10 |
(git_vector_last(&paths) == NULL || |
|
3044
|
0 |
1 |
if ((error = git_vector_insert(&paths, (char *)e->path)) < 0) |
|
3050
|
15 |
0 |
if ((error = merge_check_index(&index_conflicts, repo, index_new, &paths)) < 0 || |
|
|
15 |
0 |
if ((error = merge_check_index(&index_conflicts, repo, index_new, &paths)) < 0 || |
|
3054
|
1 |
14 |
if ((conflicts = index_conflicts + wd_conflicts) > 0) { |
|
3055
|
0 |
1 |
git_error_set(GIT_ERROR_MERGE, "%" PRIuZ " uncommitted change%s would be overwritten by merge", |
|
3080
|
8 |
3 |
if (!git_index_has_conflicts(index)) |
|
3083
|
3 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 || |
|
|
3 |
0 |
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 || |
|
3089
|
11 |
3 |
for (i = 0; i < git_index_entrycount(index); i++) { |
|
3092
|
2 |
9 |
if (!git_index_entry_is_conflict(e)) |
|
3095
|
6 |
3 |
if (last == NULL || strcmp(e->path, last) != 0) |
|
|
0 |
6 |
if (last == NULL || strcmp(e->path, last) != 0) |
|
3104
|
0 |
3 |
if (error < 0) |
|
3137
|
0 |
5 |
if ((error = git_annotated_commit_from_ref(&our_head, repo, our_ref)) < 0) |
|
3140
|
0 |
5 |
if ((error = merge_ancestor_head(&ancestor_head, repo, our_head, their_heads, their_heads_len)) < 0) { |
|
3141
|
0 |
0 |
if (error != GIT_ENOTFOUND) |
|
3152
|
0 |
5 |
if (error < 0) { |
|
3168
|
0 |
5 |
if ((error = git_repository_config_snapshot(&config, repo)) < 0) |
|
3171
|
5 |
0 |
if ((error = git_config_get_string(&value, config, "merge.ff")) < 0) { |
|
3172
|
5 |
0 |
if (error == GIT_ENOTFOUND) { |
|
3180
|
0 |
0 |
if (git_config_parse_bool(&bool_value, value) == 0) { |
|
3181
|
0 |
0 |
if (!bool_value) |
|
3184
|
0 |
0 |
if (strcasecmp(value, "only") == 0) |
|
3205
|
5 |
0 |
assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0); |
|
|
5 |
0 |
assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0); |
|
|
5 |
0 |
assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0); |
|
|
5 |
0 |
assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0); |
|
|
0 |
5 |
assert(analysis_out && preference_out && repo && their_heads && their_heads_len > 0); |
|
3207
|
0 |
5 |
if (their_heads_len != 1) { |
|
3215
|
0 |
5 |
if ((error = merge_preference(preference_out, repo)) < 0) |
|
3218
|
0 |
5 |
if ((error = git_reference__is_unborn_head(&unborn, our_ref, repo)) < 0) |
|
3221
|
0 |
5 |
if (unborn) { |
|
3227
|
0 |
5 |
if ((error = merge_heads(&ancestor_head, &our_head, repo, our_ref, their_heads, their_heads_len)) < 0) |
|
3231
|
5 |
0 |
if (ancestor_head && git_oid_equal( |
|
|
1 |
4 |
if (ancestor_head && git_oid_equal( |
|
3236
|
4 |
0 |
else if (ancestor_head && git_oid_equal( |
|
|
1 |
3 |
else if (ancestor_head && git_oid_equal( |
|
3260
|
0 |
5 |
if ((error = git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE)) < 0) { |
|
3287
|
5 |
0 |
assert(repo && their_heads && their_heads_len > 0); |
|
|
5 |
0 |
assert(repo && their_heads && their_heads_len > 0); |
|
|
0 |
5 |
assert(repo && their_heads && their_heads_len > 0); |
|
3289
|
0 |
5 |
if (their_heads_len != 1) { |
|
3294
|
0 |
5 |
if ((error = git_repository__ensure_not_bare(repo, "merge")) < 0) |
|
3298
|
5 |
0 |
given_checkout_opts->checkout_strategy : |
|
3301
|
0 |
5 |
if ((error = git_indexwriter_init_for_operation(&indexwriter, repo, |
|
3310
|
5 |
0 |
if ((error = git_annotated_commit_from_head(&our_head, repo)) < 0 || |
|
|
5 |
0 |
if ((error = git_annotated_commit_from_head(&our_head, repo)) < 0 || |
|
3317
|
5 |
0 |
if ((error = merge_annotated_commits(&index, &base, repo, our_head, |
|
3318
|
5 |
0 |
(git_annotated_commit *)their_heads[0], 0, merge_opts)) < 0 || |
|
3319
|
5 |
0 |
(error = git_merge__check_result(repo, index)) < 0 || |
|
3325
|
5 |
0 |
if ((error = merge_normalize_checkout_opts(&checkout_opts, repo, |
|
3327
|
5 |
0 |
base, our_head, their_heads, their_heads_len)) < 0 || |
|
3334
|
0 |
5 |
if (error < 0) |
|
3349
|
0 |
0 |
GIT_INIT_STRUCTURE_FROM_TEMPLATE( |
|
3361
|
0 |
0 |
GIT_INIT_STRUCTURE_FROM_TEMPLATE( |
|
3374
|
0 |
0 |
GIT_INIT_STRUCTURE_FROM_TEMPLATE( |