X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=checkout-cache.c;h=a1ef9448c35fa76ea036faae1a789f0cb654198d;hb=2d280e1c5e6fdcf5428e60219eae14a2c6629c51;hp=f65be62b4abad184bd755884fb72681fc28c8b3b;hpb=bb233d690a9782e1570dc93ead2bf04aaca7cfe4;p=git.git diff --git a/checkout-cache.c b/checkout-cache.c index f65be62b..a1ef9448 100644 --- a/checkout-cache.c +++ b/checkout-cache.c @@ -34,12 +34,12 @@ */ #include "cache.h" -static int force = 0, quiet = 0; +static int force = 0, quiet = 0, not_new = 0; static void create_directories(const char *path) { int len = strlen(path); - char *buf = malloc(len + 1); + char *buf = xmalloc(len + 1); const char *slash = path; while ((slash = strchr(slash+1, '/')) != NULL) { @@ -118,7 +118,8 @@ static int checkout_entry(struct cache_entry *ce, const char *base_dir) * just do the right thing) */ unlink(path); - } + } else if (not_new) + return 0; return write_entry(ce, path); } @@ -182,6 +183,10 @@ int main(int argc, char **argv) quiet = 1; continue; } + if (!strcmp(arg, "-n")) { + not_new = 1; + continue; + } if (!memcmp(arg, "--prefix=", 9)) { base_dir = arg+9; continue;