static void update_one(const char *path, const char *prefix, int prefix_length) { const char *p = prefix_path(prefix, prefix_length, path); if (!verify_path(p)) { fprintf(stderr, "Ignoring path %s\n", path); goto free_return; } if (mark_valid_only) { if (mark_ce_flags(p, CE_VALID, mark_valid_only == MARK_FLAG)) die("Unable to mark file %s", path); goto free_return; } if (mark_skip_worktree_only) { if (mark_ce_flags(p, CE_SKIP_WORKTREE, mark_skip_worktree_only == MARK_FLAG)) die("Unable to mark file %s", path); goto free_return; } if (force_remove) { if (remove_file_from_cache(p)) die("git update-index: unable to remove %s", path); report("remove '%s'", path); goto free_return; } if (process_path(p)) die("Unable to process path %s", path); report("add '%s'", path); free_return: if (p < path || p > path + strlen(path)) free((char *)p); }
static void update_one(const char *path) { if (!verify_path(path)) { fprintf(stderr, "Ignoring path %s\n", path); return; } if (mark_valid_only) { if (mark_ce_flags(path, CE_VALID, mark_valid_only == MARK_FLAG)) die("Unable to mark file %s", path); return; } if (mark_skip_worktree_only) { if (mark_ce_flags(path, CE_SKIP_WORKTREE, mark_skip_worktree_only == MARK_FLAG)) die("Unable to mark file %s", path); return; } if (force_remove) { if (remove_file_from_cache(path)) die("git update-index: unable to remove %s", path); report("remove '%s'", path); return; } if (process_path(path)) die("Unable to process path %s", path); report("add '%s'", path); }
static void update_one(const char *path) { int stat_errno = 0; struct stat st; if (mark_valid_only || mark_skip_worktree_only || force_remove || mark_fsmonitor_only) st.st_mode = 0; else if (lstat(path, &st) < 0) { st.st_mode = 0; stat_errno = errno; } /* else stat is valid */ if (!verify_path(path, st.st_mode)) { fprintf(stderr, "Ignoring path %s\n", path); return; } if (mark_valid_only) { if (mark_ce_flags(path, CE_VALID, mark_valid_only == MARK_FLAG)) die("Unable to mark file %s", path); return; } if (mark_skip_worktree_only) { if (mark_ce_flags(path, CE_SKIP_WORKTREE, mark_skip_worktree_only == MARK_FLAG)) die("Unable to mark file %s", path); return; } if (mark_fsmonitor_only) { if (mark_ce_flags(path, CE_FSMONITOR_VALID, mark_fsmonitor_only == MARK_FLAG)) die("Unable to mark file %s", path); return; } if (force_remove) { if (remove_file_from_cache(path)) die("git update-index: unable to remove %s", path); report("remove '%s'", path); return; } if (process_path(path, &st, stat_errno)) die("Unable to process path %s", path); report("add '%s'", path); }