diff options
-rw-r--r-- | Documentation/config.txt | 4 | ||||
-rw-r--r-- | advice.c | 2 | ||||
-rw-r--r-- | advice.h | 1 | ||||
-rw-r--r-- | merge-recursive.c | 8 |
4 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt index cd1781498e..0b550dc490 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -126,6 +126,10 @@ advice.*:: Directions on how to stage/unstage/add shown in the output of linkgit:git-status[1] and the template shown when writing commit messages. Default: true. + commitBeforeMerge:: + Advice shown when linkgit:git-merge[1] refuses to + merge to avoid overwritting local changes. + Default: true. -- core.fileMode:: @@ -2,6 +2,7 @@ int advice_push_nonfastforward = 1; int advice_status_hints = 1; +int advice_commit_before_merge = 1; static struct { const char *name; @@ -9,6 +10,7 @@ static struct { } advice_config[] = { { "pushnonfastforward", &advice_push_nonfastforward }, { "statushints", &advice_status_hints }, + { "commitbeforemerge", &advice_commit_before_merge }, }; int git_default_advice_config(const char *var, const char *value) @@ -3,6 +3,7 @@ extern int advice_push_nonfastforward; extern int advice_status_hints; +extern int advice_commit_before_merge; int git_default_advice_config(const char *var, const char *value); diff --git a/merge-recursive.c b/merge-recursive.c index f55b7ebe11..1870448d98 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -3,6 +3,7 @@ * Fredrik Kuivinen. * The thieves were Alex Riesen and Johannes Schindelin, in June/July 2006 */ +#include "advice.h" #include "cache.h" #include "cache-tree.h" #include "commit.h" @@ -170,7 +171,7 @@ static int git_merge_trees(int index_only, int rc; struct tree_desc t[3]; struct unpack_trees_options opts; - static const struct unpack_trees_error_msgs msgs = { + struct unpack_trees_error_msgs msgs = { /* would_overwrite */ "Your local changes to '%s' would be overwritten by merge. Aborting.", /* not_uptodate_file */ @@ -182,6 +183,11 @@ static int git_merge_trees(int index_only, /* bind_overlap -- will not happen here */ NULL, }; + if (advice_commit_before_merge) { + msgs.would_overwrite = msgs.not_uptodate_file = + "Your local changes to '%s' would be overwritten by merge. Aborting.\n" + "Please, commit your changes or stash them before you can merge."; + } memset(&opts, 0, sizeof(opts)); if (index_only) |