summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Lockert <tholo@cvs.openbsd.org>1998-08-22 20:55:04 +0000
committerThorsten Lockert <tholo@cvs.openbsd.org>1998-08-22 20:55:04 +0000
commit13bd6dae8832d1ec1e294f2288647158632d9d15 (patch)
tree641d5ad94a92e6936675a888627581bbba18e5b9
parentef97cc6c11f61403fd0f39b0d7c350286c611f93 (diff)
Latest version from Cyclic
-rw-r--r--gnu/usr.bin/cvs/doc/ChangeLog42
-rw-r--r--gnu/usr.bin/cvs/doc/cvsclient.texi20
-rw-r--r--gnu/usr.bin/cvs/man/ChangeLog5
-rw-r--r--gnu/usr.bin/cvs/src/build_src.com2
-rw-r--r--gnu/usr.bin/cvs/src/tag.c15
-rw-r--r--gnu/usr.bin/cvs/src/version.c3
-rw-r--r--gnu/usr.bin/cvs/windows-NT/ChangeLog20
-rw-r--r--gnu/usr.bin/cvs/windows-NT/config.h4
-rw-r--r--gnu/usr.bin/cvs/windows-NT/filesubr.c47
-rw-r--r--gnu/usr.bin/cvs/windows-NT/startserver.c32
10 files changed, 175 insertions, 15 deletions
diff --git a/gnu/usr.bin/cvs/doc/ChangeLog b/gnu/usr.bin/cvs/doc/ChangeLog
index a779ff62877..e9e4925939e 100644
--- a/gnu/usr.bin/cvs/doc/ChangeLog
+++ b/gnu/usr.bin/cvs/doc/ChangeLog
@@ -1,3 +1,45 @@
+Sun Jul 26 02:42:20 1998 Noel Cragg <noel@swish.red-bean.com>
+
+ * cvs.texinfo (config): TopLevelAdmin variable.
+
+ * cvsclient.texi (Requests): fix typo.
+
+1998-07-14 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvsclient.texi (Requests): "remove" is like "add" in the sense
+ that it is the "ci" request which does most of the work.
+
+1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.texinfo (Excluding directories): Fix order of
+ "!first-dir/sdir" and "first-dir" to match what CVS actually
+ accepts. Reported by Tim McIntosh of sterling.com.
+
+1998-06-09 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.texinfo (Using keywords): Rewrite to be less specific to
+ source code in C. The old text was worse than that; it was
+ specific to certain versions of GCC (not even current GCC's, I
+ don't think) (reported most recently by Mitchell Perilstein;
+ if memory serves by others before that).
+
+1998-06-08 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.texinfo (Concurrency): Also mention #cvs.lock. Don't
+ mention #cvs.tfl; it is quite old (before CVS 1.5).
+ (Locks, Backing up, Concurrency): Add more index entries.
+
+1998-06-03 Ian Lance Taylor <ian@cygnus.com>
+
+ * cvs.texinfo (Tracking sources): Clarify that the vendor branch
+ is only made the head revision when you import a new file, not any
+ time you import a file.
+
+1998-05-23 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.texinfo (What is CVS?): info-cvs-request is now at gnu.org
+ and is no longer handled by a human (hallelujah).
+
1998-05-12 Jim Meyering <meyering@ascend.com>
* cvs.texinfo: Add an info dir entry.
diff --git a/gnu/usr.bin/cvs/doc/cvsclient.texi b/gnu/usr.bin/cvs/doc/cvsclient.texi
index 3b4ab41142f..6f0139976b7 100644
--- a/gnu/usr.bin/cvs/doc/cvsclient.texi
+++ b/gnu/usr.bin/cvs/doc/cvsclient.texi
@@ -544,7 +544,7 @@ for the original directory, then the command.
The @var{local-directory} is relative to
the top level at which the command is occurring (i.e. the last
@code{Directory} which is sent before the command);
-to indicate that top level, @samp{.} should be send for
+to indicate that top level, @samp{.} should be sent for
@var{local-directory}.
Here is an example of where a client gets @var{repository} and
@@ -919,7 +919,6 @@ directory.
@itemx tag \n
@itemx status \n
@itemx log \n
-@itemx remove \n
@itemx admin \n
@itemx history \n
@itemx watchers \n
@@ -1061,6 +1060,23 @@ directories, as described above), use @samp{.} for
@var{local-directory} may not get an error, but it will get you strange
@code{Checked-in} responses from the buggy servers.
+@item remove \n
+Response expected: yes. Remove a file. This uses any
+previous @code{Argument}, @code{Directory}, @code{Entry}, or
+@code{Modified} requests, if they have been sent. The
+last @code{Directory} sent specifies the working directory at the time
+of the operation.
+
+Note that this request does not actually do anything to the repository;
+the only effect of a successful @code{remove} request is to supply the
+client with a new entries line containing @samp{-} to indicate a removed
+file. In fact, the client probably could perform this operation without
+contacting the server, although using @code{remove} may cause the server
+to perform a few more checks.
+
+The client sends a subsequent @code{ci} request to actually record the
+removal in the repository.
+
@item watch-on \n
@itemx watch-off \n
@itemx watch-add \n
diff --git a/gnu/usr.bin/cvs/man/ChangeLog b/gnu/usr.bin/cvs/man/ChangeLog
index c873cb27c39..f131d3e855b 100644
--- a/gnu/usr.bin/cvs/man/ChangeLog
+++ b/gnu/usr.bin/cvs/man/ChangeLog
@@ -1,3 +1,8 @@
+1998-06-28 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.1: Update various items which were out of date. Mostly
+ these related to CVS no longer calling external RCS programs.
+
Mon Jan 12 11:10:21 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
* cvs.1: Refer to Cederqvist as Cederqvist not as cvs.texinfo.
diff --git a/gnu/usr.bin/cvs/src/build_src.com b/gnu/usr.bin/cvs/src/build_src.com
index 3adb1e4f53d..3d3baa65891 100644
--- a/gnu/usr.bin/cvs/src/build_src.com
+++ b/gnu/usr.bin/cvs/src/build_src.com
@@ -33,7 +33,7 @@ $ CC no_diff.c
$ CC parseinfo.c
$ CC patch.c
$ CC rcs.c
-$ CC rcscmds.c
+$ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.diff]) rcscmds.c
$ CC recurse.c
$ CC release.c
$ CC remove.c
diff --git a/gnu/usr.bin/cvs/src/tag.c b/gnu/usr.bin/cvs/src/tag.c
index a97da5c1237..a5b8794fe10 100644
--- a/gnu/usr.bin/cvs/src/tag.c
+++ b/gnu/usr.bin/cvs/src/tag.c
@@ -275,8 +275,17 @@ check_fileproc (callerdat, finfo)
error (0, 0, "nothing known about %s", finfo->file);
return (1);
}
- p->data = RCS_getversion(vers->srcfile, numtag, date, force_tag_match,
- (int *) NULL);
+
+ /* Here we duplicate the calculation in tag_fileproc about which
+ version we are going to tag. There probably are some subtle races
+ (e.g. numtag is "foo" which gets moved between here and
+ tag_fileproc). */
+ if (numtag == NULL && date == NULL)
+ p->data = xstrdup (vers->vn_user);
+ else
+ p->data = RCS_getversion (vers->srcfile, numtag, date,
+ force_tag_match, NULL);
+
if (p->data != NULL)
{
int addit = 1;
@@ -377,7 +386,7 @@ pretag_proc(repository, filter)
run_arg (delete_flag ? "del" : force_tag_move ? "mov" : "add");
run_arg (repository);
walklist(tlist, pretag_list_proc, NULL);
- return (run_exec(RUN_TTY, RUN_TTY, RUN_TTY, RUN_NORMAL|RUN_REALLY));
+ return (run_exec (RUN_TTY, RUN_TTY, RUN_TTY, RUN_NORMAL));
}
static void
diff --git a/gnu/usr.bin/cvs/src/version.c b/gnu/usr.bin/cvs/src/version.c
index d5fb085d078..479e5e6af77 100644
--- a/gnu/usr.bin/cvs/src/version.c
+++ b/gnu/usr.bin/cvs/src/version.c
@@ -12,7 +12,8 @@
#include "cvs.h"
-char *version_string = "\nConcurrent Versions System (CVS) 1.9.28";
+/* NOTE: remember to remove `Halibut' when patching this code. */
+char *version_string = "\nConcurrent Versions System (CVS) 1.10 `Halibut'";
#ifdef CLIENT_SUPPORT
#ifdef SERVER_SUPPORT
diff --git a/gnu/usr.bin/cvs/windows-NT/ChangeLog b/gnu/usr.bin/cvs/windows-NT/ChangeLog
index 1de19e3bed2..7ccf78d80a4 100644
--- a/gnu/usr.bin/cvs/windows-NT/ChangeLog
+++ b/gnu/usr.bin/cvs/windows-NT/ChangeLog
@@ -1,3 +1,23 @@
+1998-07-01 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * startserver.c (wnt_shutdown_server): Check for errors from close().
+
+1998-06-30 Noel Cragg
+
+ * startserver.c: add a global variable which notes if we've opened
+ a socket. Since the code in client.c will call wnt_shutdown_server
+ regardless of which client method we've selected, we need to make
+ sure and not call shutdown or closesocket on a pipe (it won't work).
+ (wnt_shutdown_server): use the new global to decide whether or not
+ to call socket routines or simply use close.
+
+
+1998-06-11 Jim Kingdon
+
+ * config.h (CVS_STAT, CVS_LSTAT): Define.
+ * filesubr.c, config.h (wnt_stat, wnt_lstat, check_statbuf):
+ New functions.
+
1998-04-09 Jim Kingdon <kingdon@harvey.cyclic.com>
* filesubr.c (link_file): Remove; no longer used.
diff --git a/gnu/usr.bin/cvs/windows-NT/config.h b/gnu/usr.bin/cvs/windows-NT/config.h
index f385726166c..11542164097 100644
--- a/gnu/usr.bin/cvs/windows-NT/config.h
+++ b/gnu/usr.bin/cvs/windows-NT/config.h
@@ -235,6 +235,10 @@
/* Under Windows NT, mkdir only takes one argument. */
#define CVS_MKDIR wnt_mkdir
extern int wnt_mkdir (const char *PATH, int MODE);
+#define CVS_STAT wnt_stat
+extern int wnt_stat ();
+#define CVS_LSTAT wnt_lstat
+extern int wnt_lstat ();
/* This function doesn't exist under Windows NT; we
provide a stub. */
diff --git a/gnu/usr.bin/cvs/windows-NT/filesubr.c b/gnu/usr.bin/cvs/windows-NT/filesubr.c
index 0008b112a0b..44df75b4b27 100644
--- a/gnu/usr.bin/cvs/windows-NT/filesubr.c
+++ b/gnu/usr.bin/cvs/windows-NT/filesubr.c
@@ -855,3 +855,50 @@ expand_wild (argc, argv, pargc, pargv)
*pargc = new_argc;
*pargv = new_argv;
}
+
+static void check_statbuf (const char *file, struct stat *sb)
+{
+ /* Win32 processes file times in a 64 bit format
+ (see Win32 functions SetFileTime and GetFileTime).
+ If the file time on a file doesn't fit into the
+ 32 bit time_t format, then stat will set that time
+ to -1. This would be OK, except that functions
+ like ctime() don't check for validity. So what we
+ do here is to give a error on -1. A cleaner solution
+ might be to change CVS's interfaces to return a time
+ in RCS format (for example), and then implement it
+ on Win32 via GetFileTime, but that would be a lot of
+ hair and I'm not sure there is much payoff. */
+ if (sb->st_mtime == (time_t) -1)
+ error (1, 0, "invalid modification time for %s", file);
+ if (sb->st_ctime == (time_t) -1)
+ /* I'm not sure what this means on windows. It
+ might be a creation time (unlike unix).... */
+ error (1, 0, "invalid ctime for %s", file);
+ if (sb->st_atime == (time_t) -1)
+ error (1, 0, "invalid access time for %s", file);
+}
+
+int
+wnt_stat (const char *file, struct stat *sb)
+{
+ int retval;
+
+ retval = stat (file, sb);
+ if (retval < 0)
+ return retval;
+ check_statbuf (file, sb);
+ return retval;
+}
+
+int
+wnt_lstat (const char *file, struct stat *sb)
+{
+ int retval;
+
+ retval = lstat (file, sb);
+ if (retval < 0)
+ return retval;
+ check_statbuf (file, sb);
+ return retval;
+}
diff --git a/gnu/usr.bin/cvs/windows-NT/startserver.c b/gnu/usr.bin/cvs/windows-NT/startserver.c
index 0856d972b20..cbcde61cece 100644
--- a/gnu/usr.bin/cvs/windows-NT/startserver.c
+++ b/gnu/usr.bin/cvs/windows-NT/startserver.c
@@ -10,6 +10,12 @@
#include <io.h>
#include <errno.h>
+/* Keep track of whether we've opened a socket so that wnt_shutdown_server
+ can do the correct thing. We don't want to call shutdown or
+ closesocket on a pipe. */
+
+static int opened_a_socket = 0;
+
void
wnt_start_server (int *tofd, int *fromfd,
char *client_user,
@@ -52,19 +58,29 @@ wnt_start_server (int *tofd, int *fromfd,
*tofd = read_fd;
*fromfd = read_fd;
free (command);
+
+ opened_a_socket = 1;
}
void
wnt_shutdown_server (int fd)
{
- SOCKET s;
+ if (opened_a_socket)
+ {
+ SOCKET s;
- s = fd;
- if (shutdown (s, 2) == SOCKET_ERROR)
- error (1, 0, "couldn't shutdown server connection: %s",
- SOCK_STRERROR (SOCK_ERRNO));
- if (closesocket (s) == SOCKET_ERROR)
- error (1, 0, "couldn't close server connection: %s",
- SOCK_STRERROR (SOCK_ERRNO));
+ s = fd;
+ if (shutdown (s, 2) == SOCKET_ERROR)
+ error (1, 0, "couldn't shutdown server connection: %s",
+ SOCK_STRERROR (SOCK_ERRNO));
+ if (closesocket (s) == SOCKET_ERROR)
+ error (1, 0, "couldn't close server connection: %s",
+ SOCK_STRERROR (SOCK_ERRNO));
+ }
+ else
+ {
+ if (close (fd) < 0)
+ error (1, errno, "cannot close server connection");
+ }
}