Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 builtin/rerere.c | 8 +++++---
 rerere.c         | 9 +++++----
 rerere.h         | 4 +++-
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/builtin/rerere.c b/builtin/rerere.c
index dc1708e..4e51add 100644
--- a/builtin/rerere.c
+++ b/builtin/rerere.c
@@ -6,6 +6,7 @@
 #include "rerere.h"
 #include "xdiff/xdiff.h"
 #include "xdiff-interface.h"
+#include "pathspec.h"
 
 static const char * const rerere_usage[] = {
        N_("git rerere [clear | forget path... | status | remaining | diff | 
gc]"),
@@ -68,11 +69,12 @@ int cmd_rerere(int argc, const char **argv, const char 
*prefix)
                return rerere(flags);
 
        if (!strcmp(argv[0], "forget")) {
-               const char **pathspec;
+               struct pathspec pathspec;
                if (argc < 2)
                        warning("'git rerere forget' without paths is 
deprecated");
-               pathspec = get_pathspec(prefix, argv + 1);
-               return rerere_forget(pathspec);
+               parse_pathspec(&pathspec, 0, PATHSPEC_PREFER_CWD,
+                              prefix, argv + 1);
+               return rerere_forget(&pathspec);
        }
 
        fd = setup_rerere(&merge_rr, flags);
diff --git a/rerere.c b/rerere.c
index a6a5cd5..c52c1f2 100644
--- a/rerere.c
+++ b/rerere.c
@@ -6,6 +6,7 @@
 #include "resolve-undo.h"
 #include "ll-merge.h"
 #include "attr.h"
+#include "pathspec.h"
 
 #define RESOLVED 0
 #define PUNTED 1
@@ -655,7 +656,7 @@ static int rerere_forget_one_path(const char *path, struct 
string_list *rr)
        return 0;
 }
 
-int rerere_forget(const char **pathspec)
+int rerere_forget(struct pathspec *pathspec)
 {
        int i, fd;
        struct string_list conflict = STRING_LIST_INIT_DUP;
@@ -666,12 +667,12 @@ int rerere_forget(const char **pathspec)
 
        fd = setup_rerere(&merge_rr, RERERE_NOAUTOUPDATE);
 
-       unmerge_cache(pathspec);
+       unmerge_cache(pathspec->raw);
        find_conflict(&conflict);
        for (i = 0; i < conflict.nr; i++) {
                struct string_list_item *it = &conflict.items[i];
-               if (!match_pathspec(pathspec, it->string, strlen(it->string),
-                                   0, NULL))
+               if (!match_pathspec_depth(pathspec, it->string, 
strlen(it->string),
+                                         0, NULL))
                        continue;
                rerere_forget_one_path(it->string, &merge_rr);
        }
diff --git a/rerere.h b/rerere.h
index 156d2aa..4aa06c9 100644
--- a/rerere.h
+++ b/rerere.h
@@ -3,6 +3,8 @@
 
 #include "string-list.h"
 
+struct pathspec;
+
 #define RERERE_AUTOUPDATE   01
 #define RERERE_NOAUTOUPDATE 02
 
@@ -16,7 +18,7 @@ extern void *RERERE_RESOLVED;
 extern int setup_rerere(struct string_list *, int);
 extern int rerere(int);
 extern const char *rerere_path(const char *hex, const char *file);
-extern int rerere_forget(const char **);
+extern int rerere_forget(struct pathspec *);
 extern int rerere_remaining(struct string_list *);
 extern void rerere_clear(struct string_list *);
 extern void rerere_gc(struct string_list *);
-- 
1.8.0.rc0.19.g7bbb31d

--
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