mostly merge latest MirBSD code
authormirabilos <m@mirbsd.org>
Fri, 21 Oct 2016 20:22:06 +0000 (22:22 +0200)
committermirabilos <m@mirbsd.org>
Fri, 21 Oct 2016 20:22:06 +0000 (22:22 +0200)
13 files changed:
configure.in
doc/cvs.man.footer
doc/cvs.man.header
doc/cvs.texinfo
lib/vasnprintf.c
src/add.c
src/cvs.h
src/main.c
src/mkmodules.c
src/parseinfo.c
src/server.c
src/update.c
src/vers_ts.c

index e09fe3d..59ba563 100644 (file)
@@ -15,7 +15,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.])
 
-AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirDebian-11],
+AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirDebian-16],
        [bug-cvs@nongnu.org],[cvs])
 AC_CONFIG_SRCDIR(src/cvs.h)
 AC_CONFIG_AUX_DIR(build-aux)
@@ -156,6 +156,8 @@ AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS(\
        direct.h \
        fcntl.h \
+       getopt.h \
+       inttypes.h \
        io.h \
        memory.h \
        ndbm.h \
@@ -163,11 +165,14 @@ AC_CHECK_HEADERS(\
        syslog.h \
        sys/bsdtypes.h \
        sys/file.h \
+       sys/inttypes.h \
        sys/param.h \
        sys/resource.h \
        sys/select.h \
        unistd.h \
-       utime.h\
+       utime.h \
+       wctype.h \
+       zlib.h \
 )
 AC_HEADER_STAT
 
@@ -181,7 +186,8 @@ AC_CHECK_MEMBERS([struct stat.st_blksize])
 AC_CHECK_MEMBERS([struct stat.st_rdev])
 
 AC_FUNC_FSEEKO
-AC_CHECK_FUNC(fseeko)
+AC_FUNC_ALLOCA
+AC_CHECK_FUNCS([fseeko])
 if test $ac_cv_func_fseeko = no; then
     AC_LIBOBJ(fseeko)
     AC_LIBOBJ(ftello)
index 2987e1a..7c47110 100644 (file)
@@ -54,5 +54,6 @@ to CVS, development of CVS, and more, see:
 .BR patch ( 1 ),
 .BR rcs ( 1 ),
 .BR rcsdiff ( 1 ),
+.BR rcsintro ( 1 ),
 .BR rcsmerge ( 1 ),
 .BR rlog ( 1 ).
index ddc33a8..331a137 100644 (file)
@@ -56,9 +56,10 @@ cvs \- Concurrent Versions System
 This manpage is a summary of some of the features of
 \fBcvs\fP.  It is auto-generated from an appendix of the CVS manual.
 For more in-depth documentation, please consult the
-Cederqvist manual (via the
-cvs(GNU) link in the MirBSD online (HTML) manual pages, the
-.B info CVS
+Cederqvist manual (via the cvs(GNU) and cvsclient(GNU) links
+in the MirBSD online (HTML) manual pages, the
+.B info
+.I cvs
 command or otherwise,
 as described in the SEE ALSO section of this manpage).  Cross-references
 in this man page refer to nodes in the same.
index d11a5e1..5703101 100644 (file)
@@ -2,7 +2,7 @@
 @comment Documentation for CVS.
 @setfilename cvs.info
 @afourpaper
-@comment $MirOS: contrib/hosted/tg/deb/cvs/doc/cvs.texinfo,v 1.6 2013/06/26 18:15:51 tg Exp $
+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.24 2016/10/21 19:15:56 tg Exp $
 @macro copyleftnotice
 @noindent
 Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
@@ -11,6 +11,9 @@ Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
 
 @multitable @columnfractions .12 .88
 @item Portions
+@item @tab Copyright @copyright{} 2003, 2004, 2005, 2007, 2009, 2010, 2011,
+                                  2013, 2014, 2015, 2016
+                                  mirabilos, The MirOS Project
 @item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
                                   Derek R. Price,
 @item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
@@ -105,7 +108,7 @@ approved by the Free Software Foundation.
 @end direntry
 @dircategory Individual utilities
 @direntry
-* cvs: (cvs)CVS commands.       Concurrent Versions System
+* cvs: (cvs)CVS command list.   Concurrent Versions System
 @end direntry
 
 @comment The titlepage section does not appear in the Info file.
@@ -183,6 +186,7 @@ References.
 * Troubleshooting::             Some tips when nothing works
 * Credits::                     Some of the contributors to this manual
 * BUGS::                        Dealing with bugs in CVS or this manual
+* CVS command list::            Alphabetical list of all CVS commands
 * Index::                       Index
 @end menu
 
@@ -7198,7 +7202,7 @@ The date (UTC) the revision was checked in, in a format suitable
 for the Berkeley mdoc macro processing.
 
 @example
-$Mdocdate: June 26 2013 $
+$Mdocdate: October 21 2016 $
 @end example
 
 @cindex Header keyword
@@ -7569,8 +7573,8 @@ then only the $@splitrcskeyword{MyBSD}$ keyword would be expanded.
 A list may be used. The this example:
 
 @example
-        # Add a "MyBSD" keyword and restrict keyword
-        # expansion to the MyBSD, Name, Date and Mdocdate keywords.
+        # Add a "MyBSD" keyword and restrict keyword expansion
+        # to the MyBSD, Name, Date and Mdocdate keywords.
         LocalKeyword=MyBSD=CVSHeader
         KeywordExpand=iMyBSD,Name,Date,Mdocdate
 @end example
@@ -8123,7 +8127,9 @@ supported.
 This appendix describes the overall structure of
 @sc{cvs} commands, and describes some commands in
 detail (others are described elsewhere; for a quick
-reference to @sc{cvs} commands, @pxref{Invoking CVS}).
+reference to @sc{cvs} commands, @pxref{Invoking CVS},
+and for an alphabetical list of all @sc{cvs} commands,
+@pxref{CVS command list}).
 @c The idea is that we want to move the commands which
 @c are described here into the main body of the manual,
 @c in the process reorganizing the manual to be
@@ -8146,17 +8152,17 @@ reference to @sc{cvs} commands, @pxref{Invoking CVS}).
 * Global options::              Options you give to the left of cvs_command
 * Common options::              Options you give to the right of cvs_command
 * Date input formats::         Acceptable formats for date specifications
-* admin::                       Administration
+* admin::                       Administration front-end for RCS
 * annotate::                    What revision modified each line of a file?
 * checkout::                    Checkout sources for editing
 * commit::                      Check files into the repository
 * diff::                        Show differences between revisions
 * export::                      Export sources from CVS, similar to checkout
-* history::                     Show status of files and users
+* history::                     Show repository access history
 * import::                      Import sources into CVS, using vendor branches
-* log::                         Show log messages for files
+* log::                         Print out history information for files
 * ls & rls::                    List files in the repository
-* rdiff::                       'patch' format diffs between releases
+* rdiff::                       Create 'patch' format diffs between revisions
 * release::                     Indicate that a directory is no longer in use
 * server & pserver::            Act as a server for a client on stdin/stdout
 * suck::                        Download RCS ,v file raw
@@ -8834,7 +8840,7 @@ and @code{update}.
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node admin
-@appendixsec admin---Administration
+@appendixsec admin---Administration front-end for RCS
 @cindex Admin (subcommand)
 
 @itemize @bullet
@@ -9204,7 +9210,10 @@ this option has never done anything useful.
 
 @itemize @bullet
 @item
-Synopsis: annotate [options] files@dots{}
+Synopsis:
+annotate [options] files@dots{}
+
+rannotate [options] files@dots{}
 @item
 Requires: repository.
 @item
@@ -9531,8 +9540,7 @@ $ cvs checkout -D yesterday tc
 
 @itemize @bullet
 @item
-Synopsis: commit [-lnRf] [-m 'log_message' |
--F file] [-r revision] [files@dots{}]
+Synopsis: commit [-lnRf] [-m 'log_message' | -F file] [-r revision] [files@dots{}]
 @item
 Requires: working directory, repository.
 @item
@@ -10474,7 +10482,7 @@ Contributed examples are gratefully accepted.
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node history
-@appendixsec history---Show status of files and users
+@appendixsec history---Show repository access history
 @cindex history (subcommand)
 
 @itemize @bullet
@@ -10854,12 +10862,14 @@ See @ref{Tracking sources}, and @ref{From files}.
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node log
-@appendixsec log---Print out log information for files
+@appendixsec log---Print out history information for files
 @cindex log (subcommand)
 
 @itemize @bullet
 @item
 Synopsis: log [options] [files@dots{}]
+
+rlog [options] [files@dots{}]
 @item
 Requires: repository, working directory.
 @item
@@ -11077,13 +11087,15 @@ you would need to prefix the examples above with @code{env}.)
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node ls & rls
-@appendixsec ls & rls
+@appendixsec ls & rls---List files in the repository
 @cindex ls (subcommand)
 @cindex rls (subcommand)
 
 @itemize @bullet
 @item
 ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
+
+rls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
 @item
 Requires: repository for @code{rls}, repository & working directory for
 @code{ls}.
@@ -11175,7 +11187,7 @@ verifymsg
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node rdiff
-@appendixsec rdiff---'patch' format diffs between releases
+@appendixsec rdiff---Create 'patch' format diffs between revisions
 @cindex rdiff (subcommand)
 
 @itemize @bullet
@@ -11314,7 +11326,7 @@ File bar.h,v changed from revision 1.29.2.1 to 1.2
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node release
-@appendixsec release---Indicate that a Module is no longer in use
+@appendixsec release---Indicate that a directory is no longer in use
 @cindex release (subcommand)
 
 @itemize @bullet
@@ -11475,12 +11487,12 @@ supported beginning with @sc{cvs} release 1.12.13.
 
 @itemize @bullet
 @item
-suck module/path
+suck module/pa/th
 @item
 Requires: repository
 @end itemize
 
-Locates the file module/path,v or module/pa/Attic/th,v and downloads
+Locates the file module/pa/th,v or module/pa/Attic/th,v and downloads
 it raw as RCS comma-v file.
 
 Output consists of the real pathname of the comma-v file, relative to
@@ -11737,6 +11749,8 @@ This appendix describes how to invoke @sc{cvs}, with
 references to where each command or feature is
 described in detail.  For other references run the
 @code{cvs --help} command, or see @ref{Index}.
+For an alphabetical list of all @sc{cvs} commands,
+@pxref{CVS command list}).
 
 A @sc{cvs} command looks like:
 
@@ -11863,6 +11877,7 @@ Commands, command options, and command arguments:
 
 @table @code
 @c ------------------------------------------------------------
+@anchor{add}
 @item add [@var{options}] [@var{files}@dots{}]
 Add a new file/directory.  See @ref{Adding files}.
 
@@ -12100,6 +12115,7 @@ and @ref{Common options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{edit}
 @item edit [@var{options}] [@var{files}@dots{}]
 Get ready to edit a watched file.  See @ref{Editing files}.
 
@@ -12126,6 +12142,7 @@ behavior}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{editors}
 @item editors [@var{options}] [@var{files}@dots{}]
 See who is editing a watched file.  See @ref{Watch information}.
 
@@ -12271,14 +12288,17 @@ More wrappers.  See @ref{import options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{init}
 @item init
 Create a @sc{cvs} repository if it doesn't exist.  See
 @ref{Creating a repository}.
 
 @c ------------------------------------------------------------
+@anchor{kserver}
 @item kserver
 Kerberos authenticated server.
-See @ref{Kerberos authenticated}.
+@xref{server & pserver}.
+@xref{Kerberos authenticated}.
 
 @c ------------------------------------------------------------
 @item log [@var{options}] [@var{files}@dots{}]
@@ -12319,21 +12339,55 @@ Only list revisions checked in by specified logins.  See @ref{log options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{login}
 @item login
 Prompt for password for authenticating server.  See
 @ref{Password authentication client}.
 
 @c ------------------------------------------------------------
+@anchor{logout}
 @item logout
 Remove stored password for authenticating server.  See
 @ref{Password authentication client}.
 
 @c ------------------------------------------------------------
+@anchor{ls}
+@item ls [@var{options}] [@var{path}@dots{}]
+List files available from CVS. See @ref{ls & rls}.
+
+@table @code
+@item -d
+Show dead revisions (with tag when specified).
+See @ref{ls & rls options}.
+
+@item -e
+Display in CVS/Entries format.
+
+@item -l
+Display all details.
+
+@item -P
+Prune empty directories.  See @ref{Moving directories}.
+
+@item -R
+List recursively. @xref{Recursive behavior}.
+
+@item -D @var{date}
+Show files from date.  See @ref{Common options}.
+
+@item -r @var{rev}
+Show files with revision or tag.
+@end table
+
+@c ------------------------------------------------------------
+@anchor{pserver}
 @item pserver
 Password authenticated server.
-See @ref{Password authentication server}.
+@xref{server & pserver}.
+@xref{Password authentication server}.
 
 @c ------------------------------------------------------------
+@anchor{rannotate}
 @item rannotate [@var{options}] [@var{modules}@dots{}]
 Show last revision where each line was modified.  See
 @ref{annotate}.
@@ -12406,7 +12460,7 @@ Use RCS Version @var{vers} for keyword expansion (obsolete).  See
 @end table
 
 @c ------------------------------------------------------------
-@item release [@var{options}] @var{directory}
+@item release [@var{options}] @var{directories}@dots{}
 Indicate that a directory is no longer in use.  See
 @ref{release}.
 
@@ -12416,6 +12470,7 @@ Delete the given directory.  See @ref{release options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{remove}
 @item remove [@var{options}] [@var{files}@dots{}]
 Remove an entry from the repository.  See @ref{Removing files}.
 
@@ -12432,6 +12487,7 @@ behavior}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{rlog}
 @item rlog [@var{options}] [@var{files}@dots{}]
 Print out history information for modules.  See @ref{log}.
 
@@ -12469,9 +12525,40 @@ Only list revisions checked in by specified logins.  See @ref{log options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{rls}
+@item rls [@var{options}] [@var{path}@dots{}]
+List files in a module. See @ref{ls & rls}.
+
+@table @code
+@item -d
+Show dead revisions (with tag when specified).
+See @ref{ls & rls options}.
+
+@item -e
+Display in CVS/Entries format.
+
+@item -l
+Display all details.
+
+@item -P
+Prune empty directories.  See @ref{Moving directories}.
+
+@item -R
+List recursively. @xref{Recursive behavior}.
+
+@item -D @var{date}
+Show files from date.  See @ref{Common options}.
+
+@item -r @var{rev}
+Show files with revision or tag.
+@end table
+
+@c ------------------------------------------------------------
+@anchor{rtag}
 @item rtag [@var{options}] @var{tag} @var{modules}@dots{}
 Add a symbolic tag to a module.
-See @ref{Revisions} and @ref{Branching and merging}.
+@xref{Tagging by date/tag}.
+@xref{Creating a branch}.
 
 @table @code
 @item -a
@@ -12515,10 +12602,18 @@ existed on @var{date}.  See @ref{Tagging by date/tag} and @ref{Common options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{server}
 @item server
-Rsh server.  See @ref{Connecting via rsh}.
+SSH/rsh server.
+@xref{server & pserver}.
+@xref{Connecting via rsh}.
 
 @c ------------------------------------------------------------
+@item suck @var{module/filename}
+Download RCS ,v file raw.  See @ref{suck}.
+
+@c ------------------------------------------------------------
+@anchor{status}
 @item status [@var{options}] @var{files}@dots{}
 Display status information in a working directory.  See
 @ref{File status}.
@@ -12535,9 +12630,11 @@ Include tag information for file.  See @ref{Tags}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{tag}
 @item tag [@var{options}] @var{tag} [@var{files}@dots{}]
 Add a symbolic tag to checked out version of files.
-See @ref{Revisions} and @ref{Branching and merging}.
+@xref{Tagging the working directory}.
+@xref{Creating a branch}.
 
 @table @code
 @item -b
@@ -12573,6 +12670,7 @@ existed on @var{date}.  See @ref{Tagging by date/tag} and @ref{Common options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{unedit}
 @item unedit [@var{options}] [@var{files}@dots{}]
 Undo an edit command.  See @ref{Editing files}.
 
@@ -12649,6 +12747,7 @@ More wrappers.  See @ref{import options}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{version}
 @item version
 @cindex version (subcommand)
 
@@ -12656,6 +12755,7 @@ Display the version of @sc{cvs} being used.  If the repository
 is remote, display both the client and server versions.
 
 @c ------------------------------------------------------------
+@anchor{watch}
 @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
 
 on/off: turn on/off read-only checkouts of files.  See
@@ -12680,6 +12780,7 @@ behavior}.
 @end table
 
 @c ------------------------------------------------------------
+@anchor{watchers}
 @item watchers [@var{options}] [@var{files}@dots{}]
 See who is watching a file.  See @ref{Watch information}.
 
@@ -16026,6 +16127,47 @@ be comprehensive.  Perhaps there will never be a
 comprehensive, detailed list of known bugs.
 
 @c ---------------------------------------------------------------------
+@node CVS command list
+@appendix Alphabetical list of all CVS commands
+
+@menu
+* add::          Add a new file/directory to the repository
+* admin::        Administration front-end for RCS
+* annotate::     Show last revision where each line was modified
+* checkout::     Checkout sources for editing
+* commit::       Check files into the repository
+* diff::         Show differences between revisions
+* edit::         Get ready to edit a watched file
+* editors::      See who is editing a watched file
+* export::       Export sources from CVS, similar to checkout
+* history::      Show repository access history
+* import::       Import sources into CVS, using vendor branches
+* init::         Create a CVS repository
+* kserver::      Act in Kerberos server mode
+* log::          Print out history information for files
+* login::        Prompt for password for authenticating server
+* logout::       Removes entry in .cvspass for remote repository
+* ls::           List files available from CVS
+* pserver::      Act in password server mode
+* rannotate::    Show last revision where each line of module was modified
+* rdiff::        Create 'patch' format diffs between revisions
+* release::      Indicate that a work subdirectory is no longer in use
+* remove::       Remove an entry from the repository
+* rlog::         Print out history information for a module
+* rls::          List files in a module
+* rtag::         Add a symbolic tag to a module
+* server::       Act in server mode
+* suck::         Download RCS ,v file raw
+* status::       Display status information on checked out files
+* tag::          Add a symbolic tag to checked out version of files
+* unedit::       Undo an edit command
+* update::       Bring work tree in sync with repository
+* version::      Show current CVS version(s)
+* watch::        Set watches
+* watchers::     See who is watching a file
+@end menu
+
+@c ---------------------------------------------------------------------
 @node Index
 @unnumbered Index
 @cindex Index
index bec69c4..1726a4f 100644 (file)
@@ -26,7 +26,9 @@
 # include <config.h>
 #endif
 #ifndef IN_LIBINTL
+# ifdef HAVE_ALLOCA_H
 # include <alloca.h>
+# endif
 #endif
 
 /* Specification.  */
index 03d7d22..42ded0a 100644 (file)
--- a/src/add.c
+++ b/src/add.c
@@ -532,7 +532,8 @@ add (int argc, char **argv)
                                free (bbuf);
                        }
                        Register (entries, finfo.file, "0",
-                                 timestamp ? timestamp : vers->ts_user,
+                                 timestamp ? timestamp :
+                                  vers->ts_user_ists ? "locally-added" : vers->ts_user,
                                  vers->options, vers->tag, vers->date, NULL);
                        if (timestamp) free (timestamp);
 #ifdef SERVER_SUPPORT
index 7c986e7..85876a8 100644 (file)
--- a/src/cvs.h
+++ b/src/cvs.h
@@ -730,7 +730,7 @@ struct vers_ts
     /* This is the timestamp from stating the file in the working directory.
        It is NULL if there is no file in the working directory.  It is
        "Is-modified" if we know the file is modified but don't have its
-       contents.  */
+       contents.  See also: ts_user_ists.  */
     char *ts_user;
     /* Timestamp from CVS/Entries.  For the server, ts_user and ts_rcs
        are computed in a slightly different way, but the fact remains that
@@ -763,6 +763,9 @@ struct vers_ts
 
     /* Pointer to parsed src file info */
     RCSNode *srcfile;
+
+    /* 1 if ts_user is known to be the actual timestamp of a local file */
+    unsigned char ts_user_ists;
 };
 typedef struct vers_ts Vers_TS;
 
index 9854832..dd96a06 100644 (file)
@@ -235,7 +235,7 @@ static const char *const cmd_usage[] =
 {
     "CVS commands are:\n",
     "        add          Add a new file/directory to the repository\n",
-    "        admin        Administration front end for rcs\n",
+    "        admin        Administration front-end for RCS\n",
     "        annotate     Show last revision where each line was modified\n",
     "        checkout     Checkout sources for editing\n",
     "        commit       Check files into the repository\n",
@@ -247,7 +247,7 @@ static const char *const cmd_usage[] =
     "        import       Import sources into CVS, using vendor branches\n",
     "        init         Create a CVS repository if it doesn't exist\n",
 #if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT)
-    "        kserver      Kerberos server mode\n",
+    "        kserver      Act in Kerberos server mode\n",
 #endif
     "        log          Print out history information for files\n",
 #ifdef AUTH_CLIENT_SUPPORT
@@ -256,18 +256,19 @@ static const char *const cmd_usage[] =
 #endif /* AUTH_CLIENT_SUPPORT */
     "        ls           List files available from CVS\n",
 #if (defined(AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)) && defined(SERVER_SUPPORT)
-    "        pserver      Password server mode\n",
+    "        pserver      Act in password server mode\n",
 #endif
     "        rannotate    Show last revision where each line of module was modified\n",
-    "        rdiff        Create 'patch' format diffs between releases\n",
-    "        release      Indicate that a Module is no longer in use\n",
+    "        rdiff        Create 'patch' format diffs between revisions\n",
+    "        release      Indicate that a work subdirectory is no longer in use\n",
     "        remove       Remove an entry from the repository\n",
     "        rlog         Print out history information for a module\n",
     "        rls          List files in a module\n",
     "        rtag         Add a symbolic tag to a module\n",
 #ifdef SERVER_SUPPORT
-    "        server       Server mode\n",
+    "        server       Act in server mode\n",
 #endif
+    "        suck         Download RCS ,v file raw\n",
     "        status       Display status information on checked out files\n",
     "        tag          Add a symbolic tag to checked out version of files\n",
     "        unedit       Undo an edit command\n",
index 4c312da..d0b943f 100644 (file)
@@ -154,8 +154,8 @@ static const char *const verifymsg_contents[] = {
 
 static const char *const commitinfo_contents[] = {
     "# The \"commitinfo\" file is used to control pre-commit checks.\n",
-    "# The filter on the right is invoked with the repository and a list \n",
-    "# of files to check.  A non-zero exit of the filter program will \n",
+    "# The filter on the right is invoked with the repository and a list\n",
+    "# of files to check.  A non-zero exit of the filter program will\n",
     "# cause the commit to be aborted.\n",
     "#\n",
     "# The first entry on a line is a regular expression which is tested\n",
@@ -371,7 +371,7 @@ static const char *const posttag_contents[] = {
 
 static const char *const postwatch_contents[] = {
     "# The \"postwatch\" file is called after any command finishes writing new\n",
-    "# file attibute (watch/edit) information in a directory.\n",
+    "# file attribute (watch/edit) information in a directory.\n",
     "#\n",
     "# If any format strings are present in the filter, they will be replaced\n",
     "# as follows:\n",
index 0f5aec9..d30003d 100644 (file)
@@ -701,8 +701,23 @@ parse_config (const char *cvsroot, const char *path)
            retval->MaxCompressionLevel = dummy_sizet;
        }
 #endif /* SERVER_SUPPORT */
+       else if (!strcmp (line, "tag")) {
+           char *pp;
+
+           pp = Xasprintf("%s=Id", p);
+           RCS_setlocalid (infopath, ln, &retval->keywords, pp);
+           free(pp);
+
+#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
+           error (0, 0, "%s: found keyword '%s' in repository",
+                  infopath, line);
+           error (readonlyfs ? 0 : 1, 0, readonlyfs
+               ? "Danger: Granting read access to incompatible repository!"
+               : "Do not try to access a cvs 1.11 repository!");
+#endif
+       }
 #if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
-       else if ((!strcmp (line, "tag")) || (!strcmp (line, "umask"))
+       else if ((!strcmp (line, "umask"))
          || (!strcmp (line, "DisableXProg")) || (!strcmp (line, "dlimit"))
          || (!strcmp (line, "forceReadOnlyFS"))) {
            /* We are dealing with keywords removed between cvs 1.11.1p1
index ee2cedb..f0b4b27 100644 (file)
@@ -5255,6 +5255,7 @@ CVS server internal error: unhandled case in server_updated");
        {
            free (vers->ts_user);
            vers->ts_user = NULL;
+           vers->ts_user_ists = 0;
        }
     }
     else if (scratched_file == NULL && entries_line == NULL)
index a29716b..9f9a123 100644 (file)
@@ -1182,6 +1182,7 @@ scratch_file (struct file_info *finfo, Vers_TS *vers)
        {
            free (vers->ts_user);
            vers->ts_user = NULL;
+           vers->ts_user_ists = 0;
        }
     }
     return 0;
@@ -1367,6 +1368,7 @@ VERS: ", 0);
 
                if (xvers_ts->ts_user != NULL)
                    free (xvers_ts->ts_user);
+               xvers_ts->ts_user_ists = 0; /*XXX really? */
                xvers_ts->ts_user = xstrdup (xvers_ts->ts_rcs);
            }
 
index b5791dd..9ed252e 100644 (file)
@@ -268,7 +268,10 @@ Version_TS (struct file_info *finfo, char *options, char *tag, char *date,
            time_stamp_server (finfo->file, vers_ts, entdata);
        else
 #endif
+         {
            vers_ts->ts_user = time_stamp (finfo->file);
+           vers_ts->ts_user_ists = 1;
+         }
     }
 
     return (vers_ts);
@@ -339,6 +342,7 @@ time_stamp_server (const char *file, Vers_TS *vers_ts, Entnode *entdata)
     {
         struct tm *tm_p;
 
+       vers_ts->ts_user_ists = 1;
        vers_ts->ts_user = xmalloc (25);
        /* We want to use the same timestamp format as is stored in the
           st_mtime.  For unix (and NT I think) this *must* be universal