#include "cache.h"
-#include "path-list.h"
+#include "string-list.h"
#include "rerere.h"
#include "xdiff/xdiff.h"
#include "xdiff-interface.h"
return !stat(rr_path(name, "postimage"), &st);
}
-static void read_rr(struct path_list *rr)
+static void read_rr(struct string_list *rr)
{
unsigned char sha1[20];
char buf[PATH_MAX];
; /* do nothing */
if (i == sizeof(buf))
die("filename too long");
- path_list_insert(buf, rr)->util = name;
+ string_list_insert(buf, rr)->util = name;
}
fclose(in);
}
static struct lock_file write_lock;
-static int write_rr(struct path_list *rr, int out_fd)
+static int write_rr(struct string_list *rr, int out_fd)
{
int i;
for (i = 0; i < rr->nr; i++) {
int length;
if (!rr->items[i].util)
continue;
- path = rr->items[i].path;
+ path = rr->items[i].string;
length = strlen(path) + 1;
if (write_in_full(out_fd, rr->items[i].util, 40) != 40 ||
write_in_full(out_fd, "\t", 1) != 1 ||
return hunk_no;
}
-static int find_conflict(struct path_list *conflict)
+static int find_conflict(struct string_list *conflict)
{
int i;
if (read_cache() < 0)
ce_same_name(e2, e3) &&
S_ISREG(e2->ce_mode) &&
S_ISREG(e3->ce_mode)) {
- path_list_insert((const char *)e2->name, conflict);
+ string_list_insert((const char *)e2->name, conflict);
i++; /* skip over both #2 and #3 */
}
}
static struct lock_file index_lock;
-static int update_paths(struct path_list *update)
+static int update_paths(struct string_list *update)
{
int i;
int fd = hold_locked_index(&index_lock, 0);
return -1;
for (i = 0; i < update->nr; i++) {
- struct path_list_item *item = &update->items[i];
- if (add_file_to_cache(item->path, ADD_CACHE_IGNORE_ERRORS))
+ struct string_list_item *item = &update->items[i];
+ if (add_file_to_cache(item->string, ADD_CACHE_IGNORE_ERRORS))
status = -1;
}
return status;
}
-static int do_plain_rerere(struct path_list *rr, int fd)
+static int do_plain_rerere(struct string_list *rr, int fd)
{
- struct path_list conflict = { NULL, 0, 0, 1 };
- struct path_list update = { NULL, 0, 0, 1 };
+ struct string_list conflict = { NULL, 0, 0, 1 };
+ struct string_list update = { NULL, 0, 0, 1 };
int i;
find_conflict(&conflict);
*/
for (i = 0; i < conflict.nr; i++) {
- const char *path = conflict.items[i].path;
- if (!path_list_has_path(rr, path)) {
+ const char *path = conflict.items[i].string;
+ if (!string_list_has_string(rr, path)) {
unsigned char sha1[20];
char *hex;
int ret;
if (ret < 1)
continue;
hex = xstrdup(sha1_to_hex(sha1));
- path_list_insert(path, rr)->util = hex;
+ string_list_insert(path, rr)->util = hex;
if (mkdir(git_path("rr-cache/%s", hex), 0755))
continue;;
handle_file(path, NULL, rr_path(hex, "preimage"));
for (i = 0; i < rr->nr; i++) {
int ret;
- const char *path = rr->items[i].path;
+ const char *path = rr->items[i].string;
const char *name = (const char *)rr->items[i].util;
if (has_resolution(name)) {
if (!merge(name, path)) {
- fprintf(stderr, "Resolved '%s' using "
- "previous resolution.\n", path);
if (rerere_autoupdate)
- path_list_insert(path, &update);
+ string_list_insert(path, &update);
+ fprintf(stderr,
+ "%s '%s' using previous resolution.\n",
+ rerere_autoupdate
+ ? "Staged" : "Resolved",
+ path);
goto mark_resolved;
}
}
return 1;
}
-int setup_rerere(struct path_list *merge_rr)
+int setup_rerere(struct string_list *merge_rr)
{
int fd;
int rerere(void)
{
- struct path_list merge_rr = { NULL, 0, 0, 1 };
+ struct string_list merge_rr = { NULL, 0, 0, 1 };
int fd;
fd = setup_rerere(&merge_rr);