merge-recursive: point the user to commit when file would be overwritten.
The commit-before-pull is well accepted in the DVCS community, but is confusing some new users. This should get them back in the right way when the problem occurs. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
78d553b7d7
commit
4c371f9127
@ -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
advice.c
2
advice.c
@ -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)
|
||||
|
1
advice.h
1
advice.h
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user