include/git2/merge.h


Log

Author Commit Date CI Message
Edward Thomson 0fbf62cd 2022-02-12T08:46:55 merge: make the internal flags public We made the flags that enable recursive merge internal, on the assumption that nobody would want them and they're hard to reason about. (Giving people an option that nobody wants is just extra noise.) However, it made it hard for _us_ to reason about. There's no good reason to keep it private, let's just make it public and push that cognitive load onto our poor users. But they should expect it, they're dealing with git, after all.
Peter Pettersson fed3fef4 2022-02-07T00:45:44 merge: allocate merge flags for internal use Allocate flags in git_merge_flag_t and git_merge_file_flag_t for internal usage to prevent accidental double allocation.
Edward Thomson c629d2a1 2022-01-29T21:02:15 merge: support zdiff3 conflict styles
punkymaniac 68bc511a 2021-11-26T15:14:56 Add documentation about parameter and return value
Peter Pettersson 38c34498 2021-10-03T00:12:52 Make enum in includes C90 compliant by removing trailing comma.
Sven Strickroth 452b7f8f 2019-09-25T20:29:21 Don't use enum for flags Using an `enum` causes trouble when used with C++ as bitwise operations are not possible w/o casting (e.g., `opts.flags &= ~GIT_BLOB_FILTER_CHECK_FOR_BINARY;` is invalid as there is no `&=` operator for `enum`). Signed-off-by: Sven Strickroth <email@cs-ware.de>
Edward Thomson 0b5ba0d7 2019-06-06T16:36:23 Rename opt init functions to `options_init` In libgit2 nomenclature, when we need to verb a direct object, we name a function `git_directobject_verb`. Thus, if we need to init an options structure named `git_foo_options`, then the name of the function that does that should be `git_foo_options_init`. The previous names of `git_foo_init_options` is close - it _sounds_ as if it's initializing the options of a `foo`, but in fact `git_foo_options` is its own noun that should be respected. Deprecate the old names; they'll now call directly to the new ones.
Etienne Samson 6e9fb040 2018-08-25T01:47:39 merge: make analysis possible against a non-HEAD reference This moves the current merge analysis code into a more generic version that can work against any reference. Also change the tests to check returned analysis values exactly.
Etienne Samson ca5a15e5 2018-03-22T23:27:27 docs: standardize comment block for git_*_init_options functions
Edward Thomson b8e9467a 2018-01-20T19:39:34 merge: allow custom conflict marker size Allow for a custom conflict marker size, allowing callers to override the default size of the "<<<<<<<" and ">>>>>>>" markers in the conflicted output file.
Edward Thomson 19ed4d0c 2017-01-01T22:19:23 merge: set default rename threshold When `GIT_MERGE_FIND_RENAMES` is set, provide a default for `rename_threshold` when it is unset.
Edward Thomson 30a94ab7 2015-12-24T22:52:23 merge driver: allow custom default driver Allow merge users to configure a custom default merge driver via `git_merge_options`. Similarly, honor the `merge.default` configuration option.
Edward Thomson b00c959f 2016-02-08T17:55:22 Better document `git_merge_commits` redux `git_merge_commits` and `git_merge` now *do* handle recursive base building for criss-cross merges. Remove the documentation that says that they do not. This reverts commit 5e44d9bcb6d5b20922f49b1913723186f8ced8b5.
Edward Thomson 5b9c63c3 2015-11-20T19:01:42 recursive merge: add a recursion limit
Edward Thomson 86c8d02c 2015-10-22T20:20:07 merge: add simple recursive test Add a simple recursive test - where multiple ancestors exist and creating a virtual merge base from them would prevent a conflict.
Edward Thomson fa78782f 2015-10-22T17:00:09 merge: rename `git_merge_tree_flags_t` -> `git_merge_flags_t`
Vicent Marti a1f5d691 2015-10-27T22:42:15 merge: Implement `GIT_MERGE_TREE_SKIP_REUC`
Edward Thomson 8683d31f 2015-10-22T14:39:20 merge: add GIT_MERGE_TREE_FAIL_ON_CONFLICT Provide a new merge option, GIT_MERGE_TREE_FAIL_ON_CONFLICT, which will stop on the first conflict and fail the merge operation with GIT_EMERGECONFLICT.
Jameson Miller bf2ba529 2015-04-30T10:57:13 Update documentation for API changes
Jacques Germishuys 74c37c2a 2015-03-12T13:16:09 Added options to enable patience and minimal diff drivers
Jacques Germishuys 13de9363 2015-03-12T12:36:09 Collapse whitespace flags into git_merge_file_flags_t
Jacques Germishuys f29dde68 2015-03-12T12:29:47 Renamed git_merge_options 'flags' to 'tree_flags'
Jacques Germishuys 45a86bbf 2015-03-09T17:02:52 Allow for merges with whitespace discrepancies
Edward Thomson 5e44d9bc 2015-01-05T11:34:17 Better document `git_merge_commits` `git_merge_commits` (and thus `git_merge`) do not use the same strategy as `git-merge-recursive` wherein they can produce an artificial common ancestor that is the merge of all common ancestors. Document this accordingly.
Carlos Martín Nieto a295bd2d 2014-12-06T03:36:18 doc: add documentation to all the public structs and enums This makes them show up in the reference, even if the text itself isn't the most descriptive. These have been found with grep -Przon '\n\ntypedef struct.*?\{' -- include grep -Przon '\n\ntypedef enum.*?\{' -- include
Carlos Martín Nieto 521c0cab 2014-11-02T17:18:19 merge: talk about the merging state after git_merge() Since it's not necessarily obvious, mention the merging state and how to clear it.
Edward Thomson 18b00406 2014-10-03T19:02:29 s/git_merge_head/git_annotated_commit Rename git_merge_head to git_annotated_commit, as it becomes used in more operations than just merge.
Arthur Schreiber eca07bcd 2014-10-09T13:58:23 Add git_merge_bases_many.
Carlos Martín Nieto 7db0e6ee 2014-07-18T16:00:21 merge: expose multiple merge bases We always calculate multiple merge bases, but up to now we had only exposed the "best" merge base. Introduce git_oidarray which analogously to git_strarray lets us return multiple ids.
Edward Thomson eff531e1 2014-05-27T20:58:20 Modify GIT_MERGE_CONFIG -> GIT_MERGE_PREFERENCE
Edward Thomson a3622ba6 2014-05-16T13:54:40 Move GIT_MERGE_CONFIG_* to its own enum
Edward Thomson d362093f 2014-05-08T15:41:36 Introduce GIT_MERGE_CONFIG_* for merge.ff settings git_merge_analysis will now return GIT_MERGE_CONFIG_NO_FASTFORWARD when merge.ff=false and GIT_MERGE_CONFIG_FASTFORWARD_ONLY when merge.ff=true
Michael Anderson 31b0cb51 2014-05-22T17:16:21 Fixed miscellaneous documentation errors.
Russell Belfer d2c16e9a 2014-05-02T15:15:43 Doc fixes
Russell Belfer 702efc89 2014-04-30T10:57:42 Make init_options fns use unsigned ints and macro Use an unsigned int for the version and add a helper macro so the code is simplified (and so the error message is a common string).
Jacques Germishuys 3b4ba278 2014-04-03T15:50:21 Const correctness!
Edward Thomson 7f930ded 2014-03-31T09:38:06 Const up members of git_merge_file_result
Edward Thomson 976634c4 2014-03-30T19:56:18 Introduce git_merge_head_id
Edward Thomson 58c2b1c4 2014-03-20T09:35:22 UNBORN implies FAST_FORWARD
Edward Thomson ac584fcf 2014-03-18T16:04:51 Introduce GIT_MERGE_ANALYSIS_UNBORN
Edward Thomson 97f3462a 2014-03-18T13:14:09 git_merge_status -> git_merge_analysis
Edward Thomson d9fdee6e 2014-03-12T09:43:53 Remove `git_merge_result` as it's now unnecessary
Edward Thomson 5aa2ac6d 2014-03-11T22:47:39 Update git_merge_tree_opts to git_merge_options
Edward Thomson 02105a27 2014-03-11T18:40:38 Change signature of `git_merge` to take merge and checkout opts
Edward Thomson ccb30827 2014-03-11T17:19:35 Add `git_merge_status` to provide info about an upcoming merge
Edward Thomson 1c0b6a38 2014-03-11T17:58:10 Remove fastforward / uptodate from `git_merge`
Edward Thomson 05d47768 2014-03-10T22:30:41 Introduce git_merge_file for consumers
Aimeast 0aee025b 2014-03-18T22:31:14 Implement git_merge_base_octopus
Ben Straub 6affd71f 2014-01-03T17:38:34 git_checkout_opts -> git_checkout_options
Vicent Marti 2ab6d2cd 2014-03-06T16:08:17 Revert pull request #1997
Vicent Marti 4d116c34 2014-03-06T16:08:12 Merge pull request #1997 from mgbowen/merge-options-init-fix Fix GIT_MERGE_OPTS_INIT on MSVC.
Matthew Bowen b9f81997 2014-03-05T21:49:23 Added function-based initializers for every options struct. The basic structure of each function is courtesy of arrbee.
Edward Thomson c254e2b6 2014-02-21T08:55:30 Improve documentation for merging
Carlos Martín Nieto a1bbc0ce 2014-01-25T04:14:37 merge: rename _oid() -> id() Following the rest of the series, use 'id' when refering to the value.
Edward Thomson db3462ce 2014-01-19T22:36:50 Support union merges
Edward Thomson 0e1ba46c 2014-01-19T20:03:13 Remove the "merge none" flag The "merge none" (don't automerge) flag was only to aide in merge trivial tests. We can easily determine whether merge trivial resulted in a trivial merge or an automerge by examining the REUC after automerge has completed.
Edward Thomson c1d648c5 2014-01-08T18:29:42 merge_file should use more aggressive levels The default merge_file level was XDL_MERGE_MINIMAL, which will produce conflicts where there should not be in the case where both sides were changed identically. Change the defaults to be more aggressive (XDL_MERGE_ZEALOUS) which will more aggressively compress non-conflicts. This matches git.git's defaults. Increase testing around reverting a previously reverted commit to illustrate this problem.
Matthew Bowen 0db93225 2013-12-09T10:43:05 Fix GIT_MERGE_OPTS_INIT on MSVC.
Edward Thomson eac938d9 2013-12-02T14:10:04 Bare naked merge and rebase
Edward Thomson 039db728 2013-07-03T01:00:45 merge branch into current, updating workdir
Carlos Martín Nieto 07fb67f9 2013-09-22T05:55:39 merge: reverse array and length parameter order Make it pair up with the one for commits. This fixes #1691.
John Josef 917e5fa9 2013-09-08T18:31:56 fixes issues with objective-git
Andreas Linde e1967164 2013-06-24T15:33:41 Fixed most documentation header bugs Fixed a few header @param and @return typos with the help of -Wdocumentation in Xcode. The following warnings have not been fixed: common.h:213 - Not sure how the documentation format is for '...' notes.h:102 - Correct @param name but empty text notes.h:111 - Correct @param name but empty text pack.h:140 - @return missing text pack.h:148 - @return missing text
Arthur Schreiber 31a61181 2013-05-29T00:02:26 Fix two typos in the merge docs.
Edward Thomson 9c06b250 2013-05-16T13:04:37 merge setup
nulltoken 1fed6b07 2013-05-13T21:57:37 Fix trailing whitespaces
Linquize 0cb16fe9 2013-05-15T20:26:55 Unify whitespaces to tabs
Edward Thomson 0462fba5 2013-04-30T14:56:41 renames!
Edward Thomson bec65a5e 2013-04-01T22:16:21 merge!
Edward Thomson 359fc2d2 2013-01-08T17:07:25 update copyrights
Scott J. Goldman 0984c876 2012-11-28T18:27:43 Rename git_count_ahead_behind -> git_graph_ahead_behind Moved it into graph.{c,h} which i created for the new "graph" functions namespace. Also adjusted the function prototype to use `size_t` and `const git_oid *`.
Scott J. Goldman bff53e54 2012-11-27T16:36:50 Add initial implementation of ahead-behind count
Ben Straub eac76956 2012-11-26T19:53:04 Format/documentation tweaks for merge.h
Sascha Cunz 857323d4 2012-09-09T15:53:57 git_mergebase: Constness-Fix for consistency
nulltoken b46bdb22 2012-05-25T16:28:53 merge: Expose git_merge_base_many()
Carlos Martín Nieto bf787bd8 2012-04-08T18:56:50 Move git_merge_base() to is own header and document it