Browse Source

make checkout-index '-a' flag saner.

The original semantics of pretending as if all files were
specified where '-a' appeared and using only the flags given so
far was too confusing.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Linus Torvalds 20 years ago committed by Junio C Hamano
parent
commit
a65a686f49
  1. 35
      checkout-index.c

35
checkout-index.c

@ -82,8 +82,9 @@ static struct cache_file cache_file;


int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int i, force_filename = 0; int i;
int newfd = -1; int newfd = -1;
int all = 0;


if (read_cache() < 0) { if (read_cache() < 0) {
die("invalid cache"); die("invalid cache");
@ -91,28 +92,28 @@ int main(int argc, char **argv)


for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
const char *arg = argv[i]; const char *arg = argv[i];
if (!force_filename) {
if (!strcmp(arg, "-a")) {
checkout_all();
continue;
}
if (!strcmp(arg, "--")) { if (!strcmp(arg, "--")) {
force_filename = 1; i++;
break;
}
if (!strcmp(arg, "-a") || !strcmp(arg, "--all")) {
all = 1;
continue; continue;
} }
if (!strcmp(arg, "-f")) { if (!strcmp(arg, "-f") || !strcmp(arg, "--force")) {
state.force = 1; state.force = 1;
continue; continue;
} }
if (!strcmp(arg, "-q")) { if (!strcmp(arg, "-q") || !strcmp(arg, "--quiet")) {
state.quiet = 1; state.quiet = 1;
continue; continue;
} }
if (!strcmp(arg, "-n")) { if (!strcmp(arg, "-n") || !strcmp(arg, "--no-create")) {
state.not_new = 1; state.not_new = 1;
continue; continue;
} }
if (!strcmp(arg, "-u")) { if (!strcmp(arg, "-u") || !strcmp(arg, "--index")) {
state.refresh_cache = 1; state.refresh_cache = 1;
if (newfd < 0) if (newfd < 0)
newfd = hold_index_file_for_update newfd = hold_index_file_for_update
@ -129,7 +130,9 @@ int main(int argc, char **argv)
} }
if (arg[0] == '-') if (arg[0] == '-')
usage(checkout_cache_usage); usage(checkout_cache_usage);
break;
} }

if (state.base_dir_len) { if (state.base_dir_len) {
/* when --prefix is specified we do not /* when --prefix is specified we do not
* want to update cache. * want to update cache.
@ -140,9 +143,19 @@ int main(int argc, char **argv)
} }
state.refresh_cache = 0; state.refresh_cache = 0;
} }

/* Check out named files first */
for ( ; i < argc; i++) {
const char *arg = argv[i];

if (all)
die("git-checkout-index: don't mix '--all' and explicit filenames");
checkout_file(arg); checkout_file(arg);
} }


if (all)
checkout_all();

if (0 <= newfd && if (0 <= newfd &&
(write_cache(newfd, active_cache, active_nr) || (write_cache(newfd, active_cache, active_nr) ||
commit_index_file(&cache_file))) commit_index_file(&cache_file)))

Loading…
Cancel
Save