summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/entries.c
diff options
context:
space:
mode:
authorJoris Vink <joris@cvs.openbsd.org>2007-09-22 15:57:25 +0000
committerJoris Vink <joris@cvs.openbsd.org>2007-09-22 15:57:25 +0000
commita634a04dd7e99d9335ce37798fb7b6335c3495f5 (patch)
tree0dee1c3902b0e46c97ef57a410b6a9fb3abbf645 /usr.bin/cvs/entries.c
parentbb8e3dc5f95efbf282454fe0d1433c4fe85bb7db (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.c11
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) {