Merge branch 'mirbsd'
authormirabilos <m@mirbsd.org>
Tue, 28 Mar 2017 17:49:25 +0000 (19:49 +0200)
committermirabilos <m@mirbsd.org>
Tue, 28 Mar 2017 17:49:25 +0000 (19:49 +0200)
doc/cvs.texinfo
src/mkmodules.c
src/sanity.sh

index 93a8134..38b2ac0 100644 (file)
@@ -1989,6 +1989,18 @@ repository.
 @code{cvs init} will enable history logging; if you
 don't want that, remove the history file after running
 @code{cvs init}.  @xref{history file}.
+Since MirBSD CVS 1.12.13-MirOS-0AB7.8, MirPorts-19 or
+Debian cvs 2:1.12.13+real-22, only write operations
+will be logged by default; to change this, make the
+history file world-writable (but beware of the associated
+security risk) and remove the stock @samp{LogHistory}
+line in the @file{CVSROOT/config} file (@pxref{config})
+to use the (commented-out) default or put your own there.
+Note that these versions also create the @file{val-tags}
+file writable (@pxref{CVSUMASK}), not world-writable like
+prior versions, so users who wish to commit must, with a
+default @code{CVSUMASK} of 002, be in the same group as
+the repository.
 
 @node Backing up
 @section Backing up a repository
@@ -14901,7 +14913,9 @@ Control what is logged to the @file{CVSROOT/history} file (@pxref{history}).
 Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log
 all transactions.  Any subset of the default is
 legal.  (For example, to only log transactions that modify the
-@file{*,v} files, use @samp{LogHistory=TMAR}.)  To disable history logging
+@file{*,v} files, use @samp{LogHistory=TMAR} which is nowadays
+set by @code{cvs init} by default.)
+To disable history logging
 completely, use @samp{LogHistory=}.
 
 @cindex MaxCommentLeaderLength, in CVSROOT/config
index d0b943f..74b1301 100644 (file)
@@ -526,6 +526,7 @@ static const char *const config_contents[] = {
     "# Set 'LogHistory' to 'all' or '" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n",
     "# history file, or a subset as needed (ie 'TMAR' logs all write operations)\n",
     "#LogHistory=" ALL_HISTORY_REC_TYPES "\n",
+    "LogHistory=TMAR\n",
     "\n",
     "# Set 'RereadLogAfterVerify' to 'always' (the default) to allow the verifymsg\n",
     "# script to change the log message.  Set it to 'stat' to force CVS to verify\n",
@@ -1263,11 +1264,6 @@ init (int argc, char **argv)
        fp = xfopen (info, "w");
        if (fclose (fp) < 0)
            error (1, errno, "cannot close %s", info);
-        /* Make the new history file world-writeable, since every CVS
-           user will need to be able to write to it.  We use chmod()
-           because xchmod() is too shy. */
-        chmod (info, 0666);
     }
 
     /* Make an empty val-tags file to prevent problems creating it later.  */
@@ -1281,11 +1277,6 @@ init (int argc, char **argv)
        fp = xfopen (info, "w");
        if (fclose (fp) < 0)
            error (1, errno, "cannot close %s", info);
-        /* Make the new val-tags file world-writeable, since every CVS
-           user will need to be able to write to it.  We use chmod()
-           because xchmod() is too shy. */
-        chmod (info, 0666);
     }
 
     free (info);
index 0f62e04..3ba0fe0 100644 (file)
@@ -2647,7 +2647,9 @@ mkdir wnt
 cd wnt
 dotest init-1a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
 cd CVSROOT
-sed -e's/^#UserAdminOptions=/UserAdminOptions=/' <config >tmpconfig
+sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
+    -e '/^LogHistory/d' \
+    <config >tmpconfig
 mv tmpconfig config
 dotest init-1b "$testcvs -q ci -m allow-cvs-admin" "" \
 ".*/CVSROOT/config,v  <--  config
@@ -2842,7 +2844,9 @@ mkdir wnt
 cd wnt
 dotest init-2a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
 cd CVSROOT
-sed -e's/^#UserAdminOptions=/UserAdminOptions=/' <config >tmpconfig
+sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
+    -e '/^LogHistory/d' \
+    <config >tmpconfig
 mv tmpconfig config
 dotest init-2b "$testcvs -q ci -m allow-cvs-admin" "" \
 ".*/CVSROOT/config,v  <--  config
@@ -28890,8 +28894,33 @@ C first-dir/FiLe"
          testcvs2="$testcvs -d '$CVSROOT2'"
 
          dotest multiroot-setup-1 "mkdir $CVSROOT1_DIRNAME $CVSROOT2_DIRNAME"
+
          dotest multiroot-setup-2 "$testcvs1 init"
+         # remove automatically-created LogHistory to work around the fact
+         # that CVS does not track those per root (and thus warns about
+         # encountering multiple of these entries)
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot-setup-2a "$testcvs1 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot-setup-2b "$testcvs1 -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
+
          dotest multiroot-setup-3 "$testcvs2 init"
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot-setup-3a "$testcvs2 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot-setup-3b "$testcvs2 -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
 
          #
          # create some directories in ${CVSROOT1_DIRNAME}
@@ -29995,7 +30024,27 @@ anyone
          CVSROOT2=`newroot $CVSROOT2_DIRNAME`
 
          dotest multiroot2-1 "${testcvs} -d ${CVSROOT1} init" ""
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot2-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot2-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
          dotest multiroot2-2 "${testcvs} -d ${CVSROOT2} init" ""
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot2-2a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot2-2b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
 
          mkdir imp-dir; cd imp-dir
          echo file1 >file1
@@ -30151,12 +30200,32 @@ ${PLUS}change him too"
 
          mkdir 1; cd 1
          dotest multiroot3-1 "${testcvs} -d ${CVSROOT1} init" ""
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot3-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot3-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
          dotest multiroot3-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
          mkdir dir1
          dotest multiroot3-3 "${testcvs} add dir1" \
 "Directory ${TESTDIR}/root1/dir1 put under version control"
          dotest multiroot3-4 "${testcvs} -d ${CVSROOT2} init" ""
          rm -r CVS
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot3-4a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot3-4b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
          dotest multiroot3-5 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
          mkdir dir2
 
@@ -30277,6 +30346,16 @@ $CPROG \[checkout aborted\]: end of file from server (consult above messages if
 
          mkdir 1; cd 1
          dotest multiroot4-1 "${testcvs} -d ${CVSROOT1} init" ""
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot4-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot4-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
          dotest multiroot4-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
          mkdir dircom
          dotest multiroot4-3 "${testcvs} add dircom" \
@@ -30292,6 +30371,16 @@ initial revision: 1\.1"
          cd ../..
          mkdir 2; cd 2
          dotest multiroot4-6 "${testcvs} -d ${CVSROOT2} init" ""
+         mkdir wrkarnd; cd wrkarnd
+         dotest multiroot4-6a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
+         cd CVSROOT
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
+         dotest multiroot4-6b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
+".*/CVSROOT/config,v  <--  config
+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+$SPROG commit: Rebuilding administrative file database"
+         cd ../..; rm -r wrkarnd
          dotest multiroot4-7 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
          mkdir dircom
          dotest multiroot4-8 "${testcvs} add dircom" \
@@ -32014,6 +32103,10 @@ ${SPROG} update: Updating first/subdir"
 ALL (cat >/dev/null; echo %R) >$TESTDIR/referrer
 ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
 EOF
+         # remove automatically-created LogHistory to work around the fact
+         # that we see both writeproxy and primary config here
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
          cat >>config <<EOF
 PrimaryServer=$PRIMARY_CVSROOT
 EOF
@@ -32224,6 +32317,10 @@ $SPROG \[update aborted\]: could not find desired version 1\.4 in $PRIMARY_CVSRO
          cat >>loginfo <<EOF
 ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
 EOF
+         # remove automatically-created LogHistory to work around the fact
+         # that we see both writeproxy and primary config here
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
          cat >>config <<EOF
 PrimaryServer=$PRIMARY_CVSROOT
 EOF
@@ -32501,6 +32598,10 @@ EOF
          cat >>loginfo <<EOF
 ALL echo Referrer=%R; cat >/dev/null
 EOF
+         # remove automatically-created LogHistory to work around the fact
+         # that we see both writeproxy and primary config here
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
          cat >>config <<EOF
 PrimaryServer=$PRIMARY_CVSROOT
 EOF
@@ -32602,6 +32703,10 @@ EOF
          cat >>loginfo <<EOF
 ALL echo Referrer=%R; cat >/dev/null
 EOF
+         # remove automatically-created LogHistory to work around the fact
+         # that we see both writeproxy and primary config here
+         sed -e '/^LogHistory/d' <config >tmpconfig
+         mv tmpconfig config
          cat >>config <<EOF
 PrimaryServer=$PRIMARY_CVSROOT
 EOF