diff options
author | Joris Vink <joris@cvs.openbsd.org> | 2007-09-22 15:57:25 +0000 |
---|---|---|
committer | Joris Vink <joris@cvs.openbsd.org> | 2007-09-22 15:57:25 +0000 |
commit | a634a04dd7e99d9335ce37798fb7b6335c3495f5 (patch) | |
tree | 0dee1c3902b0e46c97ef57a410b6a9fb3abbf645 /usr.bin/cvs/entries.c | |
parent | bb8e3dc5f95efbf282454fe0d1433c4fe85bb7db (diff) |
we no longer create a 0 sized file in our /tmp/cvs-serv<pid> server
directory when a client sends us info about a file that is up to date.
instead, remember the file is up to date in our CVS/Entries. Saves us a lot
of headaches on very big trees like src/
Diffstat (limited to 'usr.bin/cvs/entries.c')
-rw-r--r-- | usr.bin/cvs/entries.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/cvs/entries.c b/usr.bin/cvs/entries.c index 12b8bf92365..d1824b04e09 100644 --- a/usr.bin/cvs/entries.c +++ b/usr.bin/cvs/entries.c @@ -1,4 +1,4 @@ -/* $OpenBSD: entries.c,v 1.80 2007/09/04 19:07:04 tobias Exp $ */ +/* $OpenBSD: entries.c,v 1.81 2007/09/22 15:57:24 joris Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * @@ -20,6 +20,7 @@ #include <unistd.h> #include "cvs.h" +#include "remote.h" #define CVS_ENTRIES_NFIELDS 6 #define CVS_ENTRIES_DELIM '/' @@ -154,9 +155,13 @@ cvs_ent_parse(const char *entry) if (fields[3][0] == '\0' || strncmp(fields[3], CVS_DATE_DUMMY, sizeof(CVS_DATE_DUMMY) - 1) == 0 || strncmp(fields[3], "Initial ", 8) == 0 || - strncmp(fields[3], "Result of merge", 15) == 0) + strncmp(fields[3], "Result of merge", 15) == 0) { ent->ce_mtime = CVS_DATE_DMSEC; - else { + } else if (cvs_server_active == 1 && + strncmp(fields[3], CVS_SERVER_UNCHANGED, + strlen(CVS_SERVER_UNCHANGED)) == 0) { + ent->ce_mtime = CVS_SERVER_UPTODATE; + } else { /* Date field can be a '+=' with remote to indicate * conflict. In this case do nothing. */ if (strptime(fields[3], "%a %b %d %T %Y", &t) != NULL) { |