During a merge, "--mixed" is most likely not what the user wants. Using
"--mixed" during a merge would leave the merged changes and new files
mixed in with the local changes. The user would have to manually clean
up the work tree, which is non-trivial. In future releases, we want to
make "git reset" error out when used in the middle of a merge. For now,
we simply print out a warning to the user.

Signed-off-by: Andrew Wong <andrew.k...@gmail.com>
---
 builtin/reset.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/builtin/reset.c b/builtin/reset.c
index 4fd1c6c..04e8103 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -331,8 +331,29 @@ int cmd_reset(int argc, const char **argv, const char 
*prefix)
                                        _(reset_type_names[reset_type]));
        }
        if (reset_type == NONE)
+       {
                reset_type = MIXED; /* by default */
 
+               /* During a merge, "--mixed" is most likely not what the user
+                * wants. Using "--mixed" during a merge would leave the merged
+                * changes and new files mixed in with the local changes. The
+                * user would have to manually clean up the work tree, which is
+                * non-trivial. In future releases, we want to make "git reset"
+                * error out when used in the middle of a merge. For now, we
+                * simply print out a warning to the user. */
+               if (is_merge())
+                       warning(_("You have used 'git reset' in the middle of a 
merge. 'git reset' defaults to\n"
+                                 "'git reset --mixed', which means git will 
not clean up any merged changes and\n"
+                                 "new files that were created in the work 
tree. It also becomes impossible for\n"
+                                 "git to automatically clean up the work tree 
later, so you would have to clean\n"
+                                 "up the work tree manually. To avoid this 
next time, you may want to use 'git\n"
+                                 "reset --merge', or equivalently 'git merge 
--abort'.\n"
+                                 "\n"
+                                 "In future releases, using 'git reset' in the 
middle of a merge will result in\n"
+                                 "an error."
+                                ));
+       }
+
        if (reset_type != SOFT && reset_type != MIXED)
                setup_work_tree();
 
-- 
1.9.0.174.g6f75b8f

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to