Apply patches from the cvs-current package.

This commit is contained in:
christos 2000-09-04 22:12:05 +00:00
parent d30d584a91
commit 1aedcfb5d3
15 changed files with 64 additions and 25 deletions

View File

@ -40,6 +40,10 @@
@setfilename cvs.info
@include CVSvn.texi
@settitle CVS---Concurrent Versions System
@dircategory Programming & development tools
@direntry
* CVS: (cvs) CVS Reference Manual.
@end direntry
@setchapternewpage odd
@c -- TODO list:
@ -47,14 +51,6 @@
@c -- Also places marked with FIXME should be manual
@c problems (as opposed to FIXCVS for CVS problems).
@ifinfo
@format
START-INFO-DIR-ENTRY
* CVS: (cvs). Concurrent Versions System
END-INFO-DIR-ENTRY
@end format
@end ifinfo
@ifinfo
Copyright @copyright{} 1992, 1993 Signum Support AB
Copyright @copyright{} 1993, 1994 Free Software Foundation, Inc.

View File

@ -358,11 +358,11 @@ file; see
Incorporate a set of updates from off-site into the source repository,
as a ``vendor branch''. (Changes repository.)
.TP
+.B init
+Initialize a repository by adding the CVSROOT subdirectory and some default
+control files. You must use this command or initialize the repository in
+some other way before you can use it.
+.TP
.B init
Initialize a repository by adding the CVSROOT subdirectory and some default
control files. You must use this command or initialize the repository in
some other way before you can use it.
.TP
.B log
Display
log information.

View File

@ -180,7 +180,7 @@ checkout (argc, argv)
case 'p':
pipeout = 1;
run_module_prog = 0; /* don't run module prog when piping */
noexec = 1; /* so no locks will be created */
noexec = nolock = 1; /* so no locks will be created */
break;
case 'c':
cat = 1;

View File

@ -4419,6 +4419,16 @@ the :server: access method is not supported by this port of CVS");
error (1, 0,
"This server does not support the global -n option.");
}
if (nolock && !noexec)
{
if (have_global)
{
send_to_server ("Global_option -u\012", 0);
}
else
error (1, 0,
"This server does not support the global -u option.");
}
if (quiet)
{
if (have_global)

View File

@ -1005,7 +1005,9 @@ warning: file `%s' seems to still contain conflict indicators",
xmalloc (sizeof (struct logfile_info)));
li->type = status;
li->tag = xstrdup (vers->tag);
li->rev_old = xstrdup (vers->vn_rcs);
/* If the file was re-added, we want the revision in the commitlog
to be NONE, not the previous dead revision. */
li->rev_old = status == T_ADDED ? NULL : xstrdup (vers->vn_rcs);
li->rev_new = NULL;
p->data = (char *) li;
(void) addnode (ulist, p);

View File

@ -393,6 +393,7 @@ extern char *emptydir_name PROTO ((void));
extern int trace; /* Show all commands */
extern int noexec; /* Don't modify disk anywhere */
extern int nolock; /* Don't create locks */
extern int logoff; /* Don't write history entry */
extern int top_level_admin;

View File

@ -726,7 +726,7 @@ history_write (type, update_dir, revs, name, repository)
if (trace)
fprintf (stderr, "%s-> fopen(%s,a)\n",
CLIENT_SERVER_STR, fname);
if (noexec)
if (nolock)
goto out;
fd = CVS_OPEN (fname, O_WRONLY | O_APPEND | O_CREAT | OPEN_BINARY, 0666);
if (fd < 0)

View File

@ -395,7 +395,7 @@ Reader_Lock (xrepository)
FILE *fp;
char *tmp;
if (noexec)
if (nolock)
return (0);
/* we only do one directory at a time for read locks! */
@ -467,7 +467,7 @@ Writer_Lock (list)
{
char *wait_repos;
if (noexec)
if (nolock)
return (0);
/* We only know how to do one list at a time */

View File

@ -589,6 +589,15 @@ title_proc (p, closure)
strlen (str_list) + strlen (p->key) + 5);
(void) strcat (str_list, p->key);
break;
case 't':
str_list =
xrealloc (str_list,
(strlen (str_list)
+ (li->tag ? strlen (li->tag) : 0)
+ 10)
);
(void) strcat (str_list, (li->tag ? li->tag : ""));
break;
case 'V':
str_list =
xrealloc (str_list,

View File

@ -41,6 +41,7 @@ int really_quiet = 0;
int quiet = 0;
int trace = 0;
int noexec = 0;
int nolock = 0;
int logoff = 0;
/* Set if we should be writing CVSADM directories at top level. At
@ -229,6 +230,7 @@ static const char *const opt_usage[] =
" -w Make checked-out files read-write (default).\n",
" -l Turn history logging off.\n",
" -n Do not execute anything that will change the disk.\n",
" -u Don't create locks (implies -l).\n",
" -t Show trace of program execution -- try with -n.\n",
" -v CVS version and copyright.\n",
" -T tmpdir Use 'tmpdir' for temporary files.\n",
@ -509,7 +511,7 @@ main (argc, argv)
opterr = 1;
while ((c = getopt_long
(argc, argv, "+Qqrwtnlvb:T:e:d:Hfz:s:xa", long_options, &option_index))
(argc, argv, "+Qqrwtnulvb:T:e:d:Hfz:s:xa", long_options, &option_index))
!= EOF)
{
switch (c)
@ -547,6 +549,8 @@ main (argc, argv)
break;
case 'n':
noexec = 1;
case 'u': /* Fall through */
nolock = 1;
case 'l': /* Fall through */
logoff = 1;
break;
@ -926,7 +930,7 @@ Copyright (c) 1989-1998 Brian Berliner, david d `zoo' zuhn, \n\
* BUT, only if the history file exists.
*/
if (!client_active)
if (!client_active && !nolock)
{
char *path;
int save_errno;

View File

@ -3720,6 +3720,9 @@ static const struct rcs_keyword keywords[] =
{ KEYWORD_INIT ("Revision") },
{ KEYWORD_INIT ("Source") },
{ KEYWORD_INIT ("State") },
#ifdef LOCALID
{ KEYWORD_INIT (LOCALID) },
#endif
{ NULL, 0 }
};
enum keyword
@ -3734,7 +3737,8 @@ enum keyword
KEYWORD_RCSFILE,
KEYWORD_REVISION,
KEYWORD_SOURCE,
KEYWORD_STATE
KEYWORD_STATE,
KEYWORD_LOCALID
};
/* Convert an RCS date string into a readable string. This is like
@ -3962,6 +3966,7 @@ expand_keywords (rcs, ver, name, log, loglen, expand, buf, len, retbuf, retlen)
case KEYWORD_HEADER:
case KEYWORD_ID:
case KEYWORD_LOCALID:
{
char *path;
int free_path;

View File

@ -507,7 +507,7 @@ do_recursion (frame)
if (frame->flags == R_SKIP_ALL)
return (0);
should_readlock = noexec ? 0 : frame->readlock;
should_readlock = nolock ? 0 : frame->readlock;
/* The fact that locks are not active here is what makes us fail to have
the
@ -549,7 +549,7 @@ do_recursion (frame)
*/
if (server_active
/* If there are writelocks around, we cannot pause here. */
&& (should_readlock || noexec))
&& (should_readlock || nolock))
server_pause_check();
#endif

View File

@ -794,6 +794,8 @@ E Protocol error: Root says \"%s\" but pserver says \"%s\"",
nothing. But for rsh, we need to do it now. */
parse_config (CVSroot_directory);
if (!nolock)
{
path = malloc (strlen (CVSroot_directory)
+ sizeof (CVSROOTADM)
+ sizeof (CVSROOTADM_HISTORY)
@ -824,6 +826,7 @@ Sorry, you don't have read/write access to the history file %s", path);
pending_error = save_errno;
}
free (path);
}
#ifdef HAVE_PUTENV
env = malloc (strlen (CVSROOT_ENV) + strlen (CVSroot_directory) + 1 + 1);
@ -2154,6 +2157,8 @@ serve_global_option (arg)
{
case 'n':
noexec = 1;
case 'u':
nolock = 1;
break;
case 'q':
quiet = 1;

View File

@ -856,7 +856,7 @@ Numeric tag %s contains characters other than digits and '.'", name);
/* The tags is valid but not mentioned in val-tags. Add it. */
datum value;
if (noexec)
if (nolock)
{
if (db != NULL)
dbm_close (db);

View File

@ -1366,11 +1366,18 @@ VERS: ", 0);
xchmod (finfo->file, 1);
else
{
mode_t oumask, writeaccess;
/* We know that we are the server here, so
although xchmod checks umask, we don't bother. */
mode |= (((mode & S_IRUSR) ? S_IWUSR : 0)
/* Not bothering with the umask makes the files
mode 0777 on old clients, though. -chb */
oumask = umask(0);
(void) umask(oumask);
writeaccess = (((mode & S_IRUSR) ? S_IWUSR : 0)
| ((mode & S_IRGRP) ? S_IWGRP : 0)
| ((mode & S_IROTH) ? S_IWOTH : 0));
mode |= (~oumask) & writeaccess;
}
}