Import cvs-1.11.22 onto vendor branch.
This commit is contained in:
parent
83c36f7f98
commit
cf9c5c1a56
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/cvs/dist/; revision=175261
@ -49,9 +49,11 @@ Jim Kingdon and others at Cygnus Support <info@cygnus.com> wrote the
|
||||
remote repository access code.
|
||||
|
||||
Larry Jones and Derek Price <derek@ximbiot.com> have been maintaining and
|
||||
enhancing CVS for some years. Mark D. Baushke <mdb@cvshome.org> came on in
|
||||
enhancing CVS for some years. Mark D. Baushke <mdb@gnu.org> came on in
|
||||
2003.
|
||||
|
||||
Conrad Pino <Conrad@Pino.com> began maintaining the Windows port in 2004.
|
||||
|
||||
There have been many, many contributions not listed here. Consult the
|
||||
individual ChangeLog files in each directory for a more complete idea.
|
||||
|
||||
|
@ -88,22 +88,6 @@ an incorrect value, though this does not explain why symptoms have only been
|
||||
noticed under BSDI.
|
||||
|
||||
|
||||
* Spaces in arguments to `cvs diff' are currently split on spaces and tabs
|
||||
before being passed to diff. This can often cause diff to abort since it can
|
||||
no longer interpret its options string and if it can, coincidentally,
|
||||
interpret its option string, then the problem may be output in unexpected
|
||||
formats.
|
||||
|
||||
|
||||
* `release' of a project subdir does not remove the `subdir' entry from
|
||||
`./CVS/Entries'.
|
||||
|
||||
|
||||
* Most of the remote commands are encountering assertion failures when listing
|
||||
the toplevel of the repository (e.g. `cvs rlog .'). This appears to be
|
||||
related to the symlinked CVS root fix.
|
||||
|
||||
|
||||
* Status
|
||||
|
||||
/*-------.
|
||||
|
@ -1,3 +1,281 @@
|
||||
2006-06-09 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note client/server conflict fix.
|
||||
|
||||
2006-05-25 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* configure.in: Accept --with-rsh argument to set RSH_DFLT in config.h.
|
||||
Prefer `remsh' to `rsh' when autodetecting and comment rationale.
|
||||
|
||||
2006-04-27 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* acinclude.m4 (ACX_WITH_GSSAPI): Detect libgss for HP-UX.
|
||||
* NEWS: Note that GSSAPI builds under HP-UX.
|
||||
(Report from Larry Jones <lawrence.jones@ugs.com>.)
|
||||
|
||||
2006-03-07 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note rtag fixes.
|
||||
|
||||
2006-02-26 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note CVSADM fix as an efficiency improvement.
|
||||
|
||||
2006-02-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note unconditional val-tags lock removal.
|
||||
|
||||
* NEWS: Note history buffer overflow fix.
|
||||
|
||||
2006-01-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note nonblocking flow control pipe fix.
|
||||
|
||||
2005-12-09 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note misc doc & bug fixes.
|
||||
|
||||
2005-12-07 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note recognition of :extssh:.
|
||||
|
||||
2005-10-18 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* KEYS: New file, suggested by Antoine Lexy-Lambert <antoine@gmx.de>.
|
||||
* README: Mention KEYS file.
|
||||
|
||||
2005-09-26 Derek Price <derek@ximbiot.com>
|
||||
|
||||
[bug #14639]
|
||||
* acinclude.m4: Find the crypto library on FreeBSD 5.x.
|
||||
Patch from Serguei E. Leontiev <lse@CryptoPro.ru>.
|
||||
|
||||
* NEWS: Note FreeBSD 5.x GSSAPI fix.
|
||||
|
||||
* NEWS: Note fsync'd commits.
|
||||
|
||||
2005-09-24 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS, HACKING: Standardize on Automake 1.9.6.
|
||||
|
||||
2005-09-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Mention conflict fixes.
|
||||
|
||||
2005-09-13 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* TESTS: Mention new $username8 & $anyusername variables.
|
||||
|
||||
2005-09-04 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* NEWS: s/bug-cvs@gnu.org/bug-cvs@nongnu.org/.
|
||||
* configure.in: s/info-cvs@gnu.org/info-cvs@nongnu.org/.
|
||||
* configure: Regenerated.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* AUTHORS, DEVEL-CVS, HACKING, README: Update links, email addresses,
|
||||
& mailing list descriptions.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* FAQ: Update links.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* HACKING, INSTALL, README, README.VMS, configure.in: Update links and
|
||||
email addresses.
|
||||
|
||||
2005-08-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* www/.htaccess: Remove this file.
|
||||
|
||||
2005-08-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.spec.in: Note last spec file change in internal ChangeLog.
|
||||
|
||||
2005-08-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note spec file repair.
|
||||
|
||||
2005-08-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.spec.in: Update links to point to Savannah. s/Copyright/License/
|
||||
for RPM 4.mumble.
|
||||
|
||||
2005-08-30 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* NEWS: Note import locking fix.
|
||||
|
||||
2005-07-12 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* FAQ, HACKING, INSTALL: Add copyright notices.
|
||||
|
||||
2005-07-11 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* FAQ, HACKING, INSTALL: Update license notices.
|
||||
|
||||
2005-06-02 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note server compression hang fix.
|
||||
|
||||
2005-06-01 Conrad T. Pino <Conrad@Pino.com>
|
||||
|
||||
* makewin32.cmd: Add Windows NT command file to build CVS Project.
|
||||
Imported from revision 1.2 on feature branch.
|
||||
|
||||
2005-05-27 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note diff space split fix.
|
||||
* BUGS: Remove diff space split note.
|
||||
|
||||
2005-05-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* INSTALL: Add footnote about compiling a CVS checkout of CVS on a
|
||||
case-insensitive UNIX file system like Mac OS X.
|
||||
|
||||
2005-05-02 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* TODO (231): Renumber as...
|
||||
(234): ...this to match numbering on 1.12.x.
|
||||
|
||||
2005-05-02 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* TODO (231): New item.
|
||||
(22, 30, 31): Remove completed items.
|
||||
|
||||
2005-05-02 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note new val-tags locks.
|
||||
|
||||
2005-04-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note new history locks.
|
||||
|
||||
2005-04-20 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note log overflow fix.
|
||||
|
||||
2005-04-15 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note Klocwork fixes.
|
||||
|
||||
2005-04-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note contrib Perl taint vulnerability fix.
|
||||
|
||||
2005-03-23 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* ylwrap: New file.
|
||||
|
||||
2005-03-15 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* HACKING, NEWS: Note new Automake version.
|
||||
|
||||
2005-03-04 Jim Hyslop <jhyslop@ieee.org>
|
||||
|
||||
* NEWS: Note fix for compile errors on IRIX 5.3.
|
||||
|
||||
2005-02-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note recent watch on/off fileattr fix.
|
||||
|
||||
2005-01-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* AUTHORS: Add Conrad Pino.
|
||||
* README: Update copyright notice.
|
||||
|
||||
2005-01-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note some recent changes.
|
||||
|
||||
2004-11-17 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note "red file" fix source inclusion.
|
||||
|
||||
2004-11-05 Conrad T. Pino <Conrad@Pino.com>
|
||||
|
||||
* cvsnt.dep: Regenerated after complete rebuild.
|
||||
* cvsnt.mak: Regenerated after complete rebuild.
|
||||
|
||||
2004-11-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* HACKING, NEWS: Note new Autoconf & Automake versions.
|
||||
|
||||
2004-10-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note xreadlink fix.
|
||||
|
||||
2004-10-26 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note GSSAPI error message fix.
|
||||
|
||||
2004-10-19 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note resurrection fix.
|
||||
|
||||
2004-10-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note new import branch verification.
|
||||
|
||||
2004-09-25 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* configure.in: Use doc/mkman.pl as source for doc/mkman.
|
||||
|
||||
2004-09-08 Conrad T. Pino <Conrad@Pino.com>
|
||||
|
||||
* cvsnt.dsp: Add "windows-NT/JmgStat.c" to project. Add
|
||||
"windows-NT/JmgStat.h" to project. Add "lib/xsize.h" to project.
|
||||
* cvsnt.dep: Regenerated for "cvsnt.dsp" change.
|
||||
* cvsnt.mak: Regenerated for "cvsnt.dsp" change.
|
||||
|
||||
2004-09-07 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note Windows DST fix.
|
||||
|
||||
2004-09-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* HACKING: Codify backwards compatibility conventions. Remove outdated
|
||||
reference to very old MSVC++ releases.
|
||||
|
||||
2004-08-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note compliance of log_accum.pl with Perl 5.8.5.
|
||||
|
||||
2004-08-24 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* TODO (24, 49, 92, 113): Remove completed/obsolescent items.
|
||||
|
||||
2004-08-24 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* BUGS: Remove release subdir note. This was fixed with the commit on
|
||||
2004-02-25, based on Matthew Ogilvie's patch.
|
||||
|
||||
2004-08-24 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note r* . fix.
|
||||
* BUGS: Remove r* . note.
|
||||
|
||||
2004-08-24 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note invalid tag fix.
|
||||
|
||||
2004-08-24 Mark D. Baushke <mdb@cvshome.org>
|
||||
|
||||
* NEWS: Note that modules -a bugfix has a change in behavior.
|
||||
|
||||
2004-06-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note Conrad's Windows fix.
|
||||
|
||||
2004-06-21 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* .cvsignore: Ignore GPG signature files for distributions.
|
||||
|
||||
2004-06-10 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note manual update.
|
||||
|
||||
2004-06-09 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* NEWS: Note Stefan & Sebastian's security fixes.
|
||||
|
@ -3,37 +3,6 @@
|
||||
This file, DEVEL-CVS, contains the policies by which the CVS
|
||||
development group operates. Also see the HACKING file.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Charter for the devel-cvs mailing list:
|
||||
|
||||
The CVS Developers' List <dev@ccvs.cvshome.org> exists to help people
|
||||
with access to the CVS source repository co-ordinate changes, make
|
||||
releases, and administer the repository.
|
||||
|
||||
Everyone who has been given checkin access to the repository for the
|
||||
CVS sources should read devel-cvs. Only those with checkin access may
|
||||
send messages to the list.
|
||||
|
||||
The devel-cvs list may be used to discuss:
|
||||
- administrivia regarding the CVS source repository and release
|
||||
process, and
|
||||
- changes and features intended for inclusion in the official CVS
|
||||
release (either source code or documentation), which someone plans
|
||||
to implement, or has implemented.
|
||||
|
||||
The devel-cvs list should not be used to discuss:
|
||||
- changes or features to packages other than the CVS release
|
||||
(e.g., related packages like tkCVS, RAD/CVS, or other groups'
|
||||
distributions of CVS, like RCVS, etc.),
|
||||
- changes which nobody has offered to implement, or
|
||||
- the philosophy of CVS (as opposed to a specific change to CVS).
|
||||
These topics should either go on info-cvs, or have a new mailing list
|
||||
created for them.
|
||||
|
||||
The topic restrictions in this charter do not reflect the development
|
||||
group's future plans for CVS; rather, they reflect a topic
|
||||
classification which the group finds helpful.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Policies regarding the CVS source repository:
|
||||
|
||||
|
@ -1,3 +1,24 @@
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
CVS is Copyright (C) 1989-2005 The Free Software Foundation, Inc.
|
||||
|
||||
CVS is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
More details are available in the COPYING file but, in simplified
|
||||
terms, this means that any distributed modifications you make to
|
||||
this software must also be released under the GNU General Public
|
||||
License.
|
||||
|
||||
CVS is distributed in the hope that it will be useful,
|
||||
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.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This file contains a CVS FAQ. Until 1995 it was maintained by David
|
||||
Grubbs. It was out of date and not being maintained, but it had a
|
||||
certain following and in 1997 Pascal Molli decided to start
|
||||
@ -13,13 +34,14 @@ until someone can write some code to extract data from a FAQ-O-Matic
|
||||
and insert things like tables of contents).
|
||||
|
||||
The answers which are dated "6/13/1997" below are really from the 1995
|
||||
FAQ, for the most part. Many of them are out of date. If you have
|
||||
some time, you are encouraged to double-check them against other
|
||||
sources like the Cederqvist manual and update the FAQ. If you don't
|
||||
have such time, take them with a grain of salt or a few.
|
||||
FAQ, for the most part. Many of them are out of date. The current FAQ may
|
||||
be found at <http://ximbiot.com/cvs/wiki/index.php?title=CVS_FAQ>. If you have
|
||||
some time, you are encouraged to export that FAQ as text and import it here.
|
||||
If you don't have such time, take the answers in this file with at least a few
|
||||
grains of salt.
|
||||
|
||||
Since Feb. 2000 CVS is being maintained by OpenAvenue, Inc. and many of
|
||||
the existing resources have been centeralized on http://www.cvshome.org.
|
||||
Since August, 2005, many of the existing CVS resources have been centralized on
|
||||
<http://cvs.nongnu.org> & <http://ximbiot.com>.
|
||||
|
||||
Category: /, all questions
|
||||
|
||||
@ -1899,7 +1921,8 @@ You can branch a branch.
|
||||
GIC is no longer being maintained and tkCVS is recommended
|
||||
instead.
|
||||
|
||||
For more on tkCVS, see http://www.cvshome.org/dev/addontkcvs.html.
|
||||
For more on tkCVS, see
|
||||
<http://ximbiot.com/cvs/cvshome/dev/addontkcvs.html>.
|
||||
|
||||
kingdon@cyclic.com
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
How to write code for CVS
|
||||
|
||||
* License of CVS
|
||||
|
||||
CVS is Copyright (C) 1989-2005 The Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
More details are available in the COPYING file but, in simplified
|
||||
terms, this means that any distributed modifications you make to
|
||||
this software must also be released under the GNU General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
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.
|
||||
|
||||
* Source
|
||||
|
||||
Patches against the development version of CVS are most likely to be accepted:
|
||||
|
||||
$ cvs -d:pserver:anoncvs@cvs.cvshome.org/cvsroot co ccvs
|
||||
$ CVS_RSH=ssh cvs -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/cvs co ccvs
|
||||
|
||||
* Compiler options
|
||||
|
||||
@ -13,13 +32,28 @@ detect many programming errors. This is not the default because it
|
||||
might cause spurious warnings, but at least on some machines, there
|
||||
should be no spurious warnings. For example:
|
||||
|
||||
$ CFLAGS="-g -Wall" ./configure
|
||||
$ CFLAGS="-g -Wall" ./configure
|
||||
|
||||
Configure is not very good at remembering this setting; it will get
|
||||
wiped out whenever you do a ./config.status --recheck, so you'll need
|
||||
to use:
|
||||
|
||||
$ CFLAGS="-g -Wall" ./config.status --recheck
|
||||
$ CFLAGS="-g -Wall" ./config.status --recheck
|
||||
|
||||
* Backwards Compatibility
|
||||
|
||||
Only bug fixes are accepted into the stable branch. New features should be
|
||||
applied to the trunk.
|
||||
|
||||
If it is not inextricable from a bug fix, CVS's output (to stdout/stderr)
|
||||
should not be changed on the stable branch in order to best support scripts and
|
||||
other tools which parse CVS's output. It is ok to change output between
|
||||
feature releases (on the trunk), though such changes should be noted in the
|
||||
NEWS file.
|
||||
|
||||
Changes in the way CVS responds to command line options, config options, etc.
|
||||
should be accompanied by deprecation warnings for an entire stable series of
|
||||
releases before being changed permanently, if at all possible.
|
||||
|
||||
* Indentation style
|
||||
|
||||
@ -100,10 +134,6 @@ Generally speaking the GNU coding standards are mostly used by CVS
|
||||
and perhaps an exception or two we haven't mentioned). This is the
|
||||
file standards.text at the GNU FTP sites.
|
||||
|
||||
Filenames for .c and .h files may contain _ but should not contain -
|
||||
(the latter causes Visual C++ 2.1 to create makefiles which Visual C++
|
||||
4.0 cannot use).
|
||||
|
||||
* Regenerating Build Files
|
||||
|
||||
On UNIX, if you wish to change the Build files, you will need Autoconf and
|
||||
@ -115,13 +145,13 @@ have the same versions the developers do, so the rules to run them
|
||||
automatically aren't included in the generated Makefiles unless you run
|
||||
configure with the --enable-maintainer-mode option.
|
||||
|
||||
The CVS Makefiles and configure script were built using Automake 1.7.9 and
|
||||
Autoconf 2.58, respectively.
|
||||
The CVS Makefiles and configure script were built using Automake 1.9.6 and
|
||||
Autoconf 2.59, respectively.
|
||||
|
||||
There is a known bug in Autoconf 2.57 that will prevent the configure
|
||||
scripts it generates from working on some platforms. Other combinations of
|
||||
autotool versions may or may not work. If you get other versions to work,
|
||||
please send a report to <bug-cvs@gnu.org>.
|
||||
please send a report to <bug-cvs@nongnu.org>.
|
||||
|
||||
* Writing patches (strategy)
|
||||
|
||||
@ -174,7 +204,7 @@ for each issue. Use context diffs or unidiffs for patches.
|
||||
|
||||
Include words like "I grant permission to distribute this patch under
|
||||
the terms of the GNU Public License" with your patch. By sending a
|
||||
patch to bug-cvs@gnu.org, you implicitly grant this permission.
|
||||
patch to bug-cvs@nongnu.org, you implicitly grant this permission.
|
||||
|
||||
Submitting a patch to bug-cvs is the way to reach the people who have
|
||||
signed up to receive such submissions (including CVS developers), but
|
||||
@ -203,27 +233,21 @@ intentional, to avoid a last minute rush to get new features in.
|
||||
|
||||
* Mailing lists
|
||||
|
||||
Anyone can add themselves to the following mailing lists:
|
||||
In addition to the mailing lists listed in the README file, developers should
|
||||
take particular note of the following mailling lists:
|
||||
|
||||
dev. Unless you are accepted as a CVS developer as
|
||||
described in the DEVEL-CVS file, you will only be able to
|
||||
read this list, not send to it. The charter of the list is
|
||||
also in DEVEL-CVS.
|
||||
cvs. The only messages sent to this list are sent
|
||||
bug-cvs: This is the list which users are requested to send bug reports
|
||||
to. General CVS development and design discussions also take place on
|
||||
this list.
|
||||
info-cvs: This list is intended for user questions, but general CVS
|
||||
development and design discussions sometimes take place on this list.
|
||||
cvs-cvs: The only messages sent to this list are sent
|
||||
automatically, via the CVS `loginfo' mechanism, when someone
|
||||
checks something in to the master CVS repository.
|
||||
test-results. The only messages sent to this list are sent
|
||||
cvs-test-results: The only messages sent to this list are sent
|
||||
automatically, daily, by a script which runs "make check"
|
||||
and "make remotecheck" on the master CVS sources.
|
||||
To subscribe to dev, cvs, or test-results, send
|
||||
a message to "<list>-subscribe@ccvs.cvshome.org" or visit
|
||||
http://ccvs.cvshome.org/servlets/ProjectMailingListList and follow the
|
||||
instructions there.
|
||||
|
||||
One other list related to CVS development is bug-cvs. This is the
|
||||
list which users are requested to send bug reports to. Anyone can
|
||||
subscribe; to do so send mail to bug-cvs-request@gnu.org.
|
||||
|
||||
Other CVS discussions take place on the info-cvs mailing list
|
||||
(send mail to info-cvs-request@gnu.org to subscribe) or on
|
||||
the newsgroup comp.software.config-mgmt.
|
||||
To subscribe to any of these lists, send mail to <list>-request@nongnu.org
|
||||
or visit http://savannah.nongnu.org/mail/?group=cvs and follow the instructions
|
||||
for the list you wish to subscribe to.
|
||||
|
@ -1,4 +1,24 @@
|
||||
First, read the README file. If you're still happy...
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
CVS is Copyright (C) 1989-2005 The Free Software Foundation, Inc.
|
||||
|
||||
CVS is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
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.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Now back to our regularly scheduled program:
|
||||
|
||||
Please read the README file before reading this INSTALL file. Then, to
|
||||
install CVS:
|
||||
|
||||
|
||||
First you need to obtain and install the CVS executables. If you got
|
||||
a distribution which contains executables, consult the installation
|
||||
@ -95,7 +115,7 @@ Tested platforms
|
||||
CVS has been tested on the following platforms. The most recent
|
||||
version of CVS reported to have been tested is indicated, but more
|
||||
recent versions of CVS probably will work too. Please send updates to
|
||||
this list to bug-cvs@gnu.org (doing so in the form of a diff
|
||||
this list to bug-cvs@nongnu.org (doing so in the form of a diff
|
||||
to this file, or at least exact suggested text, is encouraged).
|
||||
"tested" means, at a minimum, that CVS compiles and appears to work on
|
||||
simple (manual) testing. In many cases it also means "make check"
|
||||
@ -182,7 +202,8 @@ PowerPC or RS/6000:
|
||||
IBM RS/6000 running AIX 4.3 (1.10.7)
|
||||
Lynx 2.3.1 120495 (1.6.86) (footnote 9)
|
||||
Lynx 2.5 (1.9) (footnote 10)
|
||||
MkLinux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
|
||||
Linux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
|
||||
Mac OS X ALL (footnote 14)
|
||||
Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
|
||||
Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
|
||||
Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
|
||||
@ -253,6 +274,17 @@ VAX:
|
||||
A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
|
||||
unless "+DAportable" is added to the HP ANSI cc compiler flags.
|
||||
|
||||
(footnote 14)
|
||||
Because of the case-insensitive file system on Mac OS X, you cannot build
|
||||
CVS directly from a checkout from CVS. The name of the built executable,
|
||||
`cvs', conflicts with name of the CVS administration directory, `CVS'.
|
||||
The work-around is to build the executable from a build directory separate
|
||||
from the source directory. i.e.:
|
||||
|
||||
cvs co ccvs; cd ccvs
|
||||
mkdir build; cd build
|
||||
../configure && make
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Building from source code under Unix:
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -28,7 +28,6 @@
|
||||
# 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.
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -36,7 +35,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -50,6 +48,46 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(srcdir)/cvs.spec.in $(top_srcdir)/configure \
|
||||
$(top_srcdir)/emx/Makefile.in $(top_srcdir)/os2/Makefile.in \
|
||||
$(top_srcdir)/zlib/Makefile.in AUTHORS COPYING COPYING.LIB \
|
||||
ChangeLog INSTALL NEWS TODO compile depcomp install-sh \
|
||||
mdate-sh missing mkinstalldirs ylwrap
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = cvs.spec emx/Makefile os2/Makefile zlib/Makefile
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -119,6 +157,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -132,6 +172,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -139,6 +180,7 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
with_default_rsh = @with_default_rsh@
|
||||
|
||||
# Unix source subdirs, where we'll want to run lint and etags:
|
||||
# This is a legacy variable from b4 Automake
|
||||
@ -147,7 +189,6 @@ USOURCE_SUBDIRS = lib zlib diff src
|
||||
SUBDIRS = $(USOURCE_SUBDIRS) man doc contrib tools \
|
||||
windows-NT os2 emx vms
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
.cvsignore \
|
||||
BUGS \
|
||||
@ -168,43 +209,42 @@ EXTRA_DIST = \
|
||||
cvs.spec \
|
||||
mktemp.sh
|
||||
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = cvs.spec emx/Makefile os2/Makefile zlib/Makefile
|
||||
DIST_SOURCES =
|
||||
|
||||
RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
|
||||
ps-recursive install-info-recursive uninstall-info-recursive \
|
||||
all-recursive install-data-recursive install-exec-recursive \
|
||||
installdirs-recursive install-recursive uninstall-recursive \
|
||||
check-recursive installcheck-recursive
|
||||
DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
|
||||
COPYING COPYING.LIB ChangeLog INSTALL Makefile.am NEWS TODO \
|
||||
acinclude.m4 aclocal.m4 compile config.h.in configure \
|
||||
configure.in cvs.spec.in depcomp install-sh mdate-sh missing \
|
||||
mkinstalldirs
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@ -216,14 +256,14 @@ config.h: stamp-h1
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
|
||||
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
touch $(srcdir)/config.h.in
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
cvs.spec: $(top_builddir)/config.status cvs.spec.in
|
||||
cvs.spec: $(top_builddir)/config.status $(srcdir)/cvs.spec.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
emx/Makefile: $(top_builddir)/config.status $(top_srcdir)/emx/Makefile.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
@ -240,7 +280,13 @@ uninstall-info-am:
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -252,7 +298,7 @@ $(RECURSIVE_TARGETS):
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
@ -260,7 +306,13 @@ $(RECURSIVE_TARGETS):
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
@ -281,7 +333,7 @@ maintainer-clean-recursive:
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -292,14 +344,6 @@ ctags-recursive:
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -308,19 +352,22 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -f $$subdir/TAGS && \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
@ -330,10 +377,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -356,24 +404,11 @@ GTAGS:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = .
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkinstalldirs) $(distdir)/. $(distdir)/contrib $(distdir)/doc $(distdir)/emx $(distdir)/os2 $(distdir)/src $(distdir)/windows-NT $(distdir)/zlib
|
||||
$(mkdir_p) $(distdir)/. $(distdir)/contrib $(distdir)/doc $(distdir)/emx $(distdir)/lib $(distdir)/os2 $(distdir)/src $(distdir)/windows-NT $(distdir)/zlib
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
@ -385,7 +420,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -400,15 +435,17 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d $(distdir)/$$subdir \
|
||||
|| mkdir $(distdir)/$$subdir \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" \
|
||||
distdir=../$(distdir)/$$subdir \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -419,24 +456,46 @@ distdir: $(DISTFILES)
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
$(am__remove_distdir)
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
@ -456,19 +515,20 @@ distcheck: dist
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||
&& rm -f $(distdir).tar.gz \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@echo "$(distdir).tar.gz is ready for distribution" | \
|
||||
sed 'h;s/./=/g;p;x;p;x'
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
@ -492,7 +552,6 @@ check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
@ -512,7 +571,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -530,6 +589,8 @@ dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -566,22 +627,20 @@ uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
|
||||
clean-generic clean-recursive ctags ctags-recursive dist \
|
||||
dist-all dist-bzip2 dist-gzip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-recursive \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am dvi-recursive info info-am info-recursive install \
|
||||
install-am install-data install-data-am install-data-recursive \
|
||||
install-exec install-exec-am install-exec-recursive \
|
||||
install-info install-info-am install-info-recursive install-man \
|
||||
install-recursive install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am installdirs-recursive \
|
||||
maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
|
||||
ps-recursive tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-info-am uninstall-info-recursive uninstall-recursive
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-generic clean-recursive ctags \
|
||||
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
|
||||
dist-tarZ dist-zip distcheck distclean distclean-generic \
|
||||
distclean-hdr distclean-recursive distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
|
||||
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
|
||||
|
||||
.PHONY: localcheck remotecheck
|
||||
|
204
contrib/cvs/NEWS
204
contrib/cvs/NEWS
@ -1,6 +1,208 @@
|
||||
Changes since 1.11.16:
|
||||
Changes since 1.11.21:
|
||||
**********************
|
||||
|
||||
BUG FIXES
|
||||
|
||||
* The CVS client again correctly reports files with conflicts when using
|
||||
servers running CVS 1.11.20/1.12.12, or earlier (and maybe 3rd party
|
||||
servers).
|
||||
|
||||
* The GSSAPI server should now build under HP-UX.
|
||||
|
||||
* `cvs rtag' now correctly tags files that have been removed from the trunk.
|
||||
|
||||
* Code efficiency has been improved slightly.
|
||||
|
||||
* A rare race condition that could leave a lock on the val-tags file has been
|
||||
avoided.
|
||||
|
||||
* A potential buffer overflow in the history command has been fixed.
|
||||
|
||||
* Thanks to a report and patch from Garrett Rooney <grooney@collab.net>, paused
|
||||
trigger processes no longer cause the CVS server to consume 100% CPU.
|
||||
|
||||
* Thanks to a suggestion from Joseph P. Skudlarek <Jskud@Jskud.com>, an
|
||||
:extssh: has been added as a synonym of the :ext: access method, as a
|
||||
kindness to users of old version of Eclipse.
|
||||
|
||||
* Misc documentation updates and minor bug fixes.
|
||||
|
||||
Changes from 1.11.20 to 1.11.21:
|
||||
********************************
|
||||
|
||||
BUG FIXES
|
||||
|
||||
* Thanks to Serguei E. Leontiev <lse@CryptoPro.ru>, CVS with Kerberos 5 GSSAPI
|
||||
should automatically link on FreeBSD 5.x. (bug #14639).
|
||||
|
||||
* Thanks to Rahul Bhargava <rahul@wandisco.com>, heavily loaded systems
|
||||
suffering from a disk crash or power failure will not lose data they claimed
|
||||
to have committed.
|
||||
|
||||
* CVS server now handles conflict markers in Entry requests as documented.
|
||||
|
||||
* CVS now remembers that binary file merge conflicts occurred until the
|
||||
timestamp of the updated binary file changes.
|
||||
|
||||
* CVS client now saves some bandwidth by not sending the contents of files
|
||||
with conflicts to the server when it isn't needed.
|
||||
|
||||
* CVS now does correct locking during import.
|
||||
|
||||
* A problem where the server could block indefinitely waiting for an EOF from
|
||||
the client when compression was enabled has been fixed.
|
||||
|
||||
* `cvs diff' no longer splits its arguments on spaces.
|
||||
|
||||
* Thanks to an old report and patch from Stewart Brodie <stewart@eh.org>, a
|
||||
potential crash in response to a corrupt RCS file has been fixed.
|
||||
|
||||
* CVS now locks the history and val-tags files before writing to them.
|
||||
Especially with large repositories, users should no longer see new warnings
|
||||
about corrupt history records when using the `cvs history' command. Existing
|
||||
corrupt history records will still need to be removed manually. val-tags
|
||||
corruption should have had less obvious effects, but removing the
|
||||
CVSROOT/val-tags file and allowing a 1.11.21 or later version of CVS to
|
||||
regenerate it may eliminate a few odd behaviors and possibly cause a slight
|
||||
speed up of read transactions in large repositories over time.
|
||||
|
||||
BUILD ISSUES
|
||||
|
||||
* The RPM spec file works again with the most modern versions of `rpm'.
|
||||
|
||||
DEVELOPER ISSUES
|
||||
|
||||
* We've standardized on Automake 1.9.6 to get some at new features that make
|
||||
our jobs easier. See the HACKING file for more on using the autotools with
|
||||
CVS.
|
||||
|
||||
Changes from 1.11.19 to 1.11.20:
|
||||
********************************
|
||||
|
||||
SERVER SECURITY FIXES
|
||||
|
||||
* Thanks to a report from Alen Zukich <alen.zukich@klocwork.com>, several minor
|
||||
security issues have been addressed. One was a buffer overflow that is
|
||||
potentially serious but which may not be exploitable, assigned CAN-2005-0753
|
||||
by the Common Vulnerabilities and Exposures Project
|
||||
<http://www.cve.mitre.org>. Other fixes resulting from Alen's report include
|
||||
repair of an arbitrary free with no known exploit and several plugged memory
|
||||
leaks and potentially freed NULL pointers which may have been exploitable for
|
||||
a denial of service attack.
|
||||
|
||||
* Thanks to a report from Craig Monson <craig@malachiarts.com>, minor
|
||||
potential vulnerabilities in the contributed Perl scripts have been fixed.
|
||||
The confirmed vulnerability could allow the execution of arbitrary code on
|
||||
the CVS server, but only if a user already had commit access and if one of
|
||||
the contrib scripts was installed improperly, a condition which should have
|
||||
been quickly visible to any administrator. The complete description of the
|
||||
problem is here: <https://ccvs.cvshome.org/issues/show_bug.cgi?id=224>. If
|
||||
you were making use of any of the contributed trigger scripts on a CVS
|
||||
server, you should probably still replace them with the new versions, to be
|
||||
on the safe side.
|
||||
|
||||
Unfortunately, our fix is incomplete. Taint-checking has been enabled in all
|
||||
the contributed Perl scripts intended to be run as trigger scripts, but no
|
||||
attempt has been made to ensure that they still run in taint mode. You will
|
||||
most likely have to tweak the scripts in some way to make them run. Please
|
||||
send any patches you find necessary back to <bug-cvs@nongnu.org> so that we
|
||||
may again ship fully enabled scripts in the future.
|
||||
|
||||
You should also make sure that any home-grown Perl scripts that you might
|
||||
have installed as CVS triggers also have taint-checking enabled. This can be
|
||||
done by adding `-T' on the scripts' #! lines. Please try running
|
||||
`perldoc perlsec' if you would like more information on general Perl security
|
||||
and taint-checking.
|
||||
|
||||
BUG FIXES
|
||||
|
||||
* Thanks to a report and a patch from Georg Scwharz <georg.scwarz@freenet.de>
|
||||
CVS now builds without error on IRIX 5.3
|
||||
|
||||
DEVELOPER ISSUES
|
||||
|
||||
* We've standardized on Automake 1.9.5 to get some at new features that make
|
||||
our jobs easier. See the HACKING file for more on using the autotools with
|
||||
CVS.
|
||||
|
||||
Changes from 1.11.18 to 1.11.19:
|
||||
********************************
|
||||
|
||||
BUG FIXES
|
||||
|
||||
* Thanks to a patch from Jim Hyslop <jhyslop@ieee.org>, issuing
|
||||
'cvs watch on' or 'cvs watch off' in an empty directory no longer
|
||||
clears any watchers in that directory.
|
||||
|
||||
* An intermittant assertion failure in checkout has been fixed.
|
||||
|
||||
* Thanks to a report from Chris Bohn <cbohn@rrinc.com>, all the source files
|
||||
needed for the Windows "red file" fix are actually included in the
|
||||
distribution.
|
||||
|
||||
* Misc bug and documentation fixes.
|
||||
|
||||
Changes from 1.11.17 to 1.11.18:
|
||||
********************************
|
||||
|
||||
BUG FIXES
|
||||
|
||||
* Thanks to a report from Gottfried Ganssauge <gotti@cvshome.org>, CVS no
|
||||
longer exits when it encounters links pointing to paths containing more
|
||||
than 128 characters.
|
||||
|
||||
* Thanks to a report from Dan Peterson <dbpete@aol.com>, error messages from
|
||||
GSSAPI servers are no longer truncated.
|
||||
|
||||
* Thanks to a report from Dan Peterson <dbpete@aol.com>, attempts to resurrect
|
||||
a file on the trunk that was added on a branch no longer causes an assertion
|
||||
failure.
|
||||
|
||||
* Thanks to a report from Dan Peterson <dbpete@aol.com>, imports to branches
|
||||
like "1.1." no longer create corrupt RCS archives.
|
||||
|
||||
* Thanks to a report from Chris Bohn <cbohn@rrinc.com>, links from J.C. Hamlin
|
||||
<jchamlin@ibsys.com>, and code posted by Jonathan Gilligan, we think we have
|
||||
finally corrected the Windows "red-file" (daylight savings time) bug once and
|
||||
for all.
|
||||
|
||||
* Thanks to a patch from Jeroen Ruigrok/asmodai <asmodai@wxs.nl>, the
|
||||
log_accum.pl script should no longer elicit warnings from Perl 5.8.5.
|
||||
|
||||
* The r* commands (rlog, rls, etc.) can once again handle requests to run
|
||||
against the entire repository (e.g. `cvs rlog .'). Thanks go to Dan Peterson
|
||||
<dbpete@aol.com> for the report.
|
||||
|
||||
* A problem where the attempted access of files via tags beginning with spaces
|
||||
could cause the CVS server to hang has been fixed. This was a particular
|
||||
problem with WinCVS clients because users would sometimes accidentally
|
||||
include spaces in tags pasted into a dialog box. This fix also altered some
|
||||
of the error messages generated by the use of invalid tags. Thanks go to Dan
|
||||
Peterson <dbpete@aol.com> for the report.
|
||||
|
||||
* Thanks to James E Wilson <wilson@specifixinc.com> for a bug fix to
|
||||
modules processing "gcc-core -a !gcc/f gcc" will no longer exclude
|
||||
gcc/fortran by mistake.
|
||||
|
||||
* Thanks to Conrad Pino <conrad@pino.com>, the Windows build works once again.
|
||||
|
||||
* Misc updates to the manual.
|
||||
|
||||
DEVELOPER ISSUES
|
||||
|
||||
* We've standardized on Automake 1.9.3 to get some at new features that make
|
||||
our jobs easier. See the note below on the Autoconf upgrade for more
|
||||
details.
|
||||
|
||||
* We've standardized on Autoconf version 2.59 to get presumed bug fixes and
|
||||
features, but nothing specific. Mostly, once we decide to upgrade one of the
|
||||
autotools we just figure it'll save time later to grab the most current
|
||||
versions of the others too. See the HACKING file for more on using the
|
||||
autotools with CVS.
|
||||
|
||||
Changes from 1.11.16 to 1.11.17:
|
||||
********************************
|
||||
|
||||
SERVER SECURITY FIXES
|
||||
|
||||
* Thanks to Stefan Esser & Sebastian Krahmer, several potential security
|
||||
|
@ -1,12 +1,13 @@
|
||||
CVS Kit
|
||||
|
||||
Copyright (c) 1993-1994 Brian Berliner
|
||||
Copyright (c) 1992 Brian Berliner and Jeff Polk
|
||||
Copyright (c) 1989-1992, Brian Berliner
|
||||
Copyright (c) 1998-2004 Free Software Foundation,
|
||||
Derek Price,
|
||||
& Ximbiot <http://ximbiot.com>
|
||||
All Rights Reserved
|
||||
Copyright (C) 1986-2005 Free Software Foundation, Inc.
|
||||
|
||||
Portions Copyright (C) 1998-2005 Derek Price,
|
||||
& Ximbiot <http://ximbiot.com>.
|
||||
Portions Copyright (C) 1993-1994 Brian Berliner.
|
||||
Portions Copyright (C) 1992 Brian Berliner and Jeff Polk.
|
||||
Portions Copyright (C) 1989-1992 Brian Berliner.
|
||||
All Rights Reserved
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -74,6 +75,20 @@ compatibility problems with CVS 1.5 or later.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Verifying the Integrity of Downloads:
|
||||
|
||||
The official CVS source and binary releases are signed by the CVS maintainer
|
||||
who generated them. This does not imply any sort of warranty, but it does mean
|
||||
that you can verify that the file you downloaded did, in fact, come from a CVS
|
||||
maintainer.
|
||||
|
||||
The OpenPGP keys of the CVS maintainers who have submitted them are in the KEYS
|
||||
file of the CVS distribution and are also available from many OpenPGP key
|
||||
servers. It is recommended that you verify the key fingerprints against an
|
||||
external source, however you obtain the key.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Installation:
|
||||
|
||||
Please read the INSTALL file for installation instructions. Brief summary:
|
||||
@ -98,19 +113,31 @@ cvs.texinfo and re-generate cvs.ps using TeX.
|
||||
* How do I get up-to-date information and information about other
|
||||
versions of CVS?
|
||||
|
||||
On the web, http://www.loria.fr/~molli/cvs-index.html.
|
||||
|
||||
See also
|
||||
http://www.cvshome.org
|
||||
http://cvs.nongnu.org
|
||||
http://www.cvsnt.org
|
||||
|
||||
The mailing list for CVS is info-cvs@gnu.org. Send
|
||||
subscription and removal requests for that list to
|
||||
info-cvs-request@gnu.org.
|
||||
Anyone can add themselves to the following mailing lists:
|
||||
|
||||
bug-cvs: This is the list which users are requested to send bug reports
|
||||
to. General CVS development and design discussions also tend to take
|
||||
place on this list.
|
||||
info-cvs: This list is intended for user questions, including general
|
||||
help requests.
|
||||
cvs-announce: CVS release announcements and other major
|
||||
announcements about the project are sent to this list.
|
||||
cvs-announce-binaries: Announcements are made to this list
|
||||
when binaries for various platforms are built and initially
|
||||
posted for download.
|
||||
|
||||
To subscribe to any of these lists, send mail to <list>-request@nongnu.org
|
||||
or visit http://savannah.nongnu.org/mail/?group=cvs and follow the instructions
|
||||
for the list you wish to subscribe to.
|
||||
|
||||
The newsgroup for CVS (and other configuration management systems) is
|
||||
comp.software.config-mgmt. There is not yet a CVS-specific newsgroup,
|
||||
but perhaps if comp.software.config-mgmt gets enough CVS discussion,
|
||||
then it will be possible to create one.
|
||||
comp.software.config-mgmt. The gnu.cvs.help newsgroup is a 2-way mirror
|
||||
of the info-cvs@nongnu.org mailing list and gnu.cvs.bug is similarly a 2-way
|
||||
mirror of bug-cvs@nongnu.org.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
@ -211,20 +211,24 @@ false when executed and are intended to be used like,
|
||||
"if $remote; then ... ; else ... ; fi"
|
||||
|
||||
|
||||
* $testdir = the directory this test is taking place in
|
||||
(CVSROOT=$testdir/cvsroot or CVSROOT=:fork:$testdir/cvsroot)
|
||||
* $testcvs = full path to the cvs executable we are testing
|
||||
* $PLUS = expr dependant uninterpreted '+' since this can vary
|
||||
* $DOTSTAR = expr dependant _interpreted_ .* since some exprs don't match
|
||||
EOL
|
||||
* $username = regexp to match a username
|
||||
* $hostname = regexp to match a hostname
|
||||
* $PROG = regexp to match progname in CVS error messages
|
||||
* $remote = ':' (true) or 'false', depending on whether the script is
|
||||
running with a remote CVSROOT
|
||||
* $keep = ':' (true) or 'false'. When set, the first test run will
|
||||
leave any files and directories it created in $testdir and
|
||||
exit when complete.
|
||||
* $testdir = the directory this test is taking place in
|
||||
(CVSROOT=$testdir/cvsroot or
|
||||
CVSROOT=:fork:$testdir/cvsroot)
|
||||
* $testcvs = full path to the cvs executable we are testing
|
||||
* $PLUS = expr dependant uninterpreted '+' since this can vary
|
||||
* $DOTSTAR = expr dependant _interpreted_ .* since some exprs don't
|
||||
match EOL
|
||||
* $username = the username of the user running the tests
|
||||
* $username8 = the first 8 characters of $username, output by some
|
||||
system and CVS commands
|
||||
* $anyusername = regexp to match any valid system or CVS username
|
||||
* $hostname = regexp to match a hostname
|
||||
* $PROG = regexp to match progname in CVS error messages
|
||||
* $remote = ':' (true) or 'false', depending on whether the script is
|
||||
running with a remote CVSROOT
|
||||
* $keep = ':' (true) or 'false'. When set, the first test run will
|
||||
leave any files and directories it created in $testdir and
|
||||
exit when complete.
|
||||
|
||||
And, of course, some characters like '.' in regexps need to be '\' escaped when
|
||||
you mean them literally. Some characters may be interpreted by the shell,
|
||||
|
@ -1,20 +1,5 @@
|
||||
The "TODO" file! -*-Indented-Text-*-
|
||||
|
||||
22. Catch signals for cleanup when "add"ing files.
|
||||
|
||||
24. Insist on a log message.
|
||||
(If done, this should be configurable via commitinfo or some new
|
||||
config file -kingdon, Jun 1995).
|
||||
|
||||
30. Add "rdiff" & "rtag" program options to the modules database. These
|
||||
commands seem hard to use since these commands deal directly with the
|
||||
RCS ,v files. (perhaps should think a little harder about what this is
|
||||
trying to accomplish and what the best way is -kingdon, Jul 1997).
|
||||
|
||||
31. Think hard about ^C recovery.
|
||||
One particular issue: RCS removes the ,foo.c, file on ^C and CVS
|
||||
doesn't.
|
||||
|
||||
38. Think hard about using RCS state information to allow one to checkin
|
||||
a new vendor release without having it be accessed until it has been
|
||||
integrated into the local changes.
|
||||
@ -27,11 +12,6 @@ The "TODO" file! -*-Indented-Text-*-
|
||||
PRCS 1.0 was particularly bad the way it handled the "invisible
|
||||
state", but 1.2 is significantly better.
|
||||
|
||||
49. cvs xxx commands should be able to deal with files in other
|
||||
directories. I want to do a cvs add foo/bar.c.
|
||||
[[ most commands now use the generic recursion processor, but not all;
|
||||
this note is left here to remind me to fix the others ]]
|
||||
|
||||
52. SCCS has a feature that I would *love* to see in CVS, as it is very
|
||||
useful. One may make a private copy of SCCS suid to a particular user,
|
||||
so other users in the authentication list may check files in and out of
|
||||
@ -73,13 +53,6 @@ The "TODO" file! -*-Indented-Text-*-
|
||||
can only support symlinks that are relative and within the scope of
|
||||
the sources being controlled.
|
||||
|
||||
92. Look into this:
|
||||
After a bit of soul searching via dbx, I realized my sin was that I'd
|
||||
specified "echo" as the program to call from loginfo. The commit
|
||||
procedure worked fine till it hit my echo, then silently aborted
|
||||
leaving the lockfiles intact. Since I needn't use the loginfo
|
||||
facility, I simply removed those commands and it all works.
|
||||
|
||||
93. Need to think hard about release and development environments. Think
|
||||
about execsets as well.
|
||||
|
||||
@ -131,9 +104,6 @@ The "TODO" file! -*-Indented-Text-*-
|
||||
error. I think a later cvs get sys seemed to work so perhaps
|
||||
something is amiss in handling multiple arguments to cvs get?
|
||||
|
||||
113. The "cvs update" command should tee its output to a log file in ".".
|
||||
(why? What is wrong with piping stdout to "tee"? -kingdon, Jun 1995)
|
||||
|
||||
119. When importing a directory tree that is under SCCS/RCS control,
|
||||
consider an option to have import checkout the SCCS/RCS files if
|
||||
necessary. (This is if someone wants to import something which
|
||||
@ -888,3 +858,8 @@ wait interval.
|
||||
|
||||
230. Support for options like compression as part of the CVSROOT might be
|
||||
nice. This should be fairly easy to implement now using the method options.
|
||||
|
||||
234. Noop commands should be logged in the history file. Information can
|
||||
still be obtained with noop commands, for instance via `cvs -n up -p', and
|
||||
paranoid admins might appreciate this. Similarly, perhaps diff operations
|
||||
should be logged.
|
||||
|
@ -210,6 +210,11 @@ when using GSSAPI.])
|
||||
#
|
||||
AC_SEARCH_LIBS([__dn_expand], [resolv])
|
||||
|
||||
#
|
||||
# crypto Need by gssapi under FreeBSD 5.4
|
||||
#
|
||||
AC_SEARCH_LIBS([RC4], [crypto])
|
||||
|
||||
#
|
||||
# crypt Needed by roken under FreeBSD 4.6.
|
||||
#
|
||||
@ -253,6 +258,9 @@ when using GSSAPI.])
|
||||
#
|
||||
AC_SEARCH_LIBS([krb5_free_context], [krb5])
|
||||
|
||||
#
|
||||
# gss This may be the only lib needed under HP-UX, so find it
|
||||
# first.
|
||||
#
|
||||
# gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
|
||||
# order to prefer MIT Kerberos. If both MIT & Heimdal
|
||||
@ -260,11 +268,13 @@ when using GSSAPI.])
|
||||
# some of the libraries above in LIBS unnecessarily, but
|
||||
# noone would ever do that, right?
|
||||
#
|
||||
# gss HP-UX ???
|
||||
#
|
||||
# gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
|
||||
#
|
||||
# gssapi Heimdal K 0.3d -lkrb5
|
||||
#
|
||||
AC_SEARCH_LIBS([gss_import_name], [gssapi_krb5 gssapi])
|
||||
AC_SEARCH_LIBS([gss_import_name], [gss gssapi_krb5 gssapi])
|
||||
fi
|
||||
])dnl
|
||||
|
||||
|
1556
contrib/cvs/aclocal.m4
vendored
1556
contrib/cvs/aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@ -402,6 +402,10 @@
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#undef RETSIGTYPE
|
||||
|
||||
/* The default remote shell to use, if one does not specify the CVS_RSH
|
||||
environment variable. */
|
||||
#undef RSH_DFLT
|
||||
|
||||
/* If you are working with a large remote repository and a 'cvs checkout' is
|
||||
swamping your network and memory, define these to enable flow control. You
|
||||
will end up with even less probability of a consistent checkout (see
|
||||
|
552
contrib/cvs/configure
vendored
552
contrib/cvs/configure
vendored
@ -1,8 +1,8 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.58 for Concurrent Versions System (CVS) 1.11.17.
|
||||
# Generated by GNU Autoconf 2.59 for Concurrent Versions System (CVS) 1.11.22.
|
||||
#
|
||||
# Report bugs to <bug-cvs@gnu.org>.
|
||||
# Report bugs to <bug-cvs@nongnu.org>.
|
||||
#
|
||||
# Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
# This configure script is free software; the Free Software Foundation
|
||||
@ -269,9 +269,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='Concurrent Versions System (CVS)'
|
||||
PACKAGE_TARNAME='cvs'
|
||||
PACKAGE_VERSION='1.11.17'
|
||||
PACKAGE_STRING='Concurrent Versions System (CVS) 1.11.17'
|
||||
PACKAGE_BUGREPORT='bug-cvs@gnu.org'
|
||||
PACKAGE_VERSION='1.11.22'
|
||||
PACKAGE_STRING='Concurrent Versions System (CVS) 1.11.22'
|
||||
PACKAGE_BUGREPORT='bug-cvs@nongnu.org'
|
||||
|
||||
ac_unique_file="src/cvs.h"
|
||||
# Factoring default headers for most tests.
|
||||
@ -311,7 +311,7 @@ ac_includes_default="\
|
||||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot ac_prefix_program MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP RANLIB ac_ct_RANLIB YACC LN_S PERL CSH MKTEMP SENDMAIL PR ROFF PS2PDF TEXI2DVI MAKE_TARGETS_IN_VPATH_TRUE MAKE_TARGETS_IN_VPATH_FALSE LIBOBJS KRB4 includeopt EDITOR LTLIBOBJS'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar ac_prefix_program MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP RANLIB ac_ct_RANLIB YACC LN_S PERL CSH MKTEMP SENDMAIL PR ROFF PS2PDF TEXI2DVI MAKE_TARGETS_IN_VPATH_TRUE MAKE_TARGETS_IN_VPATH_FALSE LIBOBJS KRB4 includeopt EDITOR with_default_rsh LTLIBOBJS'
|
||||
ac_subst_files='MKTEMP_SH_FUNCTION'
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@ -784,7 +784,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures Concurrent Versions System (CVS) 1.11.17 to adapt to many kinds of systems.
|
||||
\`configure' configures Concurrent Versions System (CVS) 1.11.22 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -846,17 +846,17 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of Concurrent Versions System (CVS) 1.11.17:";;
|
||||
short | recursive ) echo "Configuration of Concurrent Versions System (CVS) 1.11.22:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
Optional Features:
|
||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
--enable-maintainer-mode enable make rules and dependencies not useful
|
||||
(and sometimes confusing) to the casual installer
|
||||
--disable-dependency-tracking Speeds up one-time builds
|
||||
--enable-dependency-tracking Do not reject slow dependency extractors
|
||||
--enable-maintainer-mode enable make rules and dependencies not useful
|
||||
(and sometimes confusing) to the casual installer
|
||||
--disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors
|
||||
--enable-cvs-ndbm Use the NDBM library distributed with CVS rather
|
||||
than attempting to use a system NDBM library.
|
||||
Disabling this may not work. (default)
|
||||
@ -911,6 +911,8 @@ Optional Packages:
|
||||
--with-gssapi GSSAPI directory (default autoselects)
|
||||
--with-editor The default text editor CVS should use for log
|
||||
messages (default autoselects)
|
||||
--with-rsh The default remote shell CVS will use for :ext:
|
||||
transport (default autodetects)
|
||||
--with-tmpdir The temporary directory CVS should use as a default
|
||||
(default autoselects)
|
||||
--with-umask Set the umask CVS will use by default in the
|
||||
@ -938,7 +940,7 @@ Some influential environment variables:
|
||||
Use these variables to override the choices made by `configure' or to help
|
||||
it to find libraries and programs with nonstandard names/locations.
|
||||
|
||||
Report bugs to <bug-cvs@gnu.org>.
|
||||
Report bugs to <bug-cvs@nongnu.org>.
|
||||
_ACEOF
|
||||
fi
|
||||
|
||||
@ -972,40 +974,43 @@ case $srcdir in
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=$ac_builddir;;
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case $ac_builddir in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;;
|
||||
*) ac_abs_builddir="$ac_dir"/$ac_builddir;;
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir="$ac_dir";;
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir="$ac_dir";;
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir="$ac_dir"/$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir="$ac_dir";;
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
@ -1031,8 +1036,8 @@ fi
|
||||
test -n "$ac_init_help" && exit 0
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
Concurrent Versions System (CVS) configure 1.11.17
|
||||
generated by GNU Autoconf 2.58
|
||||
Concurrent Versions System (CVS) configure 1.11.22
|
||||
generated by GNU Autoconf 2.59
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
This configure script is free software; the Free Software Foundation
|
||||
@ -1045,8 +1050,8 @@ cat >&5 <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by Concurrent Versions System (CVS) $as_me 1.11.17, which was
|
||||
generated by GNU Autoconf 2.58. Invocation command line was
|
||||
It was created by Concurrent Versions System (CVS) $as_me 1.11.22, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
||||
@ -1382,7 +1387,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
am__api_version="1.7"
|
||||
am__api_version="1.9"
|
||||
ac_aux_dir=
|
||||
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
||||
if test -f $ac_dir/install-sh; then
|
||||
@ -1545,7 +1550,6 @@ _ACEOF
|
||||
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
|
||||
rm conftest.sed
|
||||
|
||||
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
|
||||
@ -1559,6 +1563,39 @@ else
|
||||
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
|
||||
fi
|
||||
|
||||
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
# We used to keeping the `.' as first argument, in order to
|
||||
# allow $(mkdir_p) to be used without argument. As in
|
||||
# $(mkdir_p) $(somedir)
|
||||
# where $(somedir) is conditionally defined. However this is wrong
|
||||
# for two reasons:
|
||||
# 1. if the package is installed by a user who cannot write `.'
|
||||
# make install will fail,
|
||||
# 2. the above comment should most certainly read
|
||||
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||
# so it does not work when $(somedir) is undefined and
|
||||
# $(DESTDIR) is not.
|
||||
# To support the latter case, we have to write
|
||||
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||
# so the `.' trick is pointless.
|
||||
mkdir_p='mkdir -p --'
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
for d in ./-p ./--version;
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||
mkdir_p='$(mkinstalldirs)'
|
||||
else
|
||||
mkdir_p='$(install_sh) -d'
|
||||
fi
|
||||
fi
|
||||
|
||||
for ac_prog in gawk mawk nawk awk
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
@ -1637,7 +1674,7 @@ else
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
|
||||
# test to see if srcdir already configured
|
||||
# test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||
test -f $srcdir/config.status; then
|
||||
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
|
||||
@ -1657,7 +1694,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='cvs'
|
||||
VERSION='1.11.17'
|
||||
VERSION='1.11.22'
|
||||
|
||||
|
||||
# Some tools Automake needs.
|
||||
@ -1676,9 +1713,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
|
||||
|
||||
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
|
||||
|
||||
|
||||
AMTAR=${AMTAR-"${am_missing_run}tar"}
|
||||
|
||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
@ -1771,6 +1805,13 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
# Always define AMTAR for backward compatibility.
|
||||
|
||||
AMTAR=${AMTAR-"${am_missing_run}tar"}
|
||||
|
||||
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -2908,7 +2949,9 @@ else
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
: > sub/conftst$i.h
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
@ -2936,9 +2979,14 @@ else
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored.
|
||||
if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_CC_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
@ -3709,9 +3757,9 @@ echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result
|
||||
echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -5177,9 +5225,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -6223,9 +6271,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -7526,9 +7574,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -7983,9 +8031,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -8862,9 +8910,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -10592,9 +10640,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -10789,9 +10837,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
|
||||
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to bug-cvs@gnu.org ##
|
||||
## ------------------------------ ##
|
||||
## --------------------------------- ##
|
||||
## Report this to bug-cvs@nongnu.org ##
|
||||
## --------------------------------- ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
@ -11497,6 +11545,136 @@ if test "$ac_cv_search___dn_expand" != no; then
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# crypto Need by gssapi under FreeBSD 5.4
|
||||
#
|
||||
echo "$as_me:$LINENO: checking for library containing RC4" >&5
|
||||
echo $ECHO_N "checking for library containing RC4... $ECHO_C" >&6
|
||||
if test "${ac_cv_search_RC4+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
ac_cv_search_RC4=no
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
builtin and then its argument prototype would still apply. */
|
||||
char RC4 ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
RC4 ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest$ac_exeext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_cv_search_RC4="none required"
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
if test "$ac_cv_search_RC4" = no; then
|
||||
for ac_lib in crypto; do
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
builtin and then its argument prototype would still apply. */
|
||||
char RC4 ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
RC4 ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest$ac_exeext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_cv_search_RC4="-l$ac_lib"
|
||||
break
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
done
|
||||
fi
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_search_RC4" >&5
|
||||
echo "${ECHO_T}$ac_cv_search_RC4" >&6
|
||||
if test "$ac_cv_search_RC4" != no; then
|
||||
test "$ac_cv_search_RC4" = "none required" || LIBS="$ac_cv_search_RC4 $LIBS"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# crypt Needed by roken under FreeBSD 4.6.
|
||||
#
|
||||
@ -12165,6 +12343,9 @@ if test "$ac_cv_search_krb5_free_context" != no; then
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# gss This may be the only lib needed under HP-UX, so find it
|
||||
# first.
|
||||
#
|
||||
# gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
|
||||
# order to prefer MIT Kerberos. If both MIT & Heimdal
|
||||
@ -12172,6 +12353,8 @@ fi
|
||||
# some of the libraries above in LIBS unnecessarily, but
|
||||
# noone would ever do that, right?
|
||||
#
|
||||
# gss HP-UX ???
|
||||
#
|
||||
# gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
|
||||
#
|
||||
# gssapi Heimdal K 0.3d -lkrb5
|
||||
@ -12236,7 +12419,7 @@ fi
|
||||
rm -f conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
if test "$ac_cv_search_gss_import_name" = no; then
|
||||
for ac_lib in gssapi_krb5 gssapi; do
|
||||
for ac_lib in gss gssapi_krb5 gssapi; do
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
@ -12420,6 +12603,90 @@ _ACEOF
|
||||
|
||||
|
||||
|
||||
# What remote shell transport should our client cvs default to using?
|
||||
|
||||
# Check whether --with-rsh or --without-rsh was given.
|
||||
if test "${with_rsh+set}" = set; then
|
||||
withval="$with_rsh"
|
||||
|
||||
else
|
||||
with_rsh="remsh rsh ssh"
|
||||
fi;
|
||||
|
||||
if test no = "$with_rsh"; then
|
||||
{ echo "$as_me:$LINENO: WARNING: Failed to find usable remote shell. Using 'rsh'." >&5
|
||||
echo "$as_me: WARNING: Failed to find usable remote shell. Using 'rsh'." >&2;}
|
||||
with_rsh=rsh
|
||||
elif test yes = "$with_rsh"; then
|
||||
# Make --with-rsh mean the same thing as --with-rsh=rsh
|
||||
with_rsh=rsh
|
||||
fi
|
||||
|
||||
if echo $with_rsh |grep ^/ >/dev/null; then
|
||||
# If $with_rsh is an absolute path, issue a warning if the executable
|
||||
# doesn't exist or isn't usable, but then trust the user and use it
|
||||
# regardless
|
||||
with_default_rsh=$with_rsh
|
||||
echo "$as_me:$LINENO: checking for a remote shell" >&5
|
||||
echo $ECHO_N "checking for a remote shell... $ECHO_C" >&6
|
||||
if ! test -f $with_rsh \
|
||||
|| ! test -x $with_rsh; then
|
||||
# warn the user that they may encounter problems
|
||||
{ echo "$as_me:$LINENO: WARNING: $with_rsh is not a path to an executable file" >&5
|
||||
echo "$as_me: WARNING: $with_rsh is not a path to an executable file" >&2;}
|
||||
fi
|
||||
else
|
||||
# Search for a remote shell
|
||||
for ac_prog in $with_rsh
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo "$as_me:$LINENO: checking for $ac_word" >&5
|
||||
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
|
||||
if test "${ac_cv_prog_with_default_rsh+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
if test -n "$with_default_rsh"; then
|
||||
ac_cv_prog_with_default_rsh="$with_default_rsh" # Let the user override the test.
|
||||
else
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_prog_with_default_rsh="$ac_prog"
|
||||
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
fi
|
||||
with_default_rsh=$ac_cv_prog_with_default_rsh
|
||||
if test -n "$with_default_rsh"; then
|
||||
echo "$as_me:$LINENO: result: $with_default_rsh" >&5
|
||||
echo "${ECHO_T}$with_default_rsh" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
|
||||
test -n "$with_default_rsh" && break
|
||||
done
|
||||
test -n "$with_default_rsh" || with_default_rsh=""rsh""
|
||||
|
||||
fi
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define RSH_DFLT "$with_default_rsh"
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --with-tmpdir or --without-tmpdir was given.
|
||||
if test "${with_tmpdir+set}" = set; then
|
||||
@ -13006,7 +13273,7 @@ fi
|
||||
|
||||
ac_config_files="$ac_config_files contrib/sccs2rcs"
|
||||
|
||||
ac_config_files="$ac_config_files doc/mkman"
|
||||
ac_config_files="$ac_config_files doc/mkman:doc/mkman.pl"
|
||||
|
||||
ac_config_files="$ac_config_files src/cvsbug"
|
||||
|
||||
@ -13406,8 +13673,8 @@ _ASBOX
|
||||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by Concurrent Versions System (CVS) $as_me 1.11.17, which was
|
||||
generated by GNU Autoconf 2.58. Invocation command line was
|
||||
This file was extended by Concurrent Versions System (CVS) $as_me 1.11.22, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||
@ -13472,8 +13739,8 @@ _ACEOF
|
||||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
Concurrent Versions System (CVS) config.status 1.11.17
|
||||
configured by $0, generated by GNU Autoconf 2.58,
|
||||
Concurrent Versions System (CVS) config.status 1.11.22
|
||||
configured by $0, generated by GNU Autoconf 2.59,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
@ -13594,7 +13861,7 @@ do
|
||||
"contrib/rcs2log" ) CONFIG_FILES="$CONFIG_FILES contrib/rcs2log:contrib/rcs2log.sh" ;;
|
||||
"contrib/rcslock" ) CONFIG_FILES="$CONFIG_FILES contrib/rcslock" ;;
|
||||
"contrib/sccs2rcs" ) CONFIG_FILES="$CONFIG_FILES contrib/sccs2rcs" ;;
|
||||
"doc/mkman" ) CONFIG_FILES="$CONFIG_FILES doc/mkman" ;;
|
||||
"doc/mkman" ) CONFIG_FILES="$CONFIG_FILES doc/mkman:doc/mkman.pl" ;;
|
||||
"src/cvsbug" ) CONFIG_FILES="$CONFIG_FILES src/cvsbug" ;;
|
||||
"windows-NT/fix-msvc-mak" ) CONFIG_FILES="$CONFIG_FILES windows-NT/fix-msvc-mak:windows-NT/fix-msvc-mak-head.pl:windows-NT/fix-msvc-mak.pl" ;;
|
||||
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
@ -13712,14 +13979,17 @@ s,@AUTOCONF@,$AUTOCONF,;t t
|
||||
s,@AUTOMAKE@,$AUTOMAKE,;t t
|
||||
s,@AUTOHEADER@,$AUTOHEADER,;t t
|
||||
s,@MAKEINFO@,$MAKEINFO,;t t
|
||||
s,@AMTAR@,$AMTAR,;t t
|
||||
s,@install_sh@,$install_sh,;t t
|
||||
s,@STRIP@,$STRIP,;t t
|
||||
s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
|
||||
s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
|
||||
s,@mkdir_p@,$mkdir_p,;t t
|
||||
s,@AWK@,$AWK,;t t
|
||||
s,@SET_MAKE@,$SET_MAKE,;t t
|
||||
s,@am__leading_dot@,$am__leading_dot,;t t
|
||||
s,@AMTAR@,$AMTAR,;t t
|
||||
s,@am__tar@,$am__tar,;t t
|
||||
s,@am__untar@,$am__untar,;t t
|
||||
s,@ac_prefix_program@,$ac_prefix_program,;t t
|
||||
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
|
||||
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
|
||||
@ -13760,6 +14030,7 @@ s,@LIBOBJS@,$LIBOBJS,;t t
|
||||
s,@KRB4@,$KRB4,;t t
|
||||
s,@includeopt@,$includeopt,;t t
|
||||
s,@EDITOR@,$EDITOR,;t t
|
||||
s,@with_default_rsh@,$with_default_rsh,;t t
|
||||
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
|
||||
/@MKTEMP_SH_FUNCTION@/r $MKTEMP_SH_FUNCTION
|
||||
s,@MKTEMP_SH_FUNCTION@,,;t t
|
||||
@ -13883,40 +14154,43 @@ case $srcdir in
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=$ac_builddir;;
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case $ac_builddir in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;;
|
||||
*) ac_abs_builddir="$ac_dir"/$ac_builddir;;
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir="$ac_dir";;
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir="$ac_dir";;
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir="$ac_dir"/$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir="$ac_dir";;
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
@ -14344,40 +14618,43 @@ case $srcdir in
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
case "$ac_dest_dir" in
|
||||
.) ac_abs_builddir=$ac_builddir;;
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dest_dir";;
|
||||
*)
|
||||
case $ac_builddir in
|
||||
.) ac_abs_builddir="$ac_dest_dir";;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;;
|
||||
*) ac_abs_builddir="$ac_dest_dir"/$ac_builddir;;
|
||||
case "$ac_dest_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dest_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dest_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dest_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir="$ac_dest_dir";;
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir="$ac_dest_dir"/${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dest_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir="$ac_dest_dir";;
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir="$ac_dest_dir"/$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dest_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir="$ac_dest_dir";;
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir="$ac_dest_dir"/$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
@ -14466,40 +14743,43 @@ case $srcdir in
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=$ac_builddir;;
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case $ac_builddir in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;;
|
||||
*) ac_abs_builddir="$ac_dir"/$ac_builddir;;
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir="$ac_dir";;
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir="$ac_dir";;
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir="$ac_dir"/$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case "$ac_dir" in
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir="$ac_dir";;
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
@ -14532,27 +14812,21 @@ echo X"$mf" |
|
||||
else
|
||||
continue
|
||||
fi
|
||||
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
|
||||
# Extract the definition of DEP_FILES from the Makefile without
|
||||
# running `make'.
|
||||
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n -e '/^U = / s///p' < "$mf"`
|
||||
test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
|
||||
# We invoke sed twice because it is the simplest approach to
|
||||
# changing $(DEPDIR) to its actual value in the expansion.
|
||||
for file in `sed -n -e '
|
||||
/^DEP_FILES = .*\\\\$/ {
|
||||
s/^DEP_FILES = //
|
||||
:loop
|
||||
s/\\\\$//
|
||||
p
|
||||
n
|
||||
/\\\\$/ b loop
|
||||
p
|
||||
}
|
||||
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
|
@ -1,5 +1,6 @@
|
||||
dnl configure.in for cvs
|
||||
AC_INIT([Concurrent Versions System (CVS)],[1.11.17],[bug-cvs@gnu.org],[cvs])
|
||||
AC_INIT([Concurrent Versions System (CVS)],[1.11.22],
|
||||
[bug-cvs@nongnu.org],[cvs])
|
||||
AC_CONFIG_SRCDIR(src/cvs.h)
|
||||
AM_INIT_AUTOMAKE([gnu 1.7.9 dist-bzip2 no-define])
|
||||
AC_PREREQ(2.58)
|
||||
@ -496,6 +497,58 @@ dnl
|
||||
dnl end --with-editor
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl begin --with-rsh
|
||||
dnl
|
||||
dnl Many sites no longer desire the use of "rsh" as the default
|
||||
dnl remote shell program. They typically favor "ssh" as the default
|
||||
|
||||
# What remote shell transport should our client cvs default to using?
|
||||
AC_ARG_WITH(
|
||||
[rsh],
|
||||
AC_HELP_STRING(
|
||||
[--with-rsh],
|
||||
[The default remote shell CVS will use for :ext: transport
|
||||
(default autodetects)]), ,
|
||||
dnl `remsh' is only useful on HP-UX, where `rsh' is the `restricted shell'
|
||||
dnl and `remsh' is the remote shell, but look for it first since it
|
||||
dnl probably won't exist on any platform where it shouldn't be preferred
|
||||
dnl to `rsh'.
|
||||
[with_rsh="remsh rsh ssh"])
|
||||
|
||||
if test no = "$with_rsh"; then
|
||||
AC_MSG_WARN([Failed to find usable remote shell. Using 'rsh'.])
|
||||
with_rsh=rsh
|
||||
elif test yes = "$with_rsh"; then
|
||||
# Make --with-rsh mean the same thing as --with-rsh=rsh
|
||||
with_rsh=rsh
|
||||
fi
|
||||
|
||||
if echo $with_rsh |grep ^/ >/dev/null; then
|
||||
# If $with_rsh is an absolute path, issue a warning if the executable
|
||||
# doesn't exist or isn't usable, but then trust the user and use it
|
||||
# regardless
|
||||
with_default_rsh=$with_rsh
|
||||
AC_MSG_CHECKING([for a remote shell])
|
||||
if ! test -f $with_rsh \
|
||||
|| ! test -x $with_rsh; then
|
||||
# warn the user that they may encounter problems
|
||||
AC_MSG_WARN([$with_rsh is not a path to an executable file])
|
||||
fi
|
||||
else
|
||||
# Search for a remote shell
|
||||
AC_CHECK_PROGS([with_default_rsh], [$with_rsh], "rsh")
|
||||
fi
|
||||
|
||||
AC_DEFINE_UNQUOTED(
|
||||
[RSH_DFLT], ["$with_default_rsh"],
|
||||
[The default remote shell to use, if one does not specify the
|
||||
CVS_RSH environment variable.])
|
||||
dnl done with finding a default CVS_RSH value
|
||||
dnl
|
||||
dnl end --with-rsh
|
||||
dnl
|
||||
|
||||
|
||||
dnl
|
||||
dnl Find a temporary directory
|
||||
@ -1021,7 +1074,7 @@ AC_CONFIG_FILES(contrib/pvcs2rcs, [chmod +x contrib/pvcs2rcs])
|
||||
AC_CONFIG_FILES(contrib/rcs2log:contrib/rcs2log.sh, [chmod +x contrib/rcs2log])
|
||||
AC_CONFIG_FILES(contrib/rcslock, [chmod +x contrib/rcslock])
|
||||
AC_CONFIG_FILES(contrib/sccs2rcs, [chmod +x contrib/sccs2rcs])
|
||||
AC_CONFIG_FILES(doc/mkman, [chmod +x doc/mkman])
|
||||
AC_CONFIG_FILES(doc/mkman:doc/mkman.pl, [chmod +x doc/mkman])
|
||||
AC_CONFIG_FILES(src/cvsbug, [chmod +x src/cvsbug])
|
||||
AC_CONFIG_FILES(windows-NT/fix-msvc-mak:windows-NT/fix-msvc-mak-head.pl:windows-NT/fix-msvc-mak.pl,
|
||||
[chmod +x windows-NT/fix-msvc-mak])
|
||||
@ -1053,7 +1106,7 @@ m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[0-9]*\.[0-9]*\.[0-9]*\.[0-9]],
|
||||
[ cat <<EOF
|
||||
|
||||
You are about to use an unreleased version of CVS. Be sure to
|
||||
read the relevant mailing lists, most importantly <info-cvs@gnu.org>.
|
||||
read the relevant mailing lists, most importantly <info-cvs@nongnu.org>.
|
||||
|
||||
Below you will find information on the status of this version of CVS.
|
||||
|
||||
|
@ -1,8 +1,59 @@
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs_acls.html, cvs_acls.in, log_accum.in: Update links.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* commit_prep.in, cvs_acls.in, log.in, log_accum.in, mfpipe.in,
|
||||
pvcs2rcs.in, rcslock.in: Update links and email addresses.
|
||||
|
||||
2005-07-12 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* clmerge.in, cln_hist.in, commit_prep.in, cvs2vendor.sh, cvs_acls.in,
|
||||
cvscheck.sh, debug_check_log.sh, descend.sh, log.in, log_accum.in,
|
||||
mfpipe.in, rcs-to-cvs.sh, rcs2log.sh, rcs2sccs.sh, rcslock.in,
|
||||
sccs2rcs.in: Add copyright notices.
|
||||
|
||||
2005-07-11 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* clmerge.in, cln_hist.in, commit_prep.in, cvs2vendor.sh, cvs_acls.in,
|
||||
cvscheck.sh, debug_check_log.sh, descend.sh, log.in, log_accum.in,
|
||||
mfpipe.in, rcs-to-cvs.sh, rcs2log.sh, rcs2sccs.sh, rcslock.in,
|
||||
sccs2rcs.in: Update license notices.
|
||||
|
||||
2005-04-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* commit_prep.in, cvs_acls.in, log.in, log_accum.in, mfpipe.in,
|
||||
rcslock.in: Enable taint checking and comment. This closes cvshome.org
|
||||
Issue #224.
|
||||
|
||||
2005-04-08 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* README: Correct my email address.
|
||||
|
||||
2005-01-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am: Update copyright notices.
|
||||
|
||||
2005-01-25 Mark D. Baushke <mdb@cvshome.org>
|
||||
|
||||
* cvs_acls.in: New version from
|
||||
"Peter Connolly" <Peter.Connolly@cnet.com>.
|
||||
* cvs_acls.html: New file from
|
||||
"Peter Connolly" <Peter.Connolly@cnet.com>.
|
||||
* Makefile.am (EXTRA_DIST): Add cvs_acls.html
|
||||
* Makefile.in: Regenerated.
|
||||
|
||||
2004-08-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* log_accum.in: Changes to supress warnings under Perl 5.8.5.
|
||||
(Patch from Jeroen Ruigrok/asmodai <asmodai@wxs.nl>.)
|
||||
|
||||
2004-01-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
Close issue #155.
|
||||
* log_accum.in: Remove unused variables.
|
||||
(Patch from (Ville Skyttä <scop@cvshome.org>.)
|
||||
(Patch from Ville Skyttä <scop@cvshome.org>.)
|
||||
|
||||
2003-10-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# Makefile for GNU CVS contributed sources.
|
||||
# Do not use this makefile directly, but only from `../Makefile'.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -52,6 +54,7 @@ EXTRA_DIST = \
|
||||
cvs2vendor.sh \
|
||||
cvscheck.sh \
|
||||
cvshelp.man \
|
||||
cvs_acls.html \
|
||||
debug_check_log.sh \
|
||||
descend.sh \
|
||||
descend.man \
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -16,9 +16,11 @@
|
||||
|
||||
# Makefile for GNU CVS contributed sources.
|
||||
# Do not use this makefile directly, but only from `../Makefile'.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -30,6 +32,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -37,7 +40,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -51,6 +53,36 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = contrib
|
||||
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/check_cvs.in $(srcdir)/clmerge.in \
|
||||
$(srcdir)/cln_hist.in $(srcdir)/commit_prep.in \
|
||||
$(srcdir)/cvs_acls.in $(srcdir)/log.in $(srcdir)/log_accum.in \
|
||||
$(srcdir)/mfpipe.in $(srcdir)/pvcs2rcs.in $(srcdir)/rcs2log.sh \
|
||||
$(srcdir)/rcslock.in $(srcdir)/sccs2rcs.in ChangeLog
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = check_cvs clmerge cln_hist commit_prep cvs_acls \
|
||||
log log_accum mfpipe pvcs2rcs rcs2log rcslock sccs2rcs
|
||||
am__installdirs = "$(DESTDIR)$(contribdir)" "$(DESTDIR)$(contribdir)"
|
||||
contribSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
SCRIPTS = $(contrib_SCRIPTS)
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
contribDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(contrib_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -120,6 +152,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -133,6 +167,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -140,9 +175,8 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
|
||||
with_default_rsh = @with_default_rsh@
|
||||
contribdir = $(pkgdatadir)/contrib
|
||||
|
||||
contrib_SCRIPTS = \
|
||||
check_cvs \
|
||||
clmerge \
|
||||
@ -161,20 +195,16 @@ contrib_SCRIPTS = \
|
||||
rcslock \
|
||||
sccs2rcs
|
||||
|
||||
|
||||
contrib_DATA = \
|
||||
README \
|
||||
intro.doc
|
||||
|
||||
|
||||
contrib_MANS = \
|
||||
cvscheck.man
|
||||
|
||||
|
||||
bin_LINKS = \
|
||||
rcs2log
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
.cvsignore \
|
||||
$(contrib_DATA) \
|
||||
@ -182,6 +212,7 @@ EXTRA_DIST = \
|
||||
cvs2vendor.sh \
|
||||
cvscheck.sh \
|
||||
cvshelp.man \
|
||||
cvs_acls.html \
|
||||
debug_check_log.sh \
|
||||
descend.sh \
|
||||
descend.man \
|
||||
@ -190,68 +221,74 @@ EXTRA_DIST = \
|
||||
rcs2log.sh \
|
||||
rcs2sccs.sh
|
||||
|
||||
|
||||
CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS)
|
||||
|
||||
SUFFIXES = .sh
|
||||
subdir = contrib
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = check_cvs clmerge cln_hist commit_prep cvs_acls log \
|
||||
log_accum mfpipe pvcs2rcs rcs2log rcslock sccs2rcs
|
||||
SCRIPTS = $(contrib_SCRIPTS)
|
||||
|
||||
DIST_SOURCES =
|
||||
DATA = $(contrib_DATA)
|
||||
|
||||
DIST_COMMON = README $(srcdir)/Makefile.in ChangeLog Makefile.am \
|
||||
check_cvs.in clmerge.in cln_hist.in commit_prep.in cvs_acls.in \
|
||||
log.in log_accum.in mfpipe.in pvcs2rcs.in rcs2log.sh rcslock.in \
|
||||
sccs2rcs.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .sh
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu contrib/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
check_cvs: $(top_builddir)/config.status check_cvs.in
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
check_cvs: $(top_builddir)/config.status $(srcdir)/check_cvs.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
clmerge: $(top_builddir)/config.status clmerge.in
|
||||
clmerge: $(top_builddir)/config.status $(srcdir)/clmerge.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
cln_hist: $(top_builddir)/config.status cln_hist.in
|
||||
cln_hist: $(top_builddir)/config.status $(srcdir)/cln_hist.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
commit_prep: $(top_builddir)/config.status commit_prep.in
|
||||
commit_prep: $(top_builddir)/config.status $(srcdir)/commit_prep.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
cvs_acls: $(top_builddir)/config.status cvs_acls.in
|
||||
cvs_acls: $(top_builddir)/config.status $(srcdir)/cvs_acls.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
log: $(top_builddir)/config.status log.in
|
||||
log: $(top_builddir)/config.status $(srcdir)/log.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
log_accum: $(top_builddir)/config.status log_accum.in
|
||||
log_accum: $(top_builddir)/config.status $(srcdir)/log_accum.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
mfpipe: $(top_builddir)/config.status mfpipe.in
|
||||
mfpipe: $(top_builddir)/config.status $(srcdir)/mfpipe.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
pvcs2rcs: $(top_builddir)/config.status pvcs2rcs.in
|
||||
pvcs2rcs: $(top_builddir)/config.status $(srcdir)/pvcs2rcs.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
rcs2log: $(top_builddir)/config.status rcs2log.sh
|
||||
rcs2log: $(top_builddir)/config.status $(srcdir)/rcs2log.sh
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
rcslock: $(top_builddir)/config.status rcslock.in
|
||||
rcslock: $(top_builddir)/config.status $(srcdir)/rcslock.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
sccs2rcs: $(top_builddir)/config.status sccs2rcs.in
|
||||
sccs2rcs: $(top_builddir)/config.status $(srcdir)/sccs2rcs.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
contribSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
install-contribSCRIPTS: $(contrib_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(contribdir)
|
||||
test -z "$(contribdir)" || $(mkdir_p) "$(DESTDIR)$(contribdir)"
|
||||
@list='$(contrib_SCRIPTS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f $$d$$p; then \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " $(contribSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f"; \
|
||||
$(contribSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f; \
|
||||
echo " $(contribSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(contribdir)/$$f'"; \
|
||||
$(contribSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(contribdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
@ -259,27 +296,26 @@ uninstall-contribSCRIPTS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(contrib_SCRIPTS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \
|
||||
rm -f $(DESTDIR)$(contribdir)/$$f; \
|
||||
echo " rm -f '$(DESTDIR)$(contribdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(contribdir)/$$f"; \
|
||||
done
|
||||
uninstall-info-am:
|
||||
contribDATA_INSTALL = $(INSTALL_DATA)
|
||||
install-contribDATA: $(contrib_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(contribdir)
|
||||
test -z "$(contribdir)" || $(mkdir_p) "$(DESTDIR)$(contribdir)"
|
||||
@list='$(contrib_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
echo " $(contribDATA_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f"; \
|
||||
$(contribDATA_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(contribDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(contribdir)/$$f'"; \
|
||||
$(contribDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(contribdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-contribDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(contrib_DATA)'; for p in $$list; do \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \
|
||||
rm -f $(DESTDIR)$(contribdir)/$$f; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(contribdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(contribdir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
@ -287,10 +323,6 @@ TAGS:
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
@ -304,7 +336,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -322,9 +354,10 @@ distdir: $(DISTFILES)
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS) $(DATA)
|
||||
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(contribdir) $(DESTDIR)$(contribdir)
|
||||
for dir in "$(DESTDIR)$(contribdir)" "$(DESTDIR)$(contribdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
@ -345,7 +378,7 @@ clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -362,6 +395,8 @@ dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -397,8 +432,8 @@ uninstall-am: uninstall-contribDATA uninstall-contribSCRIPTS \
|
||||
uninstall-info-am uninstall-local
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am info info-am install \
|
||||
install-am install-contribDATA install-contribSCRIPTS \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-contribDATA install-contribSCRIPTS \
|
||||
install-data install-data-am install-data-local install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
|
@ -71,8 +71,7 @@ An attempt at a table of Contents for this directory:
|
||||
useful.
|
||||
|
||||
debug_check_log A shell script to help analyze sanity check failures.
|
||||
Contributed by Derek R. Price
|
||||
<derek.price@openavenue.com>
|
||||
Contributed by Derek R. Price <derek@ximbiot.com>.
|
||||
|
||||
descend A shell script that can be used to recursively
|
||||
descend.man descend through a directory. In CVS 1.2, this was
|
||||
|
@ -1,5 +1,17 @@
|
||||
#! @PERL@
|
||||
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
# Merge conflicted ChangeLogs
|
||||
# tromey Mon Aug 15 1994
|
||||
|
||||
|
@ -1,5 +1,17 @@
|
||||
#! @PERL@
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# Contributed by David G. Grubbs <dgg@ksr.com>
|
||||
#
|
||||
|
@ -1,6 +1,36 @@
|
||||
#! @PERL@
|
||||
#! @PERL@ -T
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# THIS SCRIPT IS PROBABLY BROKEN. REMOVING THE -T SWITCH ON THE #! LINE ABOVE
|
||||
# WOULD FIX IT, BUT THIS IS INSECURE. WE RECOMMEND FIXING THE ERRORS WHICH THE
|
||||
# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
|
||||
# SERVER TRIGGER. PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
|
||||
# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
|
||||
# <@PACKAGE_BUGREPORT@> MAILING LIST.
|
||||
#
|
||||
# For more on general Perl security and taint-checking, please try running the
|
||||
# `perldoc perlsec' command.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Perl filter to handle pre-commit checking of files. This program
|
||||
# records the last directory where commits will be taking place for
|
||||
# use by the log_accum.pl script.
|
||||
|
@ -1,5 +1,17 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (C) 1997-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# cvs2vendor - move revsisions from files in A to files in B
|
||||
#
|
||||
# The primary reason for this script is to move deltas from a
|
||||
|
459
contrib/cvs/contrib/cvs_acls.html
Normal file
459
contrib/cvs/contrib/cvs_acls.html
Normal file
@ -0,0 +1,459 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>cvs_acls</title>
|
||||
<link rev="made" href="mailto:root@localhost" />
|
||||
</head>
|
||||
|
||||
<body style="background-color: white">
|
||||
|
||||
<p><a name="__index__"></a></p>
|
||||
<!-- INDEX BEGIN -->
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="#name">Name</a></li>
|
||||
<li><a href="#synopsis">Synopsis</a></li>
|
||||
<li><a href="#licensing">Licensing</a></li>
|
||||
<li><a href="#description">Description</a></li>
|
||||
<li><a href="#enhancements">Enhancements</a></li>
|
||||
<ul>
|
||||
|
||||
<li><a href="#fixed_bugs">Fixed Bugs</a></li>
|
||||
<li><a href="#enhancements">Enhancements</a></li>
|
||||
<li><a href="#todos">ToDoS</a></li>
|
||||
</ul>
|
||||
|
||||
<li><a href="#version_information">Version Information</a></li>
|
||||
<li><a href="#installation">Installation</a></li>
|
||||
<li><a href="#format_of_the_cvsacl_file">Format of the cvsacl file</a></li>
|
||||
<li><a href="#program_logic">Program Logic</a></li>
|
||||
<ul>
|
||||
|
||||
<li><a href="#pseudocode">Pseudocode</a></li>
|
||||
<li><a href="#sanity_check">Sanity Check</a></li>
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
<!-- INDEX END -->
|
||||
|
||||
<hr />
|
||||
<p>
|
||||
</p>
|
||||
<h1><a name="name">Name</a></h1>
|
||||
<p>cvs_acls - Access Control List for CVS</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="synopsis">Synopsis</a></h1>
|
||||
<p>In 'commitinfo':</p>
|
||||
<pre>
|
||||
repository/path/to/restrict $CVSROOT/CVSROOT/cvs_acls [-d][-u $USER][-f <logfile>]</pre>
|
||||
<p>where:</p>
|
||||
<pre>
|
||||
-d turns on debug information
|
||||
-u passes the client-side userId to the cvs_acls script
|
||||
-f specifies an alternate filename for the restrict_log file</pre>
|
||||
<p>In 'cvsacl':</p>
|
||||
<pre>
|
||||
{allow.*,deny.*} [|user,user,... [|repos,repos,... [|branch,branch,...]]]</pre>
|
||||
<p>where:</p>
|
||||
<pre>
|
||||
allow|deny - allow: commits are allowed; deny: prohibited
|
||||
user - userId to be allowed or restricted
|
||||
repos - file or directory to be allowed or restricted
|
||||
branch - branch to be allowed or restricted</pre>
|
||||
<p>See below for examples.</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="licensing">Licensing</a></h1>
|
||||
<p>cvs_acls - provides access control list functionality for CVS
|
||||
</p>
|
||||
<pre>
|
||||
|
||||
Copyright (c) 2004 by Peter Connolly <peter.connolly@cnet.com>
|
||||
All rights reserved.</pre>
|
||||
<p>This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.</p>
|
||||
<p>This program is distributed in the hope that it will be useful,
|
||||
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.</p>
|
||||
<p>You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="description">Description</a></h1>
|
||||
<p>This script--cvs_acls--is invoked once for each directory within a
|
||||
``cvs commit''. The set of files being committed for that directory as
|
||||
well as the directory itself, are passed to this script. This script
|
||||
checks its 'cvsacl' file to see if any of the files being committed
|
||||
are on the 'cvsacl' file's restricted list. If any of the files are
|
||||
restricted, then the cvs_acls script passes back an exit code of 1
|
||||
which disallows the commits for that directory.</p>
|
||||
<p>Messages are returned to the committer indicating the <a href="#item_file"><code>file(s)</code></a> that
|
||||
he/she are not allowed to committ. Additionally, a site-specific
|
||||
set of messages (e.g., contact information) can be included in these
|
||||
messages.</p>
|
||||
<p>When a commit is prohibited, log messages are written to a restrict_log
|
||||
file in $CVSROOT/CVSROOT. This default file can be redirected to
|
||||
another destination.</p>
|
||||
<p>The script is triggered from the 'commitinfo' file in $CVSROOT/CVSROOT/.</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="enhancements">Enhancements</a></h1>
|
||||
<p>This section lists the bug fixes and enhancements added to cvs_acls
|
||||
that make up the current cvs_acls.</p>
|
||||
<p>
|
||||
</p>
|
||||
<h2><a name="fixed_bugs">Fixed Bugs</a></h2>
|
||||
<p>This version attempts to get rid the following bugs from the
|
||||
original version of cvs_acls:</p>
|
||||
<ul>
|
||||
<li><strong><a name="item_files">Multiple entries on an 'cvsacl' line will be matched individually,
|
||||
instead of requiring that all commit files *exactly* match all
|
||||
'cvsacl' entries. Commiting a file not in the 'cvsacl' list would
|
||||
allow *all* files (including a restricted file) to be committed.</a></strong><br />
|
||||
</li>
|
||||
[IMO, this basically made the original script unuseable for our
|
||||
situation since any arbitrary combination of committed files could
|
||||
avoid matching the 'cvsacl's entries.]
|
||||
<p></p>
|
||||
<li><strong><a name="item_handle_specific_filename_restrictions_2e_cvs_acls_">Handle specific filename restrictions. cvs_acls didn't restrict
|
||||
individual files specified in 'cvsacl'.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_correctly_handle_multiple_2c_specific_filename_res">Correctly handle multiple, specific filename restrictions</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_prohibit_mix_of_dirs_and_files_on_a_single__27cvsa">Prohibit mix of dirs and files on a single 'cvsacl' line
|
||||
[To simplify the logic and because this would be normal usage.]</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_correctly_handle_a_mixture_of_branch_restrictions_">Correctly handle a mixture of branch restrictions within one work
|
||||
directory</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item__24cvsroot_existence_is_checked_too_late">$CVSROOT existence is checked too late</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_option">Correctly handle the CVSROOT=:local:/... option (useful for
|
||||
interactive testing)</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_logic">Replacing shoddy ``$universal_off'' logic
|
||||
(Thanks to Karl-Konig Konigsson for pointing this out.)</a></strong><br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
||||
<h2><a name="enhancements">Enhancements</a></h2>
|
||||
<ul>
|
||||
<li><strong><a name="item_checks_modules_in_the__27cvsacl_27_file_for_valid_">Checks modules in the 'cvsacl' file for valid files and directories</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_accurately_report_restricted_entries_and_their_mat">Accurately report restricted entries and their matching patterns</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_simplified_and_commented_overly_complex_perl_regex">Simplified and commented overly complex PERL REGEXPs for readability
|
||||
and maintainability</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_skip_the_rest_of_processing_if_a_mismatch_on_porti">Skip the rest of processing if a mismatch on portion of the 'cvsacl' line</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_file">Get rid of opaque ``karma'' messages in favor of user-friendly messages
|
||||
that describe which user, <code>file(s)</code> and <code>branch(es)</code> were disallowed.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_add_optional__27restrict_msg_27_file_for_additiona">Add optional 'restrict_msg' file for additional, site-specific
|
||||
restriction messages.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_userid">Take a ``-u'' parameter for $USER from commit_prep so that the script
|
||||
can do restrictions based on the client-side userId rather than the
|
||||
server-side userId (usually 'cvs').</a></strong><br />
|
||||
</li>
|
||||
(See discussion below on ``Admin Setup'' for more on this point.)
|
||||
<p></p>
|
||||
<li><strong><a name="item_added_a_lot_more_debug_trace">Added a lot more debug trace</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_tested_these_restrictions_with_concurrent_use_of_p">Tested these restrictions with concurrent use of pserver and SSH
|
||||
access to model our transition from pserver to ext access.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_added_logging_of_restricted_commit_attempts_2e_res">Added logging of restricted commit attempts.
|
||||
Restricted commits can be sent to a default file:
|
||||
$CVSROOT/CVSROOT/restrictlog or to one passed to the script
|
||||
via the -f command parameter.</a></strong><br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
||||
<h2><a name="todos">ToDoS</a></h2>
|
||||
<ul>
|
||||
<li><strong><a name="item_need_to_deal_with_pserver_2fssh_transition_with_co">Need to deal with pserver/SSH transition with conflicting umasks?</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_use_a_cpan_module_to_handle_command_parameters_2e">Use a CPAN module to handle command parameters.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_use_a_cpan_module_to_clone_data_structures_2e">Use a CPAN module to clone data structures.</a></strong><br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="version_information">Version Information</a></h1>
|
||||
<p>This is not offered as a fix to the original 'cvs_acls' script since it
|
||||
differs substantially in goals and methods from the original and there
|
||||
are probably a significant number of people out there that still require
|
||||
the original version's functionality.</p>
|
||||
<p>The 'cvsacl' file flags of 'allow' and 'deny' were intentionally
|
||||
changed to 'allow' and 'deny' because there are enough differences
|
||||
between the original script's behavior and this one's that we wanted to
|
||||
make sure that users will rethink their 'cvsacl' file formats before
|
||||
plugging in this newer script.</p>
|
||||
<p>Please note that there has been very limited cross-platform testing of
|
||||
this script!!! (We did not have the time or resources to do exhaustive
|
||||
cross-platform testing.)</p>
|
||||
<p>It was developed and tested under Red Hat Linux 9.0 using PERL 5.8.0.
|
||||
Additionally, it was built and tested under Red Hat Linux 7.3 using
|
||||
PERL 5.6.1.</p>
|
||||
<p>$Id: cvs_acls.html,v 1.1.2.2 2005/09/01 13:44:49 dprice Exp $</p>
|
||||
<p>This version is based on the 1.11.13 version of cvs_acls
|
||||
<a href="mailto:peter.connolly@cnet.com">peter.connolly@cnet.com</a> (Peter Connolly)</p>
|
||||
<pre>
|
||||
Access control lists for CVS. dgg@ksr.com (David G. Grubbs)
|
||||
Branch specific controls added by voisine@bytemobile.com (Aaron Voisine)</pre>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="installation">Installation</a></h1>
|
||||
<p>To use this program, do the following four things:</p>
|
||||
<p>0. Install PERL, version 5.6.1 or 5.8.0.</p>
|
||||
<p>1. Admin Setup:</p>
|
||||
<pre>
|
||||
There are two choices here.</pre>
|
||||
<pre>
|
||||
a) The first option is to use the $ENV{"USER"}, server-side userId
|
||||
(from the third column of your pserver 'passwd' file) as the basis for
|
||||
your restrictions. In this case, you will (at a minimum) want to set
|
||||
up a new "cvsadmin" userId and group on the pserver machine.
|
||||
CVS administrators will then set up their 'passwd' file entries to
|
||||
run either as "cvs" (for regular users) or as "cvsadmin" (for power
|
||||
users). Correspondingly, your 'cvsacl' file will only list 'cvs'
|
||||
and 'cvsadmin' as the userIds in the second column.</pre>
|
||||
<pre>
|
||||
Commentary: A potential weakness of this is that the xinetd
|
||||
cvspserver process will need to run as 'root' in order to switch
|
||||
between the 'cvs' and the 'cvsadmin' userIds. Some sysadmins don't
|
||||
like situations like this and may want to chroot the process.
|
||||
Talk to them about this point...</pre>
|
||||
<pre>
|
||||
b) The second option is to use the client-side userId as the basis for
|
||||
your restrictions. In this case, all the xinetd cvspserver processes
|
||||
can run as userId 'cvs' and no 'root' userId is required. If you have
|
||||
a 'passwd' file that lists 'cvs' as the effective run-time userId for
|
||||
all your users, then no changes to this file are needed. Your 'cvsacl'
|
||||
file will use the individual, client-side userIds in its 2nd column.</pre>
|
||||
<pre>
|
||||
As long as the userIds in pserver's 'passwd' file match those userIds
|
||||
that your Linux server know about, this approach is ideal if you are
|
||||
planning to move from pserver to SSH access at some later point in time.
|
||||
Just by switching the CVSROOT var from CVSROOT=:pserver:<userId>... to
|
||||
CVSROOT=:ext:<userId>..., users can switch over to SSH access without
|
||||
any other administrative changes. When all users have switched over to
|
||||
SSH, the inherently insecure xinetd cvspserver process can be disabled.
|
||||
[<a href="http://ximbiot.com/cvs/manual/cvs-1.11.17/cvs_2.html#SEC32">http://ximbiot.com/cvs/manual/cvs-1.11.17/cvs_2.html#SEC32</a>]</pre>
|
||||
<pre>
|
||||
:TODO: The only potential glitch with the SSH approach is the possibility
|
||||
that each user can have differing umasks that might interfere with one
|
||||
another, especially during a transition from pserver to SSH. As noted
|
||||
in the ToDo section, this needs a good strategy and set of tests for that
|
||||
yet...</pre>
|
||||
<p>2. Put two lines, as the *only* non-comment lines, in your commitinfo file:</p>
|
||||
<pre>
|
||||
ALL $CVSROOT/CVSROOT/commit_prep
|
||||
ALL $CVSROOT/CVSROOT/cvs_acls [-d][-u $USER ][-f <logfilename>]</pre>
|
||||
<pre>
|
||||
where "-d" turns on debug trace
|
||||
"-u $USER" passes the client-side userId to cvs_acls
|
||||
"-f <logfilename"> overrides the default filename used to log
|
||||
restricted commit attempts.</pre>
|
||||
<pre>
|
||||
(These are handled in the processArgs() subroutine.)</pre>
|
||||
<p>If you are using client-side userIds to restrict access to your
|
||||
repository, make sure that they are in this order since the commit_prep
|
||||
script is required in order to pass the $USER parameter.</p>
|
||||
<p>A final note about the repository matching pattern. The example above
|
||||
uses ``ALL'' but note that this means that the cvs_acls script will run
|
||||
for each and every commit in your repository. Obviously, in a large
|
||||
repository this adds up to a lot of overhead that may not be necesary.
|
||||
A better strategy is to use a repository pattern that is more specific
|
||||
to the areas that you wish to secure.</p>
|
||||
<p>3. Install this file as $CVSROOT/CVSROOT/cvs_acls and make it executable.</p>
|
||||
<p>4. Create a file named CVSROOT/cvsacl and optionally add it to
|
||||
CVSROOT/checkoutlist and check it in. See the CVS manual's
|
||||
administrative files section about checkoutlist. Typically:</p>
|
||||
<pre>
|
||||
$ cvs checkout CVSROOT
|
||||
$ cd CVSROOT
|
||||
[ create the cvsacl file, include 'commitinfo' line ]
|
||||
[ add cvsacl to checkoutlist ]
|
||||
$ cvs add cvsacl
|
||||
$ cvs commit -m 'Added cvsacl for use with cvs_acls.' cvsacl checkoutlist</pre>
|
||||
<p>Note: The format of the 'cvsacl' file is described in detail immediately
|
||||
below but here is an important set up point:</p>
|
||||
<pre>
|
||||
Make sure to include a line like the following:</pre>
|
||||
<pre>
|
||||
deny||CVSROOT/commitinfo CVSROOT/cvsacl
|
||||
allow|cvsadmin|CVSROOT/commitinfo CVSROOT/cvsacl</pre>
|
||||
<pre>
|
||||
that restricts access to commitinfo and cvsacl since this would be one of
|
||||
the easiest "end runs" around this ACL approach. ('commitinfo' has the
|
||||
line that executes the cvs_acls script and, of course, all the
|
||||
restrictions are in 'cvsacl'.)</pre>
|
||||
<p>5. (Optional) Create a 'restrict_msg' file in the $CVSROOT/CVSROOT directory.
|
||||
Whenever there is a restricted file or dir message, cvs_acls will look
|
||||
for this file and, if it exists, print its contents as part of the
|
||||
commit-denial message. This gives you a chance to print any site-specific
|
||||
information (e.g., who to call, what procedures to look up,...) whenever
|
||||
a commit is denied.</p>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="format_of_the_cvsacl_file">Format of the cvsacl file</a></h1>
|
||||
<p>The 'cvsacl' file determines whether you may commit files. It contains lines
|
||||
read from top to bottom, keeping track of whether a given user, repository
|
||||
and branch combination is ``allowed'' or ``denied.'' The script will assume
|
||||
``allowed'' on all repository paths until 'allow' and 'deny' rules change
|
||||
that default.</p>
|
||||
<p>The normal pattern is to specify an 'deny' rule to turn off
|
||||
access to ALL users, then follow it with a matching 'allow' rule that will
|
||||
turn on access for a select set of users. In the case of multiple rules for
|
||||
the same user, repository and branch, the last one takes precedence.</p>
|
||||
<p>Blank lines and lines with only comments are ignored. Any other lines not
|
||||
beginning with ``allow'' or ``deny'' are logged to the restrict_log file.</p>
|
||||
<p>Lines beginning with ``allow'' or ``deny'' are assumed to be '|'-separated
|
||||
triples: (All spaces and tabs are ignored in a line.)</p>
|
||||
<pre>
|
||||
{allow.*,deny.*} [|user,user,... [|repos,repos,... [|branch,branch,...]]]</pre>
|
||||
<pre>
|
||||
1. String starting with "allow" or "deny".
|
||||
2. Optional, comma-separated list of usernames.
|
||||
3. Optional, comma-separated list of repository pathnames.
|
||||
These are pathnames relative to $CVSROOT. They can be directories or
|
||||
filenames. A directory name allows or restricts access to all files and
|
||||
directories below it. One line can have either directories or filenames
|
||||
but not both.
|
||||
4. Optional, comma-separated list of branch tags.
|
||||
If not specified, all branches are assumed. Use HEAD to reference the
|
||||
main branch.</pre>
|
||||
<p>Example: (Note: No in-line comments.)</p>
|
||||
<pre>
|
||||
# ----- Make whole repository unavailable.
|
||||
deny</pre>
|
||||
<pre>
|
||||
# ----- Except for user "dgg".
|
||||
allow|dgg</pre>
|
||||
<pre>
|
||||
# ----- Except when "fred" or "john" commit to the
|
||||
# module whose repository is "bin/ls"
|
||||
allow|fred, john|bin/ls</pre>
|
||||
<pre>
|
||||
# ----- Except when "ed" commits to the "stable"
|
||||
# branch of the "bin/ls" repository
|
||||
allow|ed|/bin/ls|stable</pre>
|
||||
<p>
|
||||
</p>
|
||||
<hr />
|
||||
<h1><a name="program_logic">Program Logic</a></h1>
|
||||
<p>CVS passes to @ARGV an absolute directory pathname (the repository
|
||||
appended to your $CVSROOT variable), followed by a list of filenames
|
||||
within that directory that are to be committed.</p>
|
||||
<p>The script walks through the 'cvsacl' file looking for matches on
|
||||
the username, repository and branch.</p>
|
||||
<p>A username match is simply the user's name appearing in the second
|
||||
column of the cvsacl line in a space-or-comma separate list. If
|
||||
blank, then any user will match.</p>
|
||||
<p>A repository match:</p>
|
||||
<ul>
|
||||
<li><strong><a name="item_each_entry_in_the_modules_section_of_the_current__">Each entry in the modules section of the current 'cvsacl' line is
|
||||
examined to see if it is a dir or a file. The line must have
|
||||
either files or dirs, but not both. (To simplify the logic.)</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_if_neither_2c_then_assume_the__27cvsacl_27_file_wa">If neither, then assume the 'cvsacl' file was set up in error and
|
||||
skip that 'allow' line.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_if_a_dir_2c_then_each_dir_pattern_is_matched_separ">If a dir, then each dir pattern is matched separately against the
|
||||
beginning of each of the committed files in @ARGV.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_if_a_file_2c_then_each_file_pattern_is_matched_exa">If a file, then each file pattern is matched exactly against each
|
||||
of the files to be committed in @ARGV.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_repository_and_branch_must_both_match_together_2e_">Repository and branch must BOTH match together. This is to cover
|
||||
the use case where a user has multiple branches checked out in
|
||||
a single work directory. Commit files can be from different
|
||||
branches.</a></strong><br />
|
||||
</li>
|
||||
A branch match is either:
|
||||
<ul>
|
||||
<li><strong><a name="item_when_no_branches_are_listed_in_the_fourth_column_2">When no branches are listed in the fourth column. (``Match any.'')</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_all_elements_from_the_fourth_column_are_matched_ag">All elements from the fourth column are matched against each of
|
||||
the tag names for $ARGV[1..$#ARGV] found in the %branches file.</a></strong><br />
|
||||
</li>
|
||||
</ul>
|
||||
<li><strong><a name="item__27allow_27_match_remove_that_match_from_the_tally">'allow' match remove that match from the tally map.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_restricted">Restricted ('deny') matches are saved in the %repository_matches
|
||||
table.</a></strong><br />
|
||||
</li>
|
||||
<li><strong><a name="item_if_there_is_a_match_on_user_2c_repository_and_bran">If there is a match on user, repository and branch:</a></strong><br />
|
||||
</li>
|
||||
<pre>
|
||||
If repository, branch and user match
|
||||
if 'deny'
|
||||
add %repository_matches entries to %restricted_entries
|
||||
else if 'allow'
|
||||
remove %repository_matches entries from %restricted_entries</pre>
|
||||
<li><strong><a name="item_at_the_end_of_all_the__27cvsacl_27_line_checks_2c_">At the end of all the 'cvsacl' line checks, check to see if there
|
||||
are any entries in the %restricted_entries. If so, then deny the
|
||||
commit.</a></strong><br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
</p>
|
||||
<h2><a name="pseudocode">Pseudocode</a></h2>
|
||||
<pre>
|
||||
read CVS/Entries file and create branch{file}->{branch} hash table
|
||||
+ for each 'allow' and 'deny' line in the 'cvsacl' file:
|
||||
| user match?
|
||||
| - Yes: set $user_match = 1;
|
||||
| repository and branch match?
|
||||
| - Yes: add to %repository_matches;
|
||||
| did user, repository match?
|
||||
| - Yes: if 'deny' then
|
||||
| add %repository_matches -> %restricted_entries
|
||||
| if 'allow' then
|
||||
| remove %repository_matches <- %restricted_entries
|
||||
+ end for loop
|
||||
any saved restrictions?
|
||||
no: exit,
|
||||
set exit code allowing commits and exit
|
||||
yes: report restrictions,
|
||||
set exit code prohibiting commits and exit</pre>
|
||||
<p>
|
||||
</p>
|
||||
<h2><a name="sanity_check">Sanity Check</a></h2>
|
||||
<pre>
|
||||
1) file allow trumps a dir deny
|
||||
deny||java/lib
|
||||
allow||java/lib/README
|
||||
2) dir allow can undo a file deny
|
||||
deny||java/lib/README
|
||||
allow||java/lib
|
||||
3) file deny trumps a dir allow
|
||||
allow||java/lib
|
||||
deny||java/lib/README
|
||||
4) dir deny trumps a file allow
|
||||
allow||java/lib/README
|
||||
deny||java/lib
|
||||
... so last match always takes precedence</pre>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,17 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# cvscheck - identify files added, changed, or removed
|
||||
# in CVS working directory
|
||||
#
|
||||
|
@ -1,20 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2000-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
#
|
||||
# This program is intended to take a check.log file generated by a failed run of
|
||||
# sanity.sh as input and run expr line by line on it. It seems a much easier
|
||||
# way of spotting a single failed line in a 100 line test result.
|
||||
#
|
||||
|
||||
#
|
||||
# This script falls under the GNU General Public License and is intended to
|
||||
# be distributed with CVS.
|
||||
#
|
||||
|
||||
#
|
||||
# No warranties, express or implied.
|
||||
#
|
||||
|
||||
#
|
||||
# Contributed by Derek R. Price <derek.price@openavenue.com>
|
||||
#
|
||||
|
@ -1,5 +1,17 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# descend - walk down a directory tree and execute a command at each node
|
||||
|
||||
fullname=$0
|
||||
|
@ -1,6 +1,36 @@
|
||||
#! @PERL@
|
||||
#! @PERL@ -T
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# THIS SCRIPT IS PROBABLY BROKEN. REMOVING THE -T SWITCH ON THE #! LINE ABOVE
|
||||
# WOULD FIX IT, BUT THIS IS INSECURE. WE RECOMMEND FIXING THE ERRORS WHICH THE
|
||||
# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
|
||||
# SERVER TRIGGER. PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
|
||||
# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
|
||||
# <@PACKAGE_BUGREPORT@> MAILING LIST.
|
||||
#
|
||||
# For more on general Perl security and taint-checking, please try running the
|
||||
# `perldoc perlsec' command.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# XXX: FIXME: handle multiple '-f logfile' arguments
|
||||
#
|
||||
# XXX -- I HATE Perl! This *will* be re-written in shell/awk/sed soon!
|
||||
|
@ -1,6 +1,36 @@
|
||||
#! @PERL@
|
||||
#! @PERL@ -T
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# THIS SCRIPT IS PROBABLY BROKEN. REMOVING THE -T SWITCH ON THE #! LINE ABOVE
|
||||
# WOULD FIX IT, BUT THIS IS INSECURE. WE RECOMMEND FIXING THE ERRORS WHICH THE
|
||||
# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
|
||||
# SERVER TRIGGER. PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
|
||||
# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
|
||||
# <@PACKAGE_BUGREPORT@> MAILING LIST.
|
||||
#
|
||||
# For more on general Perl security and taint-checking, please try running the
|
||||
# `perldoc perlsec' command.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Perl filter to handle the log messages from the checkin of files in
|
||||
# a directory. This script will group the lists of files by log
|
||||
# message, and mail a single consolidated log message at the end of
|
||||
@ -51,7 +81,7 @@ $rcsidinfo = 2;
|
||||
# When set properly, this will cause links to aspects of the project to
|
||||
# print in the commit emails.
|
||||
#$CVSWEB_SCHEME = "http";
|
||||
#$CVSWEB_DOMAIN = "cvshome.org";
|
||||
#$CVSWEB_DOMAIN = "nongnu.org";
|
||||
#$CVSWEB_PORT = "80";
|
||||
#$CVSWEB_URI = "source/browse/";
|
||||
#$SEND_URL = "true";
|
||||
@ -60,7 +90,7 @@ $SEND_DIFF = "true";
|
||||
|
||||
# Set this to a domain to have CVS pretend that all users who make
|
||||
# commits have mail accounts within that domain.
|
||||
#$EMULATE_LOCAL_MAIL_USER="cvshome.org";
|
||||
#$EMULATE_LOCAL_MAIL_USER="nongnu.org";
|
||||
|
||||
# Set this to '-c' for context diffs; defaults to '-u' for unidiff format.
|
||||
$difftype = '-uN';
|
||||
@ -273,7 +303,7 @@ sub change_summary {
|
||||
}
|
||||
|
||||
$diff = "\n\n";
|
||||
$vhost = @path[0];
|
||||
$vhost = $path[0];
|
||||
if ($CVSWEB_PORT eq "80") {
|
||||
$cvsweb_base = "$CVSWEB_SCHEME://$vhost.$CVSWEB_DOMAIN/$CVSWEB_URI";
|
||||
}
|
||||
@ -369,7 +399,7 @@ sub build_header {
|
||||
#sub mlist_map
|
||||
#{
|
||||
# local($path) = @_;
|
||||
# my $domain = "cvshome.org";
|
||||
# my $domain = "nongnu.org";
|
||||
#
|
||||
# if ($path =~ /^([^\/]+)/) {
|
||||
# return "cvs\@$1.$domain";
|
||||
@ -457,7 +487,7 @@ sub mail_notification
|
||||
|
||||
my $subj = &derive_subject_from_changes_file ();
|
||||
|
||||
if ($EMULATE_LOCAL_MAIL_USER NE "") {
|
||||
if ($EMULATE_LOCAL_MAIL_USER ne "") {
|
||||
$MAIL_FROM = "$cvs_user\@$EMULATE_LOCAL_MAIL_USER";
|
||||
}
|
||||
|
||||
@ -536,7 +566,6 @@ $state = $STATE_NONE;
|
||||
$cvs_user = $ENV{'USER'} || getlogin || (getpwuid($<))[0] || sprintf("uid#%d",$<);
|
||||
@files = process_argv(@ARGV);
|
||||
@path = split('/', $files[0]);
|
||||
$repository = $path[0];
|
||||
if ($#path == 0) {
|
||||
$dir = ".";
|
||||
} else {
|
||||
|
@ -1,6 +1,36 @@
|
||||
#! @PERL@
|
||||
#! @PERL@ -T
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# THIS SCRIPT IS PROBABLY BROKEN. REMOVING THE -T SWITCH ON THE #! LINE ABOVE
|
||||
# WOULD FIX IT, BUT THIS IS INSECURE. WE RECOMMEND FIXING THE ERRORS WHICH THE
|
||||
# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
|
||||
# SERVER TRIGGER. PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
|
||||
# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
|
||||
# <@PACKAGE_BUGREPORT@> MAILING LIST.
|
||||
#
|
||||
# For more on general Perl security and taint-checking, please try running the
|
||||
# `perldoc perlsec' command.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# From: clyne@niwot.scd.ucar.EDU (John Clyne)
|
||||
# Date: Fri, 28 Feb 92 09:54:21 MST
|
||||
#
|
||||
|
@ -103,7 +103,7 @@
|
||||
# pvcs_archives.
|
||||
# * You must use the -pflat option when processing single filenames
|
||||
# passed as arguments to the script. This is probably a bug.
|
||||
# * questions, comments, additions can be sent to info-cvs@gnu.org
|
||||
# * questions, comments, additions can be sent to info-cvs@nongnu.org
|
||||
#########################################################################
|
||||
|
||||
|
||||
|
@ -1,13 +1,22 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (c) 1989-2005 The Free Software Foundation, Inc.
|
||||
# Portions Copyright (c) 1989, Brian Berliner
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# Based on the CVS 1.0 checkin csh script.
|
||||
# Contributed by Per Cederqvist <ceder@signum.se>.
|
||||
# Rewritten in sh by David MacKenzie <djm@cygnus.com>.
|
||||
#
|
||||
# Copyright (c) 1989, Brian Berliner
|
||||
#
|
||||
# You may distribute under the terms of the GNU General Public License.
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
# Check in sources that previously were under RCS or no source control system.
|
||||
|
@ -1,5 +1,17 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
# RCS to ChangeLog generator
|
||||
|
||||
# Generate a change log prefix from RCS files (perhaps in the CVS repository)
|
||||
|
@ -1,5 +1,16 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
|
||||
############################################################
|
||||
|
@ -1,6 +1,36 @@
|
||||
#! @PERL@
|
||||
#! @PERL@ -T
|
||||
# -*-Perl-*-
|
||||
|
||||
# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# THIS SCRIPT IS PROBABLY BROKEN. REMOVING THE -T SWITCH ON THE #! LINE ABOVE
|
||||
# WOULD FIX IT, BUT THIS IS INSECURE. WE RECOMMEND FIXING THE ERRORS WHICH THE
|
||||
# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
|
||||
# SERVER TRIGGER. PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
|
||||
# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
|
||||
# <@PACKAGE_BUGREPORT@> MAILING LIST.
|
||||
#
|
||||
# For more on general Perl security and taint-checking, please try running the
|
||||
# `perldoc perlsec' command.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Author: John Rouillard (rouilj@cs.umb.edu)
|
||||
# Supported: Yeah right. (Well what do you expect for 2 hours work?)
|
||||
# Blame-to: rouilj@cs.umb.edu
|
||||
|
@ -1,4 +1,16 @@
|
||||
#! @CSH@ -f
|
||||
|
||||
# Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# Sccs2rcs is a script to convert an existing SCCS
|
||||
# history into an RCS history without losing any of
|
||||
|
@ -1,3 +1,11 @@
|
||||
2005-09-04 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add .cvsignore.
|
||||
|
||||
2004-11-05 Conrad T. Pino <Conrad@Pino.com>
|
||||
|
||||
* libdiff.dep: Regenerated after complete rebuild.
|
||||
|
||||
2004-05-15 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* libdiff.dsp: Header file list updated.
|
||||
|
@ -22,4 +22,4 @@ libdiff_a_SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c \
|
||||
side.c system.h diffrun.h
|
||||
|
||||
EXTRA_DIST = ChangeLog build_diff.com diagmeet.note \
|
||||
libdiff.dep libdiff.dsp libdiff.mak
|
||||
libdiff.dep libdiff.dsp libdiff.mak .cvsignore
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -21,7 +21,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -35,6 +34,39 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = diff
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
AR = ar
|
||||
ARFLAGS = cru
|
||||
libdiff_a_AR = $(AR) $(ARFLAGS)
|
||||
libdiff_a_LIBADD =
|
||||
am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) \
|
||||
analyze.$(OBJEXT) cmpbuf.$(OBJEXT) io.$(OBJEXT) \
|
||||
context.$(OBJEXT) ed.$(OBJEXT) normal.$(OBJEXT) \
|
||||
ifdef.$(OBJEXT) util.$(OBJEXT) dir.$(OBJEXT) version.$(OBJEXT) \
|
||||
side.$(OBJEXT)
|
||||
libdiff_a_OBJECTS = $(am_libdiff_a_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(libdiff_a_SOURCES)
|
||||
DIST_SOURCES = $(libdiff_a_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -104,6 +136,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -117,6 +151,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -124,63 +159,49 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
|
||||
with_default_rsh = @with_default_rsh@
|
||||
INCLUDES = -I$(top_srcdir)/lib
|
||||
|
||||
noinst_LIBRARIES = libdiff.a
|
||||
|
||||
libdiff_a_SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c \
|
||||
context.c ed.c normal.c ifdef.c util.c dir.c version.c diff.h \
|
||||
side.c system.h diffrun.h
|
||||
|
||||
|
||||
EXTRA_DIST = ChangeLog build_diff.com diagmeet.note \
|
||||
libdiff.dep libdiff.dsp libdiff.mak
|
||||
|
||||
subdir = diff
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
|
||||
libdiff_a_AR = $(AR) cru
|
||||
libdiff_a_LIBADD =
|
||||
am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) analyze.$(OBJEXT) \
|
||||
cmpbuf.$(OBJEXT) io.$(OBJEXT) context.$(OBJEXT) ed.$(OBJEXT) \
|
||||
normal.$(OBJEXT) ifdef.$(OBJEXT) util.$(OBJEXT) dir.$(OBJEXT) \
|
||||
version.$(OBJEXT) side.$(OBJEXT)
|
||||
libdiff_a_OBJECTS = $(am_libdiff_a_OBJECTS)
|
||||
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/analyze.Po ./$(DEPDIR)/cmpbuf.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/context.Po ./$(DEPDIR)/diff.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diff3.Po ./$(DEPDIR)/dir.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ed.Po ./$(DEPDIR)/ifdef.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/io.Po ./$(DEPDIR)/normal.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/side.Po ./$(DEPDIR)/util.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/version.Po
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DIST_SOURCES = $(libdiff_a_SOURCES)
|
||||
DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am
|
||||
SOURCES = $(libdiff_a_SOURCES)
|
||||
libdiff.dep libdiff.dsp libdiff.mak .cvsignore
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu diff/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu diff/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
AR = ar
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
clean-noinstLIBRARIES:
|
||||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||
@ -190,7 +211,7 @@ libdiff.a: $(libdiff_a_OBJECTS) $(libdiff_a_DEPENDENCIES)
|
||||
$(RANLIB) libdiff.a
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT) core *.core
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
@ -210,36 +231,20 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
uninstall-info-am:
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -248,6 +253,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -259,10 +265,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -285,10 +292,6 @@ GTAGS:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
@ -302,7 +305,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -320,7 +323,6 @@ distdir: $(DISTFILES)
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LIBRARIES)
|
||||
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
@ -341,7 +343,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -360,6 +362,8 @@ dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -395,13 +399,14 @@ uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-noinstLIBRARIES ctags distclean distclean-compile \
|
||||
distclean-generic distclean-tags distdir dvi dvi-am info \
|
||||
info-am install install-am install-data install-data-am \
|
||||
install-exec install-exec-am install-info install-info-am \
|
||||
install-man install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
|
||||
ps ps-am tags uninstall uninstall-am uninstall-info-am
|
||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-info-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
@ -1,3 +1,205 @@
|
||||
2006-06-08 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvsclient.texi (Requests): Add Empty-conflicts.
|
||||
|
||||
2006-03-20 Mark D. Baushke <mdb@gnu.org>
|
||||
|
||||
[patch #4965]
|
||||
* cvs.texinfo (Sticky tags, Merging and keywords)
|
||||
(checkout options, update options): The -A switch
|
||||
does not reset sticky -k options on modified files.
|
||||
* cvs.1, stamp-1, stamp-vti, version.texi: Regenerated.
|
||||
|
||||
2006-02-28 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Editing administrative files): Import changes from Wiki.
|
||||
|
||||
2005-12-09 Derek Price <derek@ximbiot.com>
|
||||
|
||||
[patch #4634]
|
||||
* cvsclient.texi (Root request): Clarify.
|
||||
|
||||
2005-11-10 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo (Common options): -n no longer applies to commit.
|
||||
(commit): Remove reference to the defunct -n option.
|
||||
* cvs.1, stamp-vti, version.texi: Regenerated
|
||||
|
||||
2005-10-12 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo: Remove text that created unintentional cross-references
|
||||
in generated info files.
|
||||
|
||||
2005-10-04 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo: s/visa versa/vice versa/. (From Wiki.)
|
||||
|
||||
2005-09-26 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (cvs-paper.ps, cvs-paper.pdf): Remove implicit sources.
|
||||
Add comments about why implicit rules won't work for these targets.
|
||||
Make sure the distributed cvs-paper.pdf is created in $(srcdir). Make
|
||||
cvs-paper.pdf directly from cvs-paper.ms to avoid building it just
|
||||
because cvs-paper.ps is missing.
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Restore PDFs.
|
||||
* cvs-paper.ps: Removed.
|
||||
* texinfo.tex: Update from GNULIB.
|
||||
|
||||
2005-09-25 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (doc): Finish removing PSs.
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Remove PDFs too until errors go away.
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Dist PDFs rather than PSs.
|
||||
|
||||
2005-09-22 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo (rdiff options): Document -k.
|
||||
* cvs.1, stamp-vti, version.texi: Regenerated.
|
||||
|
||||
2005-09-20 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo: Move summary and detail contents to the front
|
||||
where they belong.
|
||||
|
||||
2005-09-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am: s#cvs.1#$(srcdir)/cvs.1#.
|
||||
|
||||
2005-09-11 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo (Common options): Note that -r branch for a revision
|
||||
means the head of the branch.
|
||||
|
||||
2005-09-10 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo (Error messages): Add suggested messages.
|
||||
|
||||
2005-09-09 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* cvs.texinfo (Error messages): Add signal 11 message.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.man.footer: Update links.
|
||||
|
||||
2005-09-01 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo: Update links and email addresses.
|
||||
|
||||
2005-08-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (From scratch): Add checkout to import example, from
|
||||
wiki.
|
||||
|
||||
2005-08-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Removing directories): Correct grammar, from wiki.
|
||||
|
||||
2005-08-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (From scratch): Clarify note on `cvs add', inspired from
|
||||
wiki.
|
||||
|
||||
2005-08-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
Address bug #13882, submitted by Fred Maranhao.
|
||||
* cvs.texinfo (log options, admin options, Invoking CVS): Add cross
|
||||
references for clarity about possible states.
|
||||
|
||||
2005-08-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Updating a file): Add note about update -d, inspired by
|
||||
wiki.
|
||||
|
||||
2005-08-12 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (What is CVS?): Rephrase for clarity, imported from
|
||||
Wiki.
|
||||
|
||||
2005-08-02 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (What is CVS?, BUGS): s/cvshome/nongnu/. Remove
|
||||
obsolete Pascal Molli link.
|
||||
|
||||
2005-06-22 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Builds): Update Gunnar Tornblom's email at his request.
|
||||
|
||||
2005-05-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvsclient.texi (Goals): Remove typo. Resolves cvshome issue #236.
|
||||
|
||||
2005-05-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Creating a repository): Provide xref to the remote
|
||||
repositries section. Resolves issue #203 on cvshome.org.
|
||||
|
||||
2005-05-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Moving directories): Clarify instructions on renaming a
|
||||
directory. Partially resolves issue #246 on cvshome.org.
|
||||
|
||||
2005-05-03 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (update output): Use "working directory" in place of
|
||||
"source" for clarity. Closes issue #245 on cvshome.org.
|
||||
|
||||
2005-04-28 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* mkman.pl: Minor changes to accomodate Perl 5.8.4. Improve
|
||||
commenting.
|
||||
($nk, $ret, $debug): New globals.
|
||||
(debug_print): New function.
|
||||
|
||||
2005-04-14 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Administrative files): Add "Trigger Scripts" node to
|
||||
the menu.
|
||||
(Trigger Scripts, Trigger Script Security): New nodes.
|
||||
(syntax): Move under Trigger scripts node.
|
||||
(commit files, taginfo): Rewrite to reference Trigger Script node.
|
||||
|
||||
2005-04-06 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (MAINTAINERCLEANFILES): Add cvs.1.
|
||||
(cvs.1): Create intermediate file so that the original isn't emptied on
|
||||
error.
|
||||
|
||||
2005-01-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am, cvs.man.header, cvs.texinfo: Update copyright notices.
|
||||
|
||||
2005-01-29 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (log options): Note quirky interaction of log options.
|
||||
(Suggestion from Dan Peterson <dbpete@aol.com>.)
|
||||
|
||||
2004-10-29 Mark D. Baushke <mdb@cvshome.org>
|
||||
|
||||
* cvs.texinfo (Common options): The -r TAG option works with
|
||||
the cvs annotate command.
|
||||
(Original patch from Ville Skytta <scop@cvshome.org>.)
|
||||
|
||||
2004-09-25 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* mkman.in: Move to...
|
||||
* mkman.pl: ...here.
|
||||
* Makefile.am (cvs.1): mkman is in build dir, not src dir.
|
||||
|
||||
2004-07-17 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Update imports, import): Add notes on requirement that
|
||||
release tags be unique.
|
||||
(Original patch from Ilya N. Golubev <gin@mo.msk.ru>.)
|
||||
|
||||
2004-06-10 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (commit files): Remove reference to the obsolete -i
|
||||
module option.
|
||||
|
||||
2004-05-28 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* cvs.texinfo (Global options): Remove reference to global -l option.
|
||||
|
@ -1,8 +1,10 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# Makefile for GNU CVS documentation (excluding man pages - see ../man).
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -15,7 +17,7 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
info_TEXINFOS = cvs.texinfo cvsclient.texi
|
||||
man_MANS = cvs.1
|
||||
man_MANS = $(srcdir)/cvs.1
|
||||
|
||||
PSS = \
|
||||
cvs.ps \
|
||||
@ -24,7 +26,7 @@ PSS = \
|
||||
|
||||
PDFS = \
|
||||
cvs.pdf \
|
||||
cvs-paper.pdf \
|
||||
$(srcdir)/cvs-paper.pdf \
|
||||
cvsclient.pdf
|
||||
|
||||
TXTS = \
|
||||
@ -32,25 +34,27 @@ TXTS = \
|
||||
cvsclient.txt
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(PSS) \
|
||||
.cvsignore \
|
||||
ChangeLog.fsf \
|
||||
RCSFILES \
|
||||
mdate-sh \
|
||||
cvs.1 \
|
||||
$(srcdir)/cvs.1 \
|
||||
cvs-paper.ms \
|
||||
cvs.man.header \
|
||||
cvs.man.footer
|
||||
cvs.man.footer \
|
||||
$(PDFS)
|
||||
|
||||
MOSTLYCLEANFILES = \
|
||||
MOSTLYCLEANFILES =
|
||||
|
||||
CLEANFILES = \
|
||||
$(PSS) \
|
||||
$(TXTS)
|
||||
|
||||
# These Automake generates MOSTLYCLEAN targets for PostScripts genersted from
|
||||
# TEXINFOS, but it shouldn't when those files are in EXTRA_DIST
|
||||
MAINTAINERCLEANFILES = \
|
||||
$(PSS)
|
||||
$(PDFS) \
|
||||
$(srcdir)/cvs.1
|
||||
|
||||
doc: info ps
|
||||
doc: info pdf
|
||||
.PHONY: doc
|
||||
|
||||
txt: $(TXTS)
|
||||
@ -65,21 +69,36 @@ dvi: cvs.dvi cvsclient.dvi
|
||||
cvs.txt: cvs.texinfo $(srcdir)/version.texi
|
||||
cvsclient.txt: cvsclient.texi $(srcdir)/version-client.texi
|
||||
|
||||
# These targets need to be very specific so that the other PDFs get generated
|
||||
# correctly. If they are more generic and cvs.ps is made before cvs.pdf, then
|
||||
# cvs.pdf will be generated from the generic target and the PS source, which
|
||||
# contains less information (hyperlinks and such) than the usual texinfo source.
|
||||
# The cvs-paper.pdf target needs to be very specific so that the other PDFs get
|
||||
# generated correctly. If a more generic .ps.pdf implicit target is defined,
|
||||
# and cvs.ps is made before cvs.pdf, then cvs.pdf can be generated from the
|
||||
# .ps.pdf target and the PS source, which contains less information (hyperlinks
|
||||
# and such) than the usual texinfo source.
|
||||
#
|
||||
# It is possible that an implicit .ms.ps target could be safely defined. I
|
||||
# don't recall looking into it.
|
||||
cvs-paper.ps: cvs-paper.ms
|
||||
$(ROFF) -t -p -ms -Tps $< > $@-t
|
||||
mv $@-t $@
|
||||
$(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
|
||||
cp cvs-paper.ps-t $@
|
||||
-@rm -f cvs-paper.ps-t
|
||||
|
||||
cvs-paper.pdf: cvs-paper.ps
|
||||
ps2pdf $< $@
|
||||
# This rule introduces some redundancy, but `make distcheck' requires that
|
||||
# Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
|
||||
# is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
|
||||
$(srcdir)/cvs-paper.pdf: cvs-paper.ms
|
||||
$(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
|
||||
ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
|
||||
cp cvs-paper.pdf-t $@
|
||||
-@rm -f cvs-paper.pdf-t cvs-paper.ps-t
|
||||
|
||||
MOSTLYCLEANFILES += cvs-paper.pdf-t cvs-paper.ps-t
|
||||
|
||||
# Targets to build a man page from cvs.texinfo.
|
||||
cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
|
||||
./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
|
||||
$(srcdir)/cvs.man.footer >$@
|
||||
$(srcdir)/cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
|
||||
$(PERL) ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
|
||||
$(srcdir)/cvs.man.footer >cvs.tmp
|
||||
cp cvs.tmp $(srcdir)/cvs.1
|
||||
-@rm -f cvs.tmp
|
||||
|
||||
# texinfo based targets automake neglects to include
|
||||
SUFFIXES = .txt
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -15,9 +15,11 @@
|
||||
@SET_MAKE@
|
||||
|
||||
# Makefile for GNU CVS documentation (excluding man pages - see ../man).
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -28,7 +30,6 @@
|
||||
# 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.
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -36,7 +37,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -50,6 +50,35 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = doc
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/mkman.pl $(srcdir)/stamp-1 $(srcdir)/stamp-vti \
|
||||
$(srcdir)/version-client.texi $(srcdir)/version.texi ChangeLog \
|
||||
mdate-sh texinfo.tex
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = mkman
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
INFO_DEPS = $(srcdir)/cvs.info $(srcdir)/cvsclient.info
|
||||
am__TEXINFO_TEX_DIR = $(srcdir)
|
||||
DVIS = cvs.dvi cvsclient.dvi
|
||||
HTMLS = cvs.html cvsclient.html
|
||||
TEXINFOS = cvs.texinfo cvsclient.texi
|
||||
TEXI2PDF = $(TEXI2DVI) --pdf --batch
|
||||
MAKEINFOHTML = $(MAKEINFO) --html
|
||||
AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
|
||||
DVIPS = dvips
|
||||
am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
|
||||
man1dir = $(mandir)/man1
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -119,6 +148,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -132,6 +163,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -139,167 +171,232 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
|
||||
with_default_rsh = @with_default_rsh@
|
||||
info_TEXINFOS = cvs.texinfo cvsclient.texi
|
||||
man_MANS = cvs.1
|
||||
|
||||
man_MANS = $(srcdir)/cvs.1
|
||||
PSS = \
|
||||
cvs.ps \
|
||||
cvs-paper.ps \
|
||||
cvsclient.ps
|
||||
|
||||
|
||||
PDFS = \
|
||||
cvs.pdf \
|
||||
cvs-paper.pdf \
|
||||
$(srcdir)/cvs-paper.pdf \
|
||||
cvsclient.pdf
|
||||
|
||||
|
||||
TXTS = \
|
||||
cvs.txt \
|
||||
cvsclient.txt
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(PSS) \
|
||||
.cvsignore \
|
||||
ChangeLog.fsf \
|
||||
RCSFILES \
|
||||
mdate-sh \
|
||||
cvs.1 \
|
||||
$(srcdir)/cvs.1 \
|
||||
cvs-paper.ms \
|
||||
cvs.man.header \
|
||||
cvs.man.footer
|
||||
cvs.man.footer \
|
||||
$(PDFS)
|
||||
|
||||
|
||||
MOSTLYCLEANFILES = \
|
||||
MOSTLYCLEANFILES = cvs-paper.pdf-t cvs-paper.ps-t
|
||||
CLEANFILES = \
|
||||
$(PSS) \
|
||||
$(TXTS)
|
||||
|
||||
|
||||
# These Automake generates MOSTLYCLEAN targets for PostScripts genersted from
|
||||
# TEXINFOS, but it shouldn't when those files are in EXTRA_DIST
|
||||
MAINTAINERCLEANFILES = \
|
||||
$(PSS)
|
||||
$(PDFS) \
|
||||
$(srcdir)/cvs.1
|
||||
|
||||
|
||||
# texinfo based targets automake neglects to include
|
||||
SUFFIXES = .txt
|
||||
subdir = doc
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = mkman
|
||||
DIST_SOURCES =
|
||||
am__TEXINFO_TEX_DIR = $(srcdir)
|
||||
INFO_DEPS = cvs.info cvsclient.info
|
||||
DVIS = cvs.dvi cvsclient.dvi
|
||||
TEXINFOS = cvs.texinfo cvsclient.texi
|
||||
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am mdate-sh \
|
||||
mkman.in stamp-1 stamp-vti texinfo.tex version-client.texi \
|
||||
version.texi
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .txt .dvi .info .pdf .ps .texi .texinfo .txi
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
.SUFFIXES: .txt .dvi .html .info .pdf .ps .texi .texinfo .txi
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
mkman: $(top_builddir)/config.status mkman.in
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
mkman: $(top_builddir)/config.status $(srcdir)/mkman.pl
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
|
||||
.texinfo.info:
|
||||
@rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
|
||||
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $@ `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||
am__cwd=`pwd` && cd $(srcdir) && \
|
||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
||||
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
||||
done; \
|
||||
else :; fi && \
|
||||
cd "$$am__cwd"; \
|
||||
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $@ $<; \
|
||||
then \
|
||||
rc=0; \
|
||||
cd $(srcdir); \
|
||||
else \
|
||||
rc=$$?; \
|
||||
cd $(srcdir) && \
|
||||
$$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
|
||||
fi; \
|
||||
rm -rf $$backupdir; exit $$rc
|
||||
|
||||
.texinfo.dvi:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
$(TEXI2DVI) $<
|
||||
|
||||
.texinfo.pdf:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
cvs.info: cvs.texinfo version.texi
|
||||
cvs.dvi: cvs.texinfo version.texi
|
||||
cvs.pdf: cvs.texinfo version.texi
|
||||
version.texi: @MAINTAINER_MODE_TRUE@ stamp-vti
|
||||
stamp-vti: cvs.texinfo $(top_srcdir)/configure
|
||||
$(TEXI2PDF) $<
|
||||
|
||||
.texinfo.html:
|
||||
rm -rf $(@:.html=.htp)
|
||||
if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $(@:.html=.htp) $<; \
|
||||
then \
|
||||
rm -rf $@; \
|
||||
if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
|
||||
mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
|
||||
else \
|
||||
if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
|
||||
rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(srcdir)/cvs.info: cvs.texinfo $(srcdir)/version.texi
|
||||
cvs.dvi: cvs.texinfo $(srcdir)/version.texi
|
||||
cvs.pdf: cvs.texinfo $(srcdir)/version.texi
|
||||
cvs.html: cvs.texinfo $(srcdir)/version.texi
|
||||
$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
|
||||
$(srcdir)/stamp-vti: cvs.texinfo $(top_srcdir)/configure
|
||||
@(dir=.; test -f ./cvs.texinfo || dir=$(srcdir); \
|
||||
set `$(SHELL) $(srcdir)/mdate-sh $$dir/cvs.texinfo`; \
|
||||
echo "@set UPDATED $$1 $$2 $$3"; \
|
||||
echo "@set UPDATED-MONTH $$2 $$3"; \
|
||||
echo "@set EDITION $(VERSION)"; \
|
||||
echo "@set VERSION $(VERSION)") > vti.tmp
|
||||
@cmp -s vti.tmp version.texi \
|
||||
|| (echo "Updating version.texi"; \
|
||||
cp vti.tmp version.texi)
|
||||
@cmp -s vti.tmp $(srcdir)/version.texi \
|
||||
|| (echo "Updating $(srcdir)/version.texi"; \
|
||||
cp vti.tmp $(srcdir)/version.texi)
|
||||
-@rm -f vti.tmp
|
||||
@cp version.texi $@
|
||||
@cp $(srcdir)/version.texi $@
|
||||
|
||||
mostlyclean-vti:
|
||||
-rm -f vti.tmp
|
||||
|
||||
maintainer-clean-vti:
|
||||
@MAINTAINER_MODE_TRUE@ -rm -f stamp-vti version.texi
|
||||
@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
||||
|
||||
.texi.info:
|
||||
@rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
|
||||
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $@ `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||
am__cwd=`pwd` && cd $(srcdir) && \
|
||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
||||
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
||||
done; \
|
||||
else :; fi && \
|
||||
cd "$$am__cwd"; \
|
||||
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $@ $<; \
|
||||
then \
|
||||
rc=0; \
|
||||
cd $(srcdir); \
|
||||
else \
|
||||
rc=$$?; \
|
||||
cd $(srcdir) && \
|
||||
$$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
|
||||
fi; \
|
||||
rm -rf $$backupdir; exit $$rc
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
$(TEXI2DVI) $<
|
||||
|
||||
.texi.pdf:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
cvsclient.info: cvsclient.texi version-client.texi
|
||||
cvsclient.dvi: cvsclient.texi version-client.texi
|
||||
cvsclient.pdf: cvsclient.texi version-client.texi
|
||||
version-client.texi: @MAINTAINER_MODE_TRUE@ stamp-1
|
||||
stamp-1: cvsclient.texi $(top_srcdir)/configure
|
||||
$(TEXI2PDF) $<
|
||||
|
||||
.texi.html:
|
||||
rm -rf $(@:.html=.htp)
|
||||
if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $(@:.html=.htp) $<; \
|
||||
then \
|
||||
rm -rf $@; \
|
||||
if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
|
||||
mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
|
||||
else \
|
||||
if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
|
||||
rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(srcdir)/cvsclient.info: cvsclient.texi $(srcdir)/version-client.texi
|
||||
cvsclient.dvi: cvsclient.texi $(srcdir)/version-client.texi
|
||||
cvsclient.pdf: cvsclient.texi $(srcdir)/version-client.texi
|
||||
cvsclient.html: cvsclient.texi $(srcdir)/version-client.texi
|
||||
$(srcdir)/version-client.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-1
|
||||
$(srcdir)/stamp-1: cvsclient.texi $(top_srcdir)/configure
|
||||
@(dir=.; test -f ./cvsclient.texi || dir=$(srcdir); \
|
||||
set `$(SHELL) $(srcdir)/mdate-sh $$dir/cvsclient.texi`; \
|
||||
echo "@set UPDATED $$1 $$2 $$3"; \
|
||||
echo "@set UPDATED-MONTH $$2 $$3"; \
|
||||
echo "@set EDITION $(VERSION)"; \
|
||||
echo "@set VERSION $(VERSION)") > 1.tmp
|
||||
@cmp -s 1.tmp version-client.texi \
|
||||
|| (echo "Updating version-client.texi"; \
|
||||
cp 1.tmp version-client.texi)
|
||||
@cmp -s 1.tmp $(srcdir)/version-client.texi \
|
||||
|| (echo "Updating $(srcdir)/version-client.texi"; \
|
||||
cp 1.tmp $(srcdir)/version-client.texi)
|
||||
-@rm -f 1.tmp
|
||||
@cp version-client.texi $@
|
||||
@cp $(srcdir)/version-client.texi $@
|
||||
|
||||
mostlyclean-1:
|
||||
-rm -f 1.tmp
|
||||
|
||||
maintainer-clean-1:
|
||||
@MAINTAINER_MODE_TRUE@ -rm -f stamp-1 version-client.texi
|
||||
|
||||
TEXI2PDF = $(TEXI2DVI) --pdf --batch
|
||||
DVIPS = dvips
|
||||
@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-1 $(srcdir)/version-client.texi
|
||||
.dvi.ps:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(DVIPS) -o $@ $<
|
||||
|
||||
uninstall-info-am:
|
||||
$(PRE_UNINSTALL)
|
||||
@$(PRE_UNINSTALL)
|
||||
@if (install-info --version && \
|
||||
install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
relfile=`echo "$$file" | sed 's|^.*/||'`; \
|
||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile"; \
|
||||
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile; \
|
||||
echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
|
||||
install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
|
||||
done; \
|
||||
else :; fi
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@ -307,15 +404,19 @@ uninstall-info-am:
|
||||
for file in $$list; do \
|
||||
relfile=`echo "$$file" | sed 's|^.*/||'`; \
|
||||
relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
|
||||
(if cd $(DESTDIR)$(infodir); then \
|
||||
echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
|
||||
(if cd "$(DESTDIR)$(infodir)"; then \
|
||||
echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
|
||||
rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
|
||||
else :; fi); \
|
||||
done
|
||||
|
||||
dist-info: $(INFO_DEPS)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for base in $$list; do \
|
||||
case $$base in \
|
||||
$(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
esac; \
|
||||
if test -f $$base; then d=.; else d=$(srcdir); fi; \
|
||||
for file in $$d/$$base*; do \
|
||||
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
|
||||
@ -325,13 +426,14 @@ dist-info: $(INFO_DEPS)
|
||||
done
|
||||
|
||||
mostlyclean-aminfo:
|
||||
-rm -f cvs.aux cvs.cp cvs.cps cvs.fn cvs.fns cvs.ky cvs.kys cvs.log cvs.pg \
|
||||
cvs.pgs cvs.tmp cvs.toc cvs.tp cvs.tps cvs.vr cvs.vrs cvs.dvi \
|
||||
cvs.pdf cvs.ps cvsclient.aux cvsclient.cp cvsclient.cps \
|
||||
cvsclient.fn cvsclient.fns cvsclient.ky cvsclient.kys \
|
||||
cvsclient.log cvsclient.pg cvsclient.pgs cvsclient.tmp \
|
||||
cvsclient.toc cvsclient.tp cvsclient.tps cvsclient.vr \
|
||||
cvsclient.vrs cvsclient.dvi cvsclient.pdf cvsclient.ps
|
||||
-rm -rf cvs.aux cvs.cp cvs.cps cvs.fn cvs.fns cvs.ky cvs.kys cvs.log cvs.pg \
|
||||
cvs.pgs cvs.tmp cvs.toc cvs.tp cvs.tps cvs.vr cvs.vrs \
|
||||
cvs.dvi cvs.pdf cvs.ps cvs.html cvsclient.aux cvsclient.cp \
|
||||
cvsclient.cps cvsclient.fn cvsclient.fns cvsclient.ky \
|
||||
cvsclient.kys cvsclient.log cvsclient.pg cvsclient.pgs \
|
||||
cvsclient.tmp cvsclient.toc cvsclient.tp cvsclient.tps \
|
||||
cvsclient.vr cvsclient.vrs cvsclient.dvi cvsclient.pdf \
|
||||
cvsclient.ps cvsclient.html
|
||||
|
||||
maintainer-clean-aminfo:
|
||||
@list='$(INFO_DEPS)'; for i in $$list; do \
|
||||
@ -339,11 +441,9 @@ maintainer-clean-aminfo:
|
||||
echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
|
||||
rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
|
||||
done
|
||||
|
||||
man1dir = $(mandir)/man1
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(man1dir)
|
||||
test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
@ -362,8 +462,8 @@ install-man1: $(man1_MANS) $(man_MANS)
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@ -383,8 +483,8 @@ uninstall-man1:
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
|
||||
rm -f $(DESTDIR)$(man1dir)/$$inst; \
|
||||
echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
@ -392,12 +492,9 @@ TAGS:
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(mkdir_p) $(distdir)/$(srcdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
@ -409,7 +506,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -430,9 +527,10 @@ distdir: $(DISTFILES)
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(INFO_DEPS) $(MANS)
|
||||
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir)
|
||||
for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
@ -451,9 +549,10 @@ mostlyclean-generic:
|
||||
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -467,10 +566,12 @@ distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am: $(DVIS)
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am: $(HTMLS)
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am: $(INFO_DEPS)
|
||||
@ -483,17 +584,21 @@ install-info: install-info-am
|
||||
|
||||
install-info-am: $(INFO_DEPS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
||||
@list='$(INFO_DEPS)'; \
|
||||
test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
esac; \
|
||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
||||
file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
|
||||
for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
|
||||
$$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
|
||||
if test -f $$ifile; then \
|
||||
relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
|
||||
echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
|
||||
$(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
|
||||
echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
|
||||
$(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
|
||||
else : ; fi; \
|
||||
done; \
|
||||
done
|
||||
@ -503,8 +608,8 @@ install-info-am: $(INFO_DEPS)
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
relfile=`echo "$$file" | sed 's|^.*/||'`; \
|
||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile";\
|
||||
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile || :;\
|
||||
echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
|
||||
install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
|
||||
done; \
|
||||
else : ; fi
|
||||
install-man: install-man1
|
||||
@ -535,19 +640,19 @@ uninstall-am: uninstall-info-am uninstall-man
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic dist-info \
|
||||
distclean distclean-generic distdir dvi dvi-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-man1 install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-1 \
|
||||
maintainer-clean-aminfo maintainer-clean-generic \
|
||||
maintainer-clean-vti mostlyclean mostlyclean-1 \
|
||||
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
|
||||
uninstall-man uninstall-man1
|
||||
distclean distclean-generic distdir dvi dvi-am html html-am \
|
||||
info info-am install install-am install-data install-data-am \
|
||||
install-exec install-exec-am install-info install-info-am \
|
||||
install-man install-man1 install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-1 maintainer-clean-aminfo \
|
||||
maintainer-clean-generic maintainer-clean-vti mostlyclean \
|
||||
mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
|
||||
mostlyclean-vti pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am uninstall-man uninstall-man1
|
||||
|
||||
|
||||
doc: info ps
|
||||
doc: info pdf
|
||||
.PHONY: doc
|
||||
|
||||
txt: $(TXTS)
|
||||
@ -562,21 +667,34 @@ dvi: cvs.dvi cvsclient.dvi
|
||||
cvs.txt: cvs.texinfo $(srcdir)/version.texi
|
||||
cvsclient.txt: cvsclient.texi $(srcdir)/version-client.texi
|
||||
|
||||
# These targets need to be very specific so that the other PDFs get generated
|
||||
# correctly. If they are more generic and cvs.ps is made before cvs.pdf, then
|
||||
# cvs.pdf will be generated from the generic target and the PS source, which
|
||||
# contains less information (hyperlinks and such) than the usual texinfo source.
|
||||
# The cvs-paper.pdf target needs to be very specific so that the other PDFs get
|
||||
# generated correctly. If a more generic .ps.pdf implicit target is defined,
|
||||
# and cvs.ps is made before cvs.pdf, then cvs.pdf can be generated from the
|
||||
# .ps.pdf target and the PS source, which contains less information (hyperlinks
|
||||
# and such) than the usual texinfo source.
|
||||
#
|
||||
# It is possible that an implicit .ms.ps target could be safely defined. I
|
||||
# don't recall looking into it.
|
||||
cvs-paper.ps: cvs-paper.ms
|
||||
$(ROFF) -t -p -ms -Tps $< > $@-t
|
||||
mv $@-t $@
|
||||
$(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
|
||||
cp cvs-paper.ps-t $@
|
||||
-@rm -f cvs-paper.ps-t
|
||||
|
||||
cvs-paper.pdf: cvs-paper.ps
|
||||
ps2pdf $< $@
|
||||
# This rule introduces some redundancy, but `make distcheck' requires that
|
||||
# Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
|
||||
# is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
|
||||
$(srcdir)/cvs-paper.pdf: cvs-paper.ms
|
||||
$(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
|
||||
ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
|
||||
cp cvs-paper.pdf-t $@
|
||||
-@rm -f cvs-paper.pdf-t cvs-paper.ps-t
|
||||
|
||||
# Targets to build a man page from cvs.texinfo.
|
||||
cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
|
||||
./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
|
||||
$(srcdir)/cvs.man.footer >$@
|
||||
$(srcdir)/cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
|
||||
$(PERL) ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
|
||||
$(srcdir)/cvs.man.footer >cvs.tmp
|
||||
cp cvs.tmp $(srcdir)/cvs.1
|
||||
-@rm -f cvs.tmp
|
||||
.texinfo.txt:
|
||||
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
--no-headers -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
|
@ -2,9 +2,9 @@
|
||||
.\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
|
||||
.\" there. A full copyright & license notice may also be found in cvs.texinfo.
|
||||
.\"
|
||||
.\" Copyright 2004 The Free Software Foundation,
|
||||
.\" Derek R. Price,
|
||||
.\" & Ximbiot <http://ximbiot.com>
|
||||
.\" Man page autogeneration, including this header file, is
|
||||
.\" Copyright 2004-2005 The Free Software Foundation, Inc.,
|
||||
.\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
|
||||
.\"
|
||||
.\" This documentation is free software; you can redistribute it and/or modify
|
||||
.\" it under the terms of the GNU General Public License as published by
|
||||
@ -428,7 +428,7 @@ option as in other commands. (Other command options,
|
||||
which are listed with the individual commands, may have
|
||||
different behavior from one \fBcvs\fR command to the other).
|
||||
.SP
|
||||
\fBNote: the \fBhistory\fB command is an exception; it supports
|
||||
\fBThe \fBhistory\fB command is an exception; it supports
|
||||
many options that conflict even with these standard options.\fR
|
||||
.SP
|
||||
.IX "Dates"
|
||||
@ -561,7 +561,7 @@ file, and continues to use it with future update
|
||||
commands on the same file until you specify otherwise.
|
||||
.SP
|
||||
The \fB-k\fR option is available with the \fBadd\fR,
|
||||
\fBcheckout\fR, \fBdiff\fR, \fBimport\fR and
|
||||
\fBcheckout\fR, \fBdiff\fR, \fBrdiff\fR, \fBimport\fR and
|
||||
\fBupdate\fR commands.
|
||||
.SP
|
||||
.IP "" 0
|
||||
@ -594,10 +594,10 @@ Do not run any tag program. (A program can be
|
||||
specified to run in the modules
|
||||
database (see node `modules\(aq in the CVS manual); this option bypasses it).
|
||||
.SP
|
||||
\fBNote: this is not the same as the \fBcvs -n\fB
|
||||
\fBThis is not the same as the \fBcvs -n\fB
|
||||
program option, which you can specify to the left of a cvs command!\fR
|
||||
.SP
|
||||
Available with the \fBcheckout\fR, \fBcommit\fR, \fBexport\fR,
|
||||
Available with the \fBcheckout\fR, \fBexport\fR,
|
||||
and \fBrtag\fR commands.
|
||||
.SP
|
||||
.IP "" 0
|
||||
@ -644,17 +644,20 @@ on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
|
||||
The tag can be either a symbolic or numeric tag, as
|
||||
described in see node `Tags\(aq in the CVS manual, or the name of a branch, as
|
||||
described in see node `Branching and merging\(aq in the CVS manual.
|
||||
When a command expects a specific revision,
|
||||
the name of a branch is interpreted as the most recent
|
||||
revision on that branch.
|
||||
.SP
|
||||
Specifying the \fB-q\fR global option along with the
|
||||
\fB-r\fR command option is often useful, to suppress
|
||||
the warning messages when the \fBrcs\fR file
|
||||
does not contain the specified tag.
|
||||
.SP
|
||||
\fBNote: this is not the same as the overall \fBcvs -r\fB option,
|
||||
\fBThis is not the same as the overall \fBcvs -r\fB option,
|
||||
which you can specify to the left of a \fBcvs\fB command!\fR
|
||||
.SP
|
||||
\fB-r\fR is available with the \fBcheckout\fR, \fBcommit\fR,
|
||||
\fBdiff\fR, \fBhistory\fR, \fBexport\fR, \fBrdiff\fR,
|
||||
\fB-r\fR is available with the \fBannotate\fR, \fBcheckout\fR,
|
||||
\fBcommit\fR, \fBdiff\fR, \fBhistory\fR, \fBexport\fR, \fBrdiff\fR,
|
||||
\fBrtag\fR, and \fBupdate\fR commands.
|
||||
.SP
|
||||
.IP "" 0
|
||||
@ -984,10 +987,10 @@ it is created. The state is visible in the output from
|
||||
\fIcvs log\fR (see node `log\(aq in the CVS manual), and in the
|
||||
\fB$\fP\fPLog$\fR and \fB$\fP\fPState$\fR keywords
|
||||
(see node `Keyword substitution\(aq in the CVS manual). Note that \fBcvs\fR
|
||||
uses the \fBdead\fR state for its own purposes; to
|
||||
uses the \fBdead\fR state for its own purposes (see node `Attic\(aq in the CVS manual); to
|
||||
take a file to or from the \fBdead\fR state use
|
||||
commands like \fBcvs remove\fR and \fBcvs add\fR, not
|
||||
\fBcvs admin -s\fR.
|
||||
commands like \fBcvs remove\fR and \fBcvs add\fR
|
||||
(see node `Adding and removing\(aq in the CVS manual), not \fBcvs admin -s\fR.
|
||||
.SP
|
||||
.IP "" 0
|
||||
\fB-t[\fIfile\fB]\fR
|
||||
@ -1283,6 +1286,7 @@ options with \fBcheckout\fR:
|
||||
\fB-A\fR
|
||||
.IP "" 2
|
||||
Reset any sticky tags, dates, or \fB-k\fR options.
|
||||
Does not reset sticky \fB-k\fR options on modified files.
|
||||
See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
|
||||
.SP
|
||||
.IP "" 0
|
||||
@ -1393,7 +1397,7 @@ $ cvs checkout -D yesterday tc
|
||||
.IX "commit (subcommand)"
|
||||
.SP
|
||||
.IP "\(bu" 2
|
||||
Synopsis: commit [-lnRf] [-m \(aqlog_message\(aq |
|
||||
Synopsis: commit [-lRf] [-m \(aqlog_message\(aq |
|
||||
-F file] [-r revision] [files\&...]
|
||||
.IP "\(bu" 2
|
||||
Requires: working directory, repository.
|
||||
@ -2562,7 +2566,7 @@ various formats.
|
||||
Logging must be enabled by creating the file
|
||||
\fB$CVSROOT/CVSROOT/history\fR.
|
||||
.SP
|
||||
\fBNote: \fBhistory\fB uses \fB-f\fB, \fB-l\fB,
|
||||
\fB\fBhistory\fB uses \fB-f\fB, \fB-l\fB,
|
||||
\fB-n\fB, and \fB-p\fB in ways that conflict with the
|
||||
normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
|
||||
.SP
|
||||
@ -2807,8 +2811,10 @@ At least three arguments are required.
|
||||
\fIrepository\fR is needed to identify the collection
|
||||
of source. \fIvendortag\fR is a tag for the entire
|
||||
branch (e.g., for 1.1.1). You must also specify at
|
||||
least one \fIreleasetag\fR to identify the files at
|
||||
the leaves created each time you execute \fBimport\fR.
|
||||
least one \fIreleasetag\fR to uniquely identify the files at
|
||||
the leaves created each time you execute \fBimport\fR. The
|
||||
\fIreleasetag\fR should be new, not previously existing in the
|
||||
repository file, and uniquely identify the imported release,
|
||||
.SP
|
||||
Note that \fBimport\fR does \fInot\fR change the
|
||||
directory in which you invoke it. In particular, it
|
||||
@ -2939,13 +2945,18 @@ message are printed. All times are displayed in
|
||||
Coordinated Universal Time (UTC). (Other parts of
|
||||
\fBcvs\fR print times in the local timezone).
|
||||
.SP
|
||||
\fBNote: \fBlog\fB uses \fB-R\fB in a way that conflicts
|
||||
\fB\fBlog\fB uses \fB-R\fB in a way that conflicts
|
||||
with the normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
|
||||
.SP
|
||||
.SH "log options"
|
||||
.SP
|
||||
By default, \fBlog\fR prints all information that is
|
||||
available. All other options restrict the output.
|
||||
available. All other options restrict the output. Note that the revision
|
||||
selection options (\fB-d\fR, \fB-r\fR, \fB-s\fR, and \fB-w\fR) have no
|
||||
effect, other than possibly causing a search for files in Attic directories,
|
||||
when used in conjunction with the options that restrict the output to only
|
||||
\fBlog\fR header fields (\fB-b\fR, \fB-h\fR, \fB-R\fR, and \fB-t\fR)
|
||||
unless the \fB-S\fR option is also specified.
|
||||
.SP
|
||||
.IP "" 0
|
||||
\fB-b\fR
|
||||
@ -3103,7 +3114,10 @@ Suppress the header if no revisions are selected.
|
||||
.IP "" 2
|
||||
Print information about revisions whose state
|
||||
attributes match one of the states given in the
|
||||
comma-separated list \fIstates\fR.
|
||||
comma-separated list \fIstates\fR. Individual states may
|
||||
be any text string, though \fBcvs\fR commonly only uses two
|
||||
states, \fBExp\fR and \fBdead\fR. See see node `admin options\(aq in the CVS manual
|
||||
for more information.
|
||||
.SP
|
||||
.IP "" 0
|
||||
\fB-t\fR
|
||||
@ -3180,6 +3194,12 @@ If no matching revision is found, retrieve the most
|
||||
recent revision (instead of ignoring the file).
|
||||
.SP
|
||||
.IP "" 0
|
||||
\fB-k \fIkflag\fB\fR
|
||||
.IP "" 2
|
||||
Process keywords according to \fIkflag\fR. See
|
||||
see node `Keyword substitution\(aq in the CVS manual.
|
||||
.SP
|
||||
.IP "" 0
|
||||
\fB-l\fR
|
||||
.IP "" 2
|
||||
Local; don\(aqt descend subdirectories.
|
||||
@ -3484,6 +3504,7 @@ These special options are also available with
|
||||
\fB-A\fR
|
||||
.IP "" 2
|
||||
Reset any sticky tags, dates, or \fB-k\fR options.
|
||||
Does not reset sticky \fB-k\fR options on modified files.
|
||||
See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
|
||||
.SP
|
||||
.IP "" 0
|
||||
@ -3572,7 +3593,7 @@ by one character indicating the status of the file:
|
||||
.IP "" 2
|
||||
The file was brought up to date with respect to the
|
||||
repository. This is done for any file that exists in
|
||||
the repository but not in your source, and for files
|
||||
the repository but not in your working directory, and for files
|
||||
that you haven\(aqt changed but are not the most recent
|
||||
versions available in the repository.
|
||||
.SP
|
||||
@ -3690,9 +3711,7 @@ to CVS, development of CVS, and more, see:
|
||||
.SP
|
||||
.PD 0
|
||||
.IP "" 4
|
||||
.B http://cvshome.org
|
||||
.IP "" 4
|
||||
.B http://www.loria.fr/~molli/cvs-index.html
|
||||
.B http://cvs.nongnu.org
|
||||
.in -1i
|
||||
.SP
|
||||
.BR ci ( 1 ),
|
||||
|
@ -42,9 +42,7 @@ to CVS, development of CVS, and more, see:
|
||||
.SP
|
||||
.PD 0
|
||||
.IP "" 4
|
||||
.B http://cvshome.org
|
||||
.IP "" 4
|
||||
.B http://www.loria.fr/~molli/cvs-index.html
|
||||
.B http://cvs.nongnu.org
|
||||
.in -1i
|
||||
.SP
|
||||
.BR ci ( 1 ),
|
||||
|
@ -2,9 +2,9 @@
|
||||
.\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
|
||||
.\" there. A full copyright & license notice may also be found in cvs.texinfo.
|
||||
.\"
|
||||
.\" Copyright 2004 The Free Software Foundation,
|
||||
.\" Derek R. Price,
|
||||
.\" & Ximbiot <http://ximbiot.com>
|
||||
.\" Man page autogeneration, including this header file, is
|
||||
.\" Copyright 2004-2005 The Free Software Foundation, Inc.,
|
||||
.\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
|
||||
.\"
|
||||
.\" This documentation is free software; you can redistribute it and/or modify
|
||||
.\" it under the terms of the GNU General Public License as published by
|
||||
|
@ -4,13 +4,14 @@
|
||||
@macro copyleftnotice
|
||||
@noindent
|
||||
Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
@multitable @columnfractions .12 .88
|
||||
@item Portions
|
||||
@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004
|
||||
@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Derek R. Price,
|
||||
@item @tab Copyright @copyright{} 2002, 2003, 2004
|
||||
@item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
|
||||
Ximbiot @url{http://ximbiot.com},
|
||||
@item @tab Copyright @copyright{} 1992, 1993, 1999 Signum Support AB,
|
||||
@item @tab and Copyright @copyright{} others.
|
||||
@ -127,6 +128,10 @@ approved by the Free Software Foundation.
|
||||
@copyleftnotice
|
||||
@end titlepage
|
||||
|
||||
@summarycontents
|
||||
|
||||
@contents
|
||||
|
||||
@comment ================================================================
|
||||
@comment The real text starts here
|
||||
@comment ================================================================
|
||||
@ -232,7 +237,7 @@ versions.
|
||||
on the same project. It is all too easy to overwrite
|
||||
each others' changes unless you are extremely careful.
|
||||
Some editors, like @sc{gnu} Emacs, try to make sure that
|
||||
the same file is never modified by two people at the
|
||||
two people never modify the same file at the
|
||||
same time. Unfortunately, if someone is using another
|
||||
editor, that safeguard will not work. @sc{cvs} solves this problem
|
||||
by insulating the different developers from each other. Every
|
||||
@ -261,21 +266,20 @@ free download from the Internet. For more information
|
||||
on downloading @sc{cvs} and other @sc{cvs} topics, see:
|
||||
|
||||
@example
|
||||
@url{http://www.cvshome.org/}
|
||||
@url{http://www.loria.fr/~molli/cvs-index.html}
|
||||
@url{http://cvs.nongnu.org/}
|
||||
@end example
|
||||
|
||||
@cindex Mailing list
|
||||
@cindex List, mailing list
|
||||
@cindex Newsgroups
|
||||
There is a mailing list, known as @email{info-cvs@@gnu.org},
|
||||
There is a mailing list, known as @email{info-cvs@@nongnu.org},
|
||||
devoted to @sc{cvs}. To subscribe or
|
||||
unsubscribe
|
||||
write to
|
||||
@email{info-cvs-request@@gnu.org}.
|
||||
@email{info-cvs-request@@nongnu.org}.
|
||||
If you prefer a Usenet group, there is a one-way mirror (posts to the email
|
||||
list are usually sent to the news group, but not visa versa) of
|
||||
@email{info-cvs@@gnu.org} at @url{news:gnu.cvs.help}. The right
|
||||
list are usually sent to the news group, but not vice versa) of
|
||||
@email{info-cvs@@nongnu.org} at @url{news:gnu.cvs.help}. The right
|
||||
Usenet group for posts is @url{news:comp.software.config-mgmt} which is for
|
||||
@sc{cvs} discussions (along with other configuration
|
||||
management systems). In the future, it might be
|
||||
@ -290,11 +294,11 @@ if there is sufficient @sc{cvs} traffic on
|
||||
@c would need to take a more comprehensive look at the
|
||||
@c whole comp.software.config-mgmt.* hierarchy).
|
||||
|
||||
You can also subscribe to the @email{bug-cvs@@gnu.org} mailing list,
|
||||
You can also subscribe to the @email{bug-cvs@@nongnu.org} mailing list,
|
||||
described in more detail in @ref{BUGS}. To subscribe
|
||||
send mail to @email{bug-cvs-request@@gnu.org}. There is a two-way
|
||||
send mail to @email{bug-cvs-request@@nongnu.org}. There is a two-way
|
||||
Usenet mirror (posts to the Usenet group are usually sent to the email list and
|
||||
visa versa) of @email{bug-cvs@@gnu.org} named @url{news:gnu.cvs.bug}.
|
||||
vice versa) of @email{bug-cvs@@nongnu.org} named @url{news:gnu.cvs.bug}.
|
||||
|
||||
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@node What is CVS not?
|
||||
@ -1805,7 +1809,15 @@ It is possible to commit an erroneous administrative
|
||||
file. You can often fix the error and check in a new
|
||||
revision, but sometimes a particularly bad error in the
|
||||
administrative file makes it impossible to commit new
|
||||
revisions.
|
||||
revisions. If and when this happens, you can correct
|
||||
the problem by temporarily copying a corrected administrative file
|
||||
directly into the @code{$CVSROOT/CVSROOT} repository directory,
|
||||
then committing the same correction via a checkout of the @file{CVSROOT}
|
||||
module. It is important that the correction also be made via the
|
||||
checked out copy, or the next checkout and commit to the
|
||||
<code>CVSROOT</code> module will overwrite the correction that was
|
||||
copied directly into the repository, possibly breaking things in such
|
||||
a way as to prevent commits again.
|
||||
@c @xref{Bad administrative files} for a hint
|
||||
@c about how to solve such situations.
|
||||
@c -- administrative file checking--
|
||||
@ -1866,6 +1878,13 @@ and server1, to update everything else.
|
||||
@cindex Creating a repository
|
||||
@cindex Setting up a repository
|
||||
|
||||
This section describes how to set up a @sc{cvs} repository for any
|
||||
sort of access method. After completing the setup described in this
|
||||
section, you should be able to access your @sc{cvs} repository immediately
|
||||
via the local access method and several remote access methods. For
|
||||
more information on setting up remote access to the repository you create
|
||||
in this section, please read the section on @xref{Remote repositories}.
|
||||
|
||||
To set up a @sc{cvs} repository, first choose the
|
||||
machine and disk on which you want to store the
|
||||
revision history of the source files. CPU and memory
|
||||
@ -3178,8 +3197,13 @@ $ cvs import -m "Created directory structure" yoyodyne/@var{dir} yoyo start
|
||||
This will add yoyodyne/@var{dir} as a directory under
|
||||
@code{$CVSROOT}.
|
||||
|
||||
Then, use @code{add} to add files (and new directories)
|
||||
as they appear.
|
||||
Use @code{checkout} to get the new project. Then, use @code{add}
|
||||
to add files (and new directories) as needed.
|
||||
|
||||
@example
|
||||
$ cd ..
|
||||
$ cvs co yoyodyne/@var{dir}
|
||||
@end example
|
||||
|
||||
Check that the permissions @sc{cvs} sets on the
|
||||
directories inside @code{$CVSROOT} are reasonable.
|
||||
@ -3817,7 +3841,8 @@ The sticky tags will remain on your working files until
|
||||
you delete them with @samp{cvs update -A}. The
|
||||
@samp{-A} option merges local changes into the version of the
|
||||
file from the head of the trunk, removing any sticky tags,
|
||||
dates, or options. See @ref{update} for more on the operation
|
||||
dates, or options (other than sticky @samp{-k} options on locally
|
||||
modified files). See @ref{update} for more on the operation
|
||||
of @code{cvs update}.
|
||||
|
||||
@cindex Sticky date
|
||||
@ -4605,6 +4630,13 @@ for this is to release the working directory after the merge has been
|
||||
committed and check it out again.
|
||||
@end ignore
|
||||
|
||||
As a result of using @samp{-kk} during the merge, each file examined by the
|
||||
update will have @samp{-kk} set as sticky options. Running @code{update -A}
|
||||
will clear the sticky options on unmodified files, but it will not clear
|
||||
the sticky options on modified files. To get back to the default keyword
|
||||
substitution for modified files, you must commit the results of the merge
|
||||
and then run @code{update -A}.
|
||||
|
||||
@c ---------------------------------------------------------------------
|
||||
@node Recursive behavior
|
||||
@chapter Recursive behavior
|
||||
@ -4971,7 +5003,7 @@ later merge the removals to another branch if you want
|
||||
@cindex Removing directories
|
||||
@cindex Directories, removing
|
||||
|
||||
In concept removing directories is somewhat similar to
|
||||
In concept, removing directories is somewhat similar to
|
||||
removing files---you want the directory to not exist in
|
||||
your current working directories, but you also want to
|
||||
be able to retrieve old releases in which the directory
|
||||
@ -4998,7 +5030,7 @@ removing it.
|
||||
@c need for -P and so that a file can be a directory in
|
||||
@c one revision and a regular file in another.
|
||||
Note that @samp{-P} is implied by the @samp{-r} or @samp{-D}
|
||||
options of @code{checkout}. This way
|
||||
options of @code{checkout}. This way,
|
||||
@sc{cvs} will be able to correctly create the directory
|
||||
or not depending on whether the particular version you
|
||||
are checking out contains any files in that directory.
|
||||
@ -5197,9 +5229,9 @@ like this:
|
||||
@enumerate
|
||||
@item
|
||||
Inform everyone who has a checked out copy of the directory that the
|
||||
directory will be renamed. They should commit all
|
||||
their changes, and remove their working copies,
|
||||
before you take the steps below.
|
||||
directory will be renamed. They should commit all their changes in all their
|
||||
copies of the project containing the directory to be removed, and remove
|
||||
all their working copies of said project, before you take the steps below.
|
||||
|
||||
@item
|
||||
Rename the directory inside the repository.
|
||||
@ -5938,10 +5970,12 @@ these options, see @ref{Invoking CVS}.
|
||||
@cindex Merging a file
|
||||
@cindex Update, introduction
|
||||
|
||||
When you want to update or merge a file, use the @code{update}
|
||||
When you want to update or merge a file, use the @code{cvs update -d}
|
||||
command. For files that are not up to date this is roughly equivalent
|
||||
to a @code{checkout} command: the newest revision of the file is
|
||||
extracted from the repository and put in your working directory.
|
||||
extracted from the repository and put in your working directory. The
|
||||
@code{-d} option, not necessary with @code{checkout}, tells @sc{cvs}
|
||||
that you wish it to create directories added by other developers.
|
||||
|
||||
Your modifications to a file are never lost when you
|
||||
use @code{update}. If no newer revision exists,
|
||||
@ -6978,8 +7012,10 @@ each working directory copy of a file also has a
|
||||
substitution mode. The former is set by the @samp{-k}
|
||||
option to @code{cvs add} and @code{cvs admin}; the
|
||||
latter is set by the @samp{-k} or @samp{-A} options to @code{cvs
|
||||
checkout} or @code{cvs update}. @code{cvs diff} also
|
||||
has a @samp{-k} option. For some examples,
|
||||
checkout} or @code{cvs update}.
|
||||
@code{cvs diff} and @code{cvs rdiff} also
|
||||
have @samp{-k} options.
|
||||
For some examples,
|
||||
see @ref{Binary files}, and @ref{Merging and keywords}.
|
||||
@c The fact that -A is overloaded to mean both reset
|
||||
@c sticky options and reset sticky tags/dates is
|
||||
@ -7198,6 +7234,9 @@ $ cd wdiff-0.05
|
||||
$ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
|
||||
@end example
|
||||
|
||||
@strong{WARNING: If you use a release tag that already exists in one of the
|
||||
repository archives, files removed by an import may not be detected.}
|
||||
|
||||
For files that have not been modified locally, the newly created
|
||||
revision becomes the head revision. If you have made local
|
||||
changes, @code{import} will warn you that you must merge the changes
|
||||
@ -7409,7 +7448,7 @@ for other files to access source files from a central
|
||||
location. Many people have come up with some such a
|
||||
@c two such people are paul@sander.cupertino.ca.us (for
|
||||
@c a previous employer)
|
||||
@c and gtornblo@senet.abb.se (spicm and related tools),
|
||||
@c and gunnar.tornblom@se.abb.com (spicm and related tools),
|
||||
@c but as far as I know
|
||||
@c no one has nicely packaged or released such a system (or
|
||||
@c instructions for constructing one).
|
||||
@ -7909,7 +7948,7 @@ option as in other commands. (Other command options,
|
||||
which are listed with the individual commands, may have
|
||||
different behavior from one @sc{cvs} command to the other).
|
||||
|
||||
@strong{Note: the @samp{history} command is an exception; it supports
|
||||
@strong{The @samp{history} command is an exception; it supports
|
||||
many options that conflict even with these standard options.}
|
||||
|
||||
@table @code
|
||||
@ -8131,7 +8170,7 @@ file, and continues to use it with future update
|
||||
commands on the same file until you specify otherwise.
|
||||
|
||||
The @samp{-k} option is available with the @code{add},
|
||||
@code{checkout}, @code{diff}, @code{import} and
|
||||
@code{checkout}, @code{diff}, @code{rdiff}, @code{import} and
|
||||
@code{update} commands.
|
||||
|
||||
@item -l
|
||||
@ -8158,10 +8197,10 @@ Do not run any tag program. (A program can be
|
||||
specified to run in the modules
|
||||
database (@pxref{modules}); this option bypasses it).
|
||||
|
||||
@strong{Note: this is not the same as the @samp{cvs -n}
|
||||
@strong{This is not the same as the @samp{cvs -n}
|
||||
program option, which you can specify to the left of a cvs command!}
|
||||
|
||||
Available with the @code{checkout}, @code{commit}, @code{export},
|
||||
Available with the @code{checkout}, @code{export},
|
||||
and @code{rtag} commands.
|
||||
|
||||
@item -P
|
||||
@ -8224,17 +8263,20 @@ on sticky tags/dates, @pxref{Sticky tags}).
|
||||
The tag can be either a symbolic or numeric tag, as
|
||||
described in @ref{Tags}, or the name of a branch, as
|
||||
described in @ref{Branching and merging}.
|
||||
When a command expects a specific revision,
|
||||
the name of a branch is interpreted as the most recent
|
||||
revision on that branch.
|
||||
|
||||
Specifying the @samp{-q} global option along with the
|
||||
@samp{-r} command option is often useful, to suppress
|
||||
the warning messages when the @sc{rcs} file
|
||||
does not contain the specified tag.
|
||||
|
||||
@strong{Note: this is not the same as the overall @samp{cvs -r} option,
|
||||
@strong{This is not the same as the overall @samp{cvs -r} option,
|
||||
which you can specify to the left of a @sc{cvs} command!}
|
||||
|
||||
@samp{-r} is available with the @code{checkout}, @code{commit},
|
||||
@code{diff}, @code{history}, @code{export}, @code{rdiff},
|
||||
@samp{-r} is available with the @code{annotate}, @code{checkout},
|
||||
@code{commit}, @code{diff}, @code{history}, @code{export}, @code{rdiff},
|
||||
@code{rtag}, and @code{update} commands.
|
||||
|
||||
@item -W
|
||||
@ -8539,10 +8581,10 @@ it is created. The state is visible in the output from
|
||||
@var{cvs log} (@pxref{log}), and in the
|
||||
@samp{$@splitrcskeyword{Log}$} and @samp{$@splitrcskeyword{State}$} keywords
|
||||
(@pxref{Keyword substitution}). Note that @sc{cvs}
|
||||
uses the @code{dead} state for its own purposes; to
|
||||
uses the @code{dead} state for its own purposes (@pxref{Attic}); to
|
||||
take a file to or from the @code{dead} state use
|
||||
commands like @code{cvs remove} and @code{cvs add}, not
|
||||
@code{cvs admin -s}.
|
||||
commands like @code{cvs remove} and @code{cvs add}
|
||||
(@pxref{Adding and removing}), not @code{cvs admin -s}.
|
||||
|
||||
@item -t[@var{file}]
|
||||
Useful with @sc{cvs}. Write descriptive text from the
|
||||
@ -8835,6 +8877,7 @@ options with @code{checkout}:
|
||||
@table @code
|
||||
@item -A
|
||||
Reset any sticky tags, dates, or @samp{-k} options.
|
||||
Does not reset sticky @samp{-k} options on modified files.
|
||||
See @ref{Sticky tags}, for more information on sticky tags/dates.
|
||||
|
||||
@item -c
|
||||
@ -8932,7 +8975,7 @@ $ cvs checkout -D yesterday tc
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Synopsis: commit [-lnRf] [-m 'log_message' |
|
||||
Synopsis: commit [-lRf] [-m 'log_message' |
|
||||
-F file] [-r revision] [files@dots{}]
|
||||
@item
|
||||
Requires: working directory, repository.
|
||||
@ -9872,7 +9915,7 @@ various formats.
|
||||
Logging must be enabled by creating the file
|
||||
@file{$CVSROOT/CVSROOT/history}.
|
||||
|
||||
@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
|
||||
@strong{@code{history} uses @samp{-f}, @samp{-l},
|
||||
@samp{-n}, and @samp{-p} in ways that conflict with the
|
||||
normal use inside @sc{cvs} (@pxref{Common options}).}
|
||||
|
||||
@ -10091,8 +10134,10 @@ At least three arguments are required.
|
||||
@var{repository} is needed to identify the collection
|
||||
of source. @var{vendortag} is a tag for the entire
|
||||
branch (e.g., for 1.1.1). You must also specify at
|
||||
least one @var{releasetag} to identify the files at
|
||||
the leaves created each time you execute @code{import}.
|
||||
least one @var{releasetag} to uniquely identify the files at
|
||||
the leaves created each time you execute @code{import}. The
|
||||
@var{releasetag} should be new, not previously existing in the
|
||||
repository file, and uniquely identify the imported release,
|
||||
|
||||
@c I'm not completely sure this belongs here. But
|
||||
@c we need to say it _somewhere_ reasonably obvious; it
|
||||
@ -10247,7 +10292,7 @@ Coordinated Universal Time (UTC). (Other parts of
|
||||
@c client then communicates to the server, is the
|
||||
@c right solution.
|
||||
|
||||
@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
|
||||
@strong{@code{log} uses @samp{-R} in a way that conflicts
|
||||
with the normal use inside @sc{cvs} (@pxref{Common options}).}
|
||||
|
||||
@menu
|
||||
@ -10260,7 +10305,12 @@ with the normal use inside @sc{cvs} (@pxref{Common options}).}
|
||||
@appendixsubsec log options
|
||||
|
||||
By default, @code{log} prints all information that is
|
||||
available. All other options restrict the output.
|
||||
available. All other options restrict the output. Note that the revision
|
||||
selection options (@code{-d}, @code{-r}, @code{-s}, and @code{-w}) have no
|
||||
effect, other than possibly causing a search for files in Attic directories,
|
||||
when used in conjunction with the options that restrict the output to only
|
||||
@code{log} header fields (@code{-b}, @code{-h}, @code{-R}, and @code{-t})
|
||||
unless the @code{-S} option is also specified.
|
||||
|
||||
@table @code
|
||||
@item -b
|
||||
@ -10391,7 +10441,10 @@ Suppress the header if no revisions are selected.
|
||||
@item -s @var{states}
|
||||
Print information about revisions whose state
|
||||
attributes match one of the states given in the
|
||||
comma-separated list @var{states}.
|
||||
comma-separated list @var{states}. Individual states may
|
||||
be any text string, though @sc{cvs} commonly only uses two
|
||||
states, @samp{Exp} and @samp{dead}. See @ref{admin options}
|
||||
for more information.
|
||||
|
||||
@item -t
|
||||
Print the same as @samp{-h}, plus the descriptive text.
|
||||
@ -10473,6 +10526,10 @@ Use the most recent revision no later than @var{date}.
|
||||
If no matching revision is found, retrieve the most
|
||||
recent revision (instead of ignoring the file).
|
||||
|
||||
@item -k @var{kflag}
|
||||
Process keywords according to @var{kflag}. See
|
||||
@ref{Keyword substitution}.
|
||||
|
||||
@item -l
|
||||
Local; don't descend subdirectories.
|
||||
|
||||
@ -10746,6 +10803,7 @@ These special options are also available with
|
||||
@table @code
|
||||
@item -A
|
||||
Reset any sticky tags, dates, or @samp{-k} options.
|
||||
Does not reset sticky @samp{-k} options on modified files.
|
||||
See @ref{Sticky tags}, for more information on sticky tags/dates.
|
||||
|
||||
@item -C
|
||||
@ -10826,7 +10884,7 @@ by one character indicating the status of the file:
|
||||
@item U @var{file}
|
||||
The file was brought up to date with respect to the
|
||||
repository. This is done for any file that exists in
|
||||
the repository but not in your source, and for files
|
||||
the repository but not in your working directory, and for files
|
||||
that you haven't changed but are not the most recent
|
||||
versions available in the repository.
|
||||
|
||||
@ -11074,7 +11132,8 @@ Delete revisions from the repository. See
|
||||
Run quietly; do not print diagnostics.
|
||||
|
||||
@item -s@var{state}[:@var{rev}]
|
||||
Set the state.
|
||||
Set the state. See @ref{admin options} for more information on possible
|
||||
states.
|
||||
|
||||
@c Does not work for client/server CVS
|
||||
@item -t
|
||||
@ -11853,6 +11912,8 @@ file, which defines the modules inside the repository.
|
||||
@menu
|
||||
* modules:: Defining modules
|
||||
* Wrappers:: Specify binary-ness based on file name
|
||||
* Trigger Scripts:: Some notes on the commit support files and
|
||||
taginfo, referenced below.
|
||||
* commit files:: The commit support files (commitinfo,
|
||||
verifymsg, editinfo, loginfo)
|
||||
* taginfo:: Verifying/Logging tags
|
||||
@ -12349,59 +12410,26 @@ cvs import -I ! -W "*.exe -k 'b'" first-dir vendortag reltag
|
||||
@c One catch--"cvs diff" will not invoke the wrappers
|
||||
@c (probably a CVS bug, although I haven't thought it out).
|
||||
|
||||
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@node commit files
|
||||
@appendixsec The commit support files
|
||||
@cindex Committing, administrative support files
|
||||
@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
@node Trigger Scripts
|
||||
@appendixsec The Trigger Scripts
|
||||
@cindex Info files
|
||||
@cindex Trigger scripts
|
||||
|
||||
The @samp{-i} flag in the @file{modules} file can be
|
||||
used to run a certain program whenever files are
|
||||
committed (@pxref{modules}). The files described in
|
||||
this section provide other, more flexible, ways to run
|
||||
programs whenever something is committed.
|
||||
Several of the administrative files support triggers, or the launching external
|
||||
scripts or programs at specific times before or after particular events. The
|
||||
individual files are discussed in the later sections, @ref{commit files} and
|
||||
@ref{taginfo}, but some of the common elements are discussed here.
|
||||
|
||||
There are three kinds of programs that can be run on
|
||||
commit. They are specified in files in the repository,
|
||||
as described below. The following table summarizes the
|
||||
file names and the purpose of the corresponding
|
||||
programs.
|
||||
|
||||
@table @file
|
||||
@item commitinfo
|
||||
The program is responsible for checking that the commit
|
||||
is allowed. If it exits with a non-zero exit status
|
||||
the commit will be aborted.
|
||||
|
||||
@item verifymsg
|
||||
The specified program is used to evaluate the log message,
|
||||
and possibly verify that it contains all required
|
||||
fields. This is most useful in combination with the
|
||||
@file{rcsinfo} file, which can hold a log message
|
||||
template (@pxref{rcsinfo}).
|
||||
|
||||
@item editinfo
|
||||
The specified program is used to edit the log message,
|
||||
and possibly verify that it contains all required
|
||||
fields. This is most useful in combination with the
|
||||
@file{rcsinfo} file, which can hold a log message
|
||||
template (@pxref{rcsinfo}). (obsolete)
|
||||
|
||||
@item loginfo
|
||||
The specified program is called when the commit is
|
||||
complete. It receives the log message and some
|
||||
additional information and can store the log message in
|
||||
a file, or mail it to appropriate persons, or maybe
|
||||
post it to a local newsgroup, or@dots{} Your
|
||||
imagination is the limit!
|
||||
@end table
|
||||
All the trigger scripts are launched in a copy of the user sandbox being
|
||||
committed, on the server, in client-server mode. In local mode, the scripts
|
||||
are actually launched directly from the user sandbox directory being committed.
|
||||
For most intents and purposes, the same scripts can be run in both locations
|
||||
without alteration.
|
||||
|
||||
@menu
|
||||
* syntax:: The common syntax
|
||||
* commitinfo:: Pre-commit checking
|
||||
* verifymsg:: How are log messages evaluated?
|
||||
* editinfo:: Specifying how log messages are created
|
||||
(obsolete)
|
||||
* loginfo:: Where should log messages be sent?
|
||||
* syntax:: The common syntax
|
||||
* Trigger Script Security:: Trigger script security
|
||||
@end menu
|
||||
|
||||
@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
@ -12466,6 +12494,78 @@ is used as a file name or command-line as appropriate.
|
||||
@c unambiguous but there is nothing like an example to
|
||||
@c confirm people's understanding of this sort of thing).
|
||||
|
||||
@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
@node Trigger Script Security
|
||||
@appendixsubsec Security and the Trigger Scripts
|
||||
@cindex Info files, security
|
||||
@cindex Trigger scripts, security
|
||||
|
||||
Security is a huge subject, and implementing a secure system is a non-trivial
|
||||
task. This section will barely touch on all the issues involved, but it is
|
||||
well to note that, as with any script you will be allowing an untrusted
|
||||
user to run on your server, there are measures you can take to help prevent
|
||||
your trigger scripts from being abused.
|
||||
|
||||
For instance, since the CVS trigger scripts all run in a copy of the user's
|
||||
sandbox on the server, a naively coded Perl trigger script which attempts to
|
||||
use a Perl module that is not installed on the system can be hijacked by any
|
||||
user with commit access who is checking in a file with the correct name. Other
|
||||
scripting languages may be vulnerable to similar hacks.
|
||||
|
||||
One way to make a script more secure, at least with Perl, is to use scripts
|
||||
which invoke the @code{-T}, or "taint-check" switch on their @code{#!} line.
|
||||
In the most basic terms, this causes Perl to avoid running code that may have
|
||||
come from an external source. Please run the @code{perldoc perlsec} command
|
||||
for more on Perl security. Again, other languages may implement other security
|
||||
verification hooks which look more or less like Perl's "taint-check" mechanism.
|
||||
|
||||
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@node commit files
|
||||
@appendixsec The commit support files
|
||||
@cindex Committing, administrative support files
|
||||
|
||||
There are three kinds of trigger scripts (@pxref{Trigger Scripts}) that can be
|
||||
run at various times during a commit. They are specified in files in the
|
||||
repository, as described below. The following table summarizes the
|
||||
file names and the purpose of the corresponding programs.
|
||||
|
||||
@table @file
|
||||
@item commitinfo
|
||||
The program is responsible for checking that the commit
|
||||
is allowed. If it exits with a non-zero exit status
|
||||
the commit will be aborted.
|
||||
|
||||
@item verifymsg
|
||||
The specified program is used to evaluate the log message,
|
||||
and possibly verify that it contains all required
|
||||
fields. This is most useful in combination with the
|
||||
@file{rcsinfo} file, which can hold a log message
|
||||
template (@pxref{rcsinfo}).
|
||||
|
||||
@item editinfo
|
||||
The specified program is used to edit the log message,
|
||||
and possibly verify that it contains all required
|
||||
fields. This is most useful in combination with the
|
||||
@file{rcsinfo} file, which can hold a log message
|
||||
template (@pxref{rcsinfo}). (obsolete)
|
||||
|
||||
@item loginfo
|
||||
The specified program is called when the commit is
|
||||
complete. It receives the log message and some
|
||||
additional information and can store the log message in
|
||||
a file, or mail it to appropriate persons, or maybe
|
||||
post it to a local newsgroup, or@dots{} Your
|
||||
imagination is the limit!
|
||||
@end table
|
||||
|
||||
@menu
|
||||
* commitinfo:: Pre-commit checking
|
||||
* verifymsg:: How are log messages evaluated?
|
||||
* editinfo:: Specifying how log messages are created
|
||||
(obsolete)
|
||||
* loginfo:: Where should log messages be sent?
|
||||
@end menu
|
||||
|
||||
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@node commitinfo
|
||||
@appendixsubsec Commitinfo
|
||||
@ -12694,7 +12794,7 @@ RereadLogAfterVerify=always
|
||||
@cindex Per-module editor
|
||||
@cindex Log messages, editing
|
||||
|
||||
@strong{Note: The @file{editinfo} feature has been
|
||||
@strong{The @file{editinfo} feature has been
|
||||
rendered obsolete. To set a default editor for log
|
||||
messages use the @code{CVSEDITOR}, @code{EDITOR} environment variables
|
||||
(@pxref{Environment variables}) or the @samp{-e} global
|
||||
@ -13046,9 +13146,9 @@ directory.
|
||||
The @file{taginfo} file defines programs to execute
|
||||
when someone executes a @code{tag} or @code{rtag}
|
||||
command. The @file{taginfo} file has the standard form
|
||||
for administrative files (@pxref{syntax}),
|
||||
for trigger scripts (@pxref{Trigger Scripts}),
|
||||
where each line is a regular expression
|
||||
followed by a command to execute. The arguments passed
|
||||
followed by a command to execute (@pxref{syntax}). The arguments passed
|
||||
to the command are, in order, the @var{tagname},
|
||||
@var{operation} (@code{add} for @code{tag},
|
||||
@code{mov} for @code{tag -F}, and @code{del} for
|
||||
@ -13490,7 +13590,7 @@ that the file should be checked with the file system
|
||||
@samp{stat()} function to see if it has changed (see warning below)
|
||||
before rereading. The default value is @samp{always}.
|
||||
|
||||
@strong{Note: the `stat' mode can cause CVS to pause for up to
|
||||
@strong{The `stat' mode can cause CVS to pause for up to
|
||||
one extra second per directory committed. This can be less IO and
|
||||
CPU intensive but is not recommended for use with large repositories}
|
||||
|
||||
@ -14092,6 +14192,19 @@ logged in as "root". (You can disable this option by passing the
|
||||
On some systems this means editing the appropriate @file{config.h} file
|
||||
before building @sc{cvs}.)
|
||||
|
||||
@item Terminated with fatal signal 11
|
||||
This message usually indicates that @sc{cvs} (the server, if you're
|
||||
using client/server mode) has run out of (virtual) memory.
|
||||
Although @sc{cvs} tries to catch the error and issue a more meaningful
|
||||
message, there are many circumstances where that is not possible.
|
||||
If you appear to have lots of memory available to the system,
|
||||
the problem is most likely that you're running into a system-wide
|
||||
limit on the amount of memory a single process can use or a
|
||||
similar process-specific limit.
|
||||
The mechanisms for displaying and setting such limits vary from
|
||||
system to system, so you'll have to consult an expert for your
|
||||
particular system if you don't know how to do that.
|
||||
|
||||
@item Too many arguments!
|
||||
This message is typically printed by the @file{log.pl}
|
||||
script which is in the @file{contrib} directory in the
|
||||
@ -14182,9 +14295,21 @@ vi $*
|
||||
exit 0
|
||||
@end example
|
||||
|
||||
@c "warning: foo was lost" and "no longer pertinent" (both normal).
|
||||
@c Would be nice to write these up--they are
|
||||
@c potentially confusing for the new user.
|
||||
@item cvs update: warning: @var{file} was lost
|
||||
This means that the working copy of @var{file} has been deleted
|
||||
but it has not been removed from @sc{cvs}.
|
||||
This is nothing to be concerned about,
|
||||
the update will just recreate the local file from the repository.
|
||||
(This is a convenient way to discard local changes to a file:
|
||||
just delete it and then run @code{cvs update}.)
|
||||
|
||||
@item cvs update: warning: @var{file} is not (any longer) pertinent
|
||||
This means that the working copy of @var{file} has been deleted,
|
||||
it has not been removed from @sc{cvs} in the current working directory,
|
||||
but it has been removed from @sc{cvs} in some other working directory.
|
||||
This is nothing to be concerned about,
|
||||
the update would have removed the local file anyway.
|
||||
|
||||
@end table
|
||||
|
||||
@node Connection
|
||||
@ -14449,12 +14574,11 @@ distribution. It contains much more information on the
|
||||
process of submitting fixes.
|
||||
|
||||
@item
|
||||
There may be resources on the net which can help. Two
|
||||
good places to start are:
|
||||
There may be resources on the net which can help. A
|
||||
good place to start is:
|
||||
|
||||
@example
|
||||
@url{http://www.cvshome.org}
|
||||
@url{http://www.loria.fr/~molli/cvs-index.html}
|
||||
@url{http://cvs.nongnu.org/}
|
||||
@end example
|
||||
|
||||
If you are so inspired, increasing the information
|
||||
@ -14467,7 +14591,7 @@ page on mailing lists or newsgroups when the subject
|
||||
came up.
|
||||
|
||||
@item
|
||||
It is also possible to report bugs to @email{bug-cvs@@gnu.org}.
|
||||
It is also possible to report bugs to @email{bug-cvs@@nongnu.org}.
|
||||
Note that someone may or may not want to do anything
|
||||
with your bug report---if you need a solution consider
|
||||
one of the options mentioned above. People probably do
|
||||
@ -14476,20 +14600,20 @@ in consequences and/or easy to fix, however. You can
|
||||
also increase your odds by being as clear as possible
|
||||
about the exact nature of the bug and any other
|
||||
relevant information. The way to report bugs is to
|
||||
send email to @email{bug-cvs@@gnu.org}. Note
|
||||
that submissions to @email{bug-cvs@@gnu.org} may be distributed
|
||||
send email to @email{bug-cvs@@nongnu.org}. Note
|
||||
that submissions to @email{bug-cvs@@nongnu.org} may be distributed
|
||||
under the terms of the @sc{gnu} Public License, so if
|
||||
you don't like this, don't submit them. There is
|
||||
usually no justification for sending mail directly to
|
||||
one of the @sc{cvs} maintainers rather than to
|
||||
@email{bug-cvs@@gnu.org}; those maintainers who want to hear
|
||||
about such bug reports read @email{bug-cvs@@gnu.org}. Also note
|
||||
@email{bug-cvs@@nongnu.org}; those maintainers who want to hear
|
||||
about such bug reports read @email{bug-cvs@@nongnu.org}. Also note
|
||||
that sending a bug report to other mailing lists or
|
||||
newsgroups is @emph{not} a substitute for sending it to
|
||||
@email{bug-cvs@@gnu.org}. It is fine to discuss @sc{cvs} bugs on
|
||||
@email{bug-cvs@@nongnu.org}. It is fine to discuss @sc{cvs} bugs on
|
||||
whatever forum you prefer, but there are not
|
||||
necessarily any maintainers reading bug reports sent
|
||||
anywhere except @email{bug-cvs@@gnu.org}.
|
||||
anywhere except @email{bug-cvs@@nongnu.org}.
|
||||
@end itemize
|
||||
|
||||
@cindex Known bugs in this manual or CVS
|
||||
@ -14507,10 +14631,6 @@ comprehensive, detailed list of known bugs.
|
||||
|
||||
@printindex cp
|
||||
|
||||
@summarycontents
|
||||
|
||||
@contents
|
||||
|
||||
@bye
|
||||
|
||||
Local Variables:
|
||||
|
@ -82,7 +82,7 @@ It does not depend on NFS, rdist, etc.
|
||||
@item
|
||||
Providing a reliable transport is outside this protocol. The protocol
|
||||
expects a reliable transport that is transparent (that is, there is no
|
||||
translation of characters, including characters such as such as
|
||||
translation of characters, including characters such as
|
||||
linefeeds or carriage returns), and can transmit all 256 octets (for
|
||||
example for proper handling of binary files, compression, and
|
||||
encryption). The encoding of characters specified by the protocol (the
|
||||
@ -535,12 +535,13 @@ Here are the requests:
|
||||
@table @code
|
||||
@item Root @var{pathname} \n
|
||||
Response expected: no. Tell the server which @code{CVSROOT} to use.
|
||||
Note that @var{pathname} is a local directory and @emph{not} a fully
|
||||
qualified @code{CVSROOT} variable. @var{pathname} must
|
||||
already exist; if creating a new root, use the @code{init} request, not
|
||||
@code{Root}. @var{pathname} does not include the hostname of the
|
||||
server, how to access the server, etc.; by the time the CVS protocol is
|
||||
in use, connection, authentication, etc., are already taken care of.
|
||||
Note that @var{pathname} is @emph{not} a fully qualified @code{CVSROOT}
|
||||
variable, but only the local directory part of it. @var{pathname} must
|
||||
already exist on the server; if creating a new root, use the @code{init}
|
||||
request, not @code{Root}. Again, @var{pathname} @emph{does not} include
|
||||
the hostname of the server, how to access the server, etc.; by the time
|
||||
the CVS protocol is in use, connection, authentication, etc., are
|
||||
already taken care of.
|
||||
|
||||
The @code{Root} request must be sent only once, and it must be sent
|
||||
before any requests other than @code{Valid-responses},
|
||||
@ -871,6 +872,15 @@ in this document, servers must support this request (although it need
|
||||
not do anything) and clients must issue it.
|
||||
The @code{Root} request need not have been previously sent.
|
||||
|
||||
@item Empty-conflicts \n
|
||||
Response expected: yes. This request is an alias for @code{noop}. Its
|
||||
presence in the list of @code{valid-requests} is intended to be used as a
|
||||
placeholder to alert the client that the server does not require the contents
|
||||
of files with conflicts that have not been modified since the merge, for
|
||||
operations other than diff. It was a bug in pre 1.11.22 & pre 1.12.14 servers
|
||||
that the contents of files with conflicts was required for the server to
|
||||
acknowledge the existence of the conflicts.
|
||||
|
||||
@item Notify @var{filename} \n
|
||||
Response expected: no.
|
||||
Tell the server that an @code{edit} or @code{unedit} command has taken
|
||||
@ -2014,7 +2024,7 @@ working directory, and the meaning of sending @code{Entries} without
|
||||
A number of enhancements are possible. Also see the file @sc{todo} in
|
||||
the @sc{cvs} source distribution, which has further ideas concerning
|
||||
various aspects of @sc{cvs}, some of which impact the protocol.
|
||||
Similarly, the @code{http://www.cvshome.org} site, in particular the
|
||||
Similarly, the @code{http://cvs.nongnu.org} site, in particular the
|
||||
@cite{Development} pages.
|
||||
|
||||
@itemize @bullet
|
||||
|
369
contrib/cvs/doc/mkman.pl
Normal file
369
contrib/cvs/doc/mkman.pl
Normal file
@ -0,0 +1,369 @@
|
||||
#! @PERL@
|
||||
#
|
||||
# Generate a man page from sections of a Texinfo manual.
|
||||
#
|
||||
# Copyright 2004 The Free Software Foundation,
|
||||
# Derek R. Price,
|
||||
# & Ximbiot <http://ximbiot.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
|
||||
# Need Perl 5.005 or greater for re 'eval'.
|
||||
require 5.005;
|
||||
|
||||
# The usual.
|
||||
use strict;
|
||||
use IO::File;
|
||||
|
||||
|
||||
|
||||
###
|
||||
### GLOBALS
|
||||
###
|
||||
my $texi_num = 0; # Keep track of how many texinfo files have been encountered.
|
||||
my @parent; # This needs to be global to be used inside of a regex later.
|
||||
my $nk; # Ditto.
|
||||
my $ret; # The RE match Type, used in debug prints.
|
||||
my $debug = 0; # Debug mode?
|
||||
|
||||
|
||||
|
||||
###
|
||||
### FUNCTIONS
|
||||
###
|
||||
sub debug_print
|
||||
{
|
||||
print @_ if $debug;
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub keyword_mode
|
||||
{
|
||||
my ($keyword, $file) = @_;
|
||||
|
||||
return "\\fR"
|
||||
if $keyword =~ /^(|r|t)$/;
|
||||
return "\\fB"
|
||||
if $keyword =~ /^(strong|sc|code|file|samp)$/;
|
||||
return "\\fI"
|
||||
if $keyword =~ /^(emph|var|dfn)$/;
|
||||
die "no handler for keyword \`$keyword', found at line $. of file \`$file'\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Return replacement for \@$keyword{$content}.
|
||||
sub do_keyword
|
||||
{
|
||||
my ($file, $parent, $keyword, $content) = @_;
|
||||
|
||||
return "see node \`$content\\(aq in the CVS manual"
|
||||
if $keyword =~ /^(p?x)?ref$/;
|
||||
return "\\fP\\fP$content"
|
||||
if $keyword =~ /^splitrcskeyword$/;
|
||||
|
||||
my $endmode = keyword_mode $parent;
|
||||
my $startmode = keyword_mode $keyword, $file;
|
||||
|
||||
return "$startmode$content$endmode";
|
||||
}
|
||||
|
||||
|
||||
|
||||
###
|
||||
### MAIN
|
||||
###
|
||||
for my $file (@ARGV)
|
||||
{
|
||||
my $fh = new IO::File "< $file"
|
||||
or die "Failed to open file \`$file': $!";
|
||||
|
||||
if ($file !~ /\.(texinfo|texi|txi)$/)
|
||||
{
|
||||
print stderr "Passing \`$file' through unprocessed.\n";
|
||||
# Just cat any file that doesn't look like a Texinfo source.
|
||||
while (my $line = $fh->getline)
|
||||
{
|
||||
print $line;
|
||||
}
|
||||
next;
|
||||
}
|
||||
|
||||
print stderr "Processing \`$file'.\n";
|
||||
$texi_num++;
|
||||
my $gotone = 0;
|
||||
my $inblank = 0;
|
||||
my $indent = 0;
|
||||
my $inexample = 0;
|
||||
my $inmenu = 0;
|
||||
my $intable = 0;
|
||||
my $last_header = "";
|
||||
my @table_headers;
|
||||
my @table_footers;
|
||||
my $table_header = "";
|
||||
my $table_footer = "";
|
||||
my $last;
|
||||
while ($_ = $fh->getline)
|
||||
{
|
||||
if (!$gotone && /^\@c ----- START MAN $texi_num -----$/)
|
||||
{
|
||||
$gotone = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
# Skip ahead until our man section.
|
||||
next unless $gotone;
|
||||
|
||||
# If we find the end tag we are done.
|
||||
last if /^\@c ----- END MAN $texi_num -----$/;
|
||||
|
||||
# Need to do this everywhere. i.e., before we print example
|
||||
# lines, since literal back slashes can appear there too.
|
||||
s/\\/\\\\/g;
|
||||
s/^\./\\&./;
|
||||
s/([\s])\./$1\\&./;
|
||||
s/'/\\(aq/g;
|
||||
s/`/\\`/g;
|
||||
s/(?<!-)---(?!-)/\\(em/g;
|
||||
s/\@bullet({}|\b)/\\(bu/g;
|
||||
s/\@dots({}|\b)/\\&.../g;
|
||||
|
||||
# Examples should be indented and otherwise untouched
|
||||
if (/^\@example$/)
|
||||
{
|
||||
$indent += 2;
|
||||
print qq{.SP\n.PD 0\n};
|
||||
$inexample = 1;
|
||||
next;
|
||||
}
|
||||
if ($inexample)
|
||||
{
|
||||
if (/^\@end example$/)
|
||||
{
|
||||
$indent -= 2;
|
||||
print qq{\n.PD\n.IP "" $indent\n};
|
||||
$inexample = 0;
|
||||
next;
|
||||
}
|
||||
if (/^[ ]*$/)
|
||||
{
|
||||
print ".SP\n";
|
||||
next;
|
||||
}
|
||||
|
||||
# Preserve the newline.
|
||||
$_ = qq{.IP "" $indent\n} . $_;
|
||||
}
|
||||
|
||||
# Compress blank lines into a single line. This and its
|
||||
# corresponding skip purposely bracket the @menu and comment
|
||||
# removal so that blanks on either side of a menu are
|
||||
# compressed after the menu is removed.
|
||||
if (/^[ ]*$/)
|
||||
{
|
||||
$inblank = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
# Not used
|
||||
if (/^\@(ignore|menu)$/)
|
||||
{
|
||||
$inmenu++;
|
||||
next;
|
||||
}
|
||||
# Delete menu contents.
|
||||
if ($inmenu)
|
||||
{
|
||||
next unless /^\@end (ignore|menu)$/;
|
||||
$inmenu--;
|
||||
next;
|
||||
}
|
||||
|
||||
# Remove comments
|
||||
next if /^\@c(omment)?\b/;
|
||||
|
||||
# Ignore includes.
|
||||
next if /^\@include\b/;
|
||||
|
||||
# It's okay to ignore this keyword - we're not using any
|
||||
# first-line indent commands at all.
|
||||
next if s/^\@noindent\s*$//;
|
||||
|
||||
# @need is only significant in printed manuals.
|
||||
next if s/^\@need\s+.*$//;
|
||||
|
||||
# If we didn't hit the previous check and $inblank is set, then
|
||||
# we just finished with some number of blanks. Print the man
|
||||
# page blank symbol before continuing processing of this line.
|
||||
if ($inblank)
|
||||
{
|
||||
print ".SP\n";
|
||||
$inblank = 0;
|
||||
}
|
||||
|
||||
# Chapter headers.
|
||||
$last_header = $1 if s/^\@node\s+(.*)$/.SH "$1"/;
|
||||
if (/^\@appendix\w*\s+(.*)$/)
|
||||
{
|
||||
my $content = $1;
|
||||
$content =~ s/^$last_header(\\\(em|\s+)?//;
|
||||
next if $content =~ /^\s*$/;
|
||||
s/^\@appendix\w*\s+.*$/.SS "$content"/;
|
||||
}
|
||||
|
||||
# Tables are similar to examples, except we need to handle the
|
||||
# keywords.
|
||||
if (/^\@(itemize|table)(\s+(.*))?$/)
|
||||
{
|
||||
$indent += 2;
|
||||
push @table_headers, $table_header;
|
||||
push @table_footers, $table_footer;
|
||||
my $content = $3;
|
||||
if (/^\@itemize/)
|
||||
{
|
||||
my $bullet = $content;
|
||||
$table_header = qq{.IP "$bullet" $indent\n};
|
||||
$table_footer = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
my $hi = $indent - 2;
|
||||
$table_header = qq{.IP "" $hi\n};
|
||||
$table_footer = qq{\n.IP "" $indent};
|
||||
if ($content)
|
||||
{
|
||||
$table_header .= "$content\{";
|
||||
$table_footer = "\}$table_footer";
|
||||
}
|
||||
}
|
||||
$intable++;
|
||||
next;
|
||||
}
|
||||
|
||||
if ($intable)
|
||||
{
|
||||
if (/^\@end (itemize|table)$/)
|
||||
{
|
||||
$table_header = pop @table_headers;
|
||||
$table_footer = pop @table_footers;
|
||||
$indent -= 2;
|
||||
$intable--;
|
||||
next;
|
||||
}
|
||||
s/^\@itemx?(\s+(.*))?$/$table_header$2$table_footer/;
|
||||
# Fall through so the rest of the table lines are
|
||||
# processed normally.
|
||||
}
|
||||
|
||||
# Index entries.
|
||||
s/^\@cindex\s+(.*)$/.IX "$1"/;
|
||||
|
||||
$_ = "$last$_" if $last;
|
||||
undef $last;
|
||||
|
||||
# Trap keywords
|
||||
$nk = qr/
|
||||
\@(\w+)\{
|
||||
(?{ debug_print "$ret MATCHED $&\nPUSHING $1\n";
|
||||
push @parent, $1; }) # Keep track of the last keyword
|
||||
# keyword we encountered.
|
||||
((?>
|
||||
[^{}]|(?<=\@)[{}] # Non-braces...
|
||||
| # ...or...
|
||||
(??{ $nk }) # ...nested keywords...
|
||||
)*) # ...without backtracking.
|
||||
\}
|
||||
(?{ debug_print "$ret MATCHED $&\nPOPPING ",
|
||||
pop (@parent), "\n"; }) # Lose track of the current keyword.
|
||||
/x;
|
||||
|
||||
$ret = "m//";
|
||||
if (/\@\w+\{(?:[^{}]|(?<=\@)[{}]|(??{ $nk }))*$/)
|
||||
{
|
||||
# If there is an opening keyword on this line without a
|
||||
# close bracket, we need to find the close bracket
|
||||
# before processing the line. Set $last to append the
|
||||
# next line in the next pass.
|
||||
$last = $_;
|
||||
next;
|
||||
}
|
||||
|
||||
# Okay, the following works somewhat counter-intuitively. $nk
|
||||
# processes the whole line, so @parent gets loaded properly,
|
||||
# then, since no closing brackets have been found for the
|
||||
# outermost matches, the innermost matches match and get
|
||||
# replaced first.
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# Processing the line:
|
||||
#
|
||||
# yadda yadda @code{yadda @var{foo} yadda @var{bar} yadda}
|
||||
#
|
||||
# Happens something like this:
|
||||
#
|
||||
# 1. Ignores "yadda yadda "
|
||||
# 2. Sees "@code{" and pushes "code" onto @parent.
|
||||
# 3. Ignores "yadda " (backtracks and ignores "yadda yadda
|
||||
# @code{yadda "?)
|
||||
# 4. Sees "@var{" and pushes "var" onto @parent.
|
||||
# 5. Sees "foo}", pops "var", and realizes that "@var{foo}"
|
||||
# matches the overall pattern ($nk).
|
||||
# 6. Replaces "@var{foo}" with the result of:
|
||||
#
|
||||
# do_keyword $file, $parent[$#parent], $1, $2;
|
||||
#
|
||||
# which would be "\Ifoo\B", in this case, because "var"
|
||||
# signals a request for italics, or "\I", and "code" is
|
||||
# still on the stack, which means the previous style was
|
||||
# bold, or "\B".
|
||||
#
|
||||
# Then the while loop restarts and a similar series of events
|
||||
# replaces "@var{bar}" with "\Ibar\B".
|
||||
#
|
||||
# Then the while loop restarts and a similar series of events
|
||||
# replaces "@code{yadda \Ifoo\B yadda \Ibar\B yadda}" with
|
||||
# "\Byadda \Ifoo\B yadda \Ibar\B yadda\R".
|
||||
#
|
||||
$ret = "s///";
|
||||
@parent = ("");
|
||||
while (s/$nk/do_keyword $file, $parent[$#parent], $1, $2/e)
|
||||
{
|
||||
# Do nothing except reset our last-replacement
|
||||
# tracker - the replacement regex above is handling
|
||||
# everything else.
|
||||
debug_print "FINAL MATCH $&\n";
|
||||
@parent = ("");
|
||||
}
|
||||
|
||||
# Finally, unprotect texinfo special characters.
|
||||
s/\@://g;
|
||||
s/\@([{}])/$1/g;
|
||||
|
||||
# Verify we haven't left commands unprocessed.
|
||||
die "Unprocessed command at line $. of file \`$file': "
|
||||
. ($1 ? "$1\n" : "<EOL>\n")
|
||||
if /^(?>(?:[^\@]|\@\@)*)\@(\w+|.|$)/;
|
||||
|
||||
# Unprotect @@.
|
||||
s/\@\@/\@/g;
|
||||
|
||||
# And print whatever's left.
|
||||
print $_;
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 3 February 2004
|
||||
@set UPDATED-MONTH February 2004
|
||||
@set EDITION 1.11.17
|
||||
@set VERSION 1.11.17
|
||||
@set UPDATED 8 June 2006
|
||||
@set UPDATED-MONTH June 2006
|
||||
@set EDITION 1.11.22
|
||||
@set VERSION 1.11.22
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 27 May 2004
|
||||
@set UPDATED-MONTH May 2004
|
||||
@set EDITION 1.11.17
|
||||
@set VERSION 1.11.17
|
||||
@set UPDATED 15 May 2006
|
||||
@set UPDATED-MONTH May 2006
|
||||
@set EDITION 1.11.22
|
||||
@set VERSION 1.11.22
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 3 February 2004
|
||||
@set UPDATED-MONTH February 2004
|
||||
@set EDITION 1.11.17
|
||||
@set VERSION 1.11.17
|
||||
@set UPDATED 8 June 2006
|
||||
@set UPDATED-MONTH June 2006
|
||||
@set EDITION 1.11.22
|
||||
@set VERSION 1.11.22
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 27 May 2004
|
||||
@set UPDATED-MONTH May 2004
|
||||
@set EDITION 1.11.17
|
||||
@set VERSION 1.11.17
|
||||
@set UPDATED 15 May 2006
|
||||
@set UPDATED-MONTH May 2006
|
||||
@set EDITION 1.11.22
|
||||
@set VERSION 1.11.22
|
||||
|
@ -1,3 +1,57 @@
|
||||
2005-11-14 Mark D. Baushke <mdb@gnu.org>
|
||||
|
||||
* system.h (FOLD_FN_CHAR): Distinguish OSX_ and VMS_ variations
|
||||
based on USE_VMS_FILENAME macro.
|
||||
|
||||
2005-11-09 Mark D. Baushke <mdb@gnu.org>
|
||||
|
||||
* system.h (FOLD_FN_CHAR): Create a VMS alternative of this macro
|
||||
(patch suggested by Piet Schuermans <pschuermans@mac.com>).
|
||||
|
||||
2005-07-11 Mark D. Baushke <mdb@cvshome.org>
|
||||
|
||||
* getpass.c (getpass): Add a K&R style function definition.
|
||||
|
||||
2005-04-15 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add test-getdate.sh.
|
||||
|
||||
2005-03-23 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am (TESTS, MOSTLYCLEANFILES, check_PROGRAMS, EXTRA_DIST,
|
||||
getdate_SOURCES, getdate_CPPFLAGS): Add getdate testing cruft.
|
||||
* test-getdate.sh: New file.
|
||||
* .cvsignore: Ignore getdate executable.
|
||||
|
||||
2005-03-23 Larry Jones <lawrence.jones@ugs.com>
|
||||
|
||||
* getdate.c: Remove absolute paths from #line directives.
|
||||
|
||||
2005-03-04 Jim Hyslop <jhyslop@ieee.org>
|
||||
|
||||
* xtime.h: added include guards to fix compile errors on IRIX 5.3
|
||||
(Patch from Georg Schwarz <georg.scwarz@freenet.de>.)
|
||||
|
||||
2005-02-08 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* fncase.c (OSX_filename_classes): Mac OSX doesn't need \ mapped to /.
|
||||
* system.h (FOLD_FN_CASE): Clarify comment.
|
||||
|
||||
2005-01-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am: Update copyright notices.
|
||||
|
||||
2004-10-05 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* regex.c: Back out my change from 2004-04-07 as possibly suppressing
|
||||
useful warnings.
|
||||
|
||||
2004-10-05 Mark D. Baushke <mdb@cvshome.org>
|
||||
|
||||
* regex.c (re_comp): Cast gettext return value to char * to
|
||||
avoid warning in !ENABLE_NLS case. Patch imported from GNULIB.
|
||||
(Problem report from Martin Neitzel <neitzel@sco.gaertner.de>.)
|
||||
|
||||
2004-05-28 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* xsize.h: New file from GNULIB.
|
||||
|
@ -1,8 +1,10 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# Makefile for library files used by GNU CVS.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -86,7 +88,23 @@ EXTRA_DIST = \
|
||||
ChangeLog.fsf \
|
||||
build_lib.com \
|
||||
libcvs.dep libcvs.dsp libcvs.mak \
|
||||
xgssapi.h
|
||||
xgssapi.h \
|
||||
test-getdate.sh
|
||||
|
||||
TESTS =
|
||||
MOSTLYCLEANFILES =
|
||||
check_PROGRAMS =
|
||||
|
||||
# Test GNULIB getdate module.
|
||||
TESTS += test-getdate.sh
|
||||
MOSTLYCLEANFILES += getdate-expected getdate-got getdate.diff
|
||||
# Program required by test-getdate.sh for testing getdate.y.
|
||||
check_PROGRAMS += getdate
|
||||
EXTRA_DIST += $(check_PROGRAMS)
|
||||
getdate_SOURCES = getdate.y
|
||||
getdate_CPPFLAGS = -DTEST
|
||||
##getdate_LDADD = \
|
||||
## $(noinst_LIBRARIES)
|
||||
|
||||
# For the xsize module from GNULIB.
|
||||
libcvs_a_SOURCES += xsize.h
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -15,9 +15,11 @@
|
||||
@SET_MAKE@
|
||||
|
||||
# Makefile for library files used by GNU CVS.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -36,7 +38,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -50,6 +51,49 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
check_PROGRAMS = getdate$(EXEEXT)
|
||||
subdir = lib
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/fnmatch.h.in ChangeLog dup2.c fncase.c fnmatch.c \
|
||||
fnmatch.h.in ftruncate.c getdate.c gethostname.c memmove.c \
|
||||
mkdir.c rename.c strerror.c strstr.c strtoul.c valloc.c \
|
||||
waitpid.c
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = fnmatch.h
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
AR = ar
|
||||
ARFLAGS = cru
|
||||
libcvs_a_AR = $(AR) $(ARFLAGS)
|
||||
libcvs_a_DEPENDENCIES = @LIBOBJS@
|
||||
am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) getdate.$(OBJEXT) \
|
||||
getline.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
|
||||
getpass.$(OBJEXT) md5.$(OBJEXT) regex.$(OBJEXT) \
|
||||
savecwd.$(OBJEXT) sighandle.$(OBJEXT) stripslash.$(OBJEXT) \
|
||||
xgetwd.$(OBJEXT) yesno.$(OBJEXT)
|
||||
libcvs_a_OBJECTS = $(am_libcvs_a_OBJECTS)
|
||||
am_getdate_OBJECTS = getdate-getdate.$(OBJEXT)
|
||||
getdate_OBJECTS = $(am_getdate_OBJECTS)
|
||||
getdate_LDADD = $(LDADD)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
YLWRAP = $(top_srcdir)/ylwrap
|
||||
SOURCES = $(libcvs_a_SOURCES) $(getdate_SOURCES)
|
||||
DIST_SOURCES = $(libcvs_a_SOURCES) $(getdate_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -119,6 +163,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -132,6 +178,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -139,6 +186,7 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
with_default_rsh = @with_default_rsh@
|
||||
|
||||
# For now we need to include $(top_srcdir)/src because some systems
|
||||
# (at least 'AIX rioscpu2 3 4 000030498200',
|
||||
@ -153,7 +201,6 @@ target_alias = @target_alias@
|
||||
#
|
||||
# $(includeopt) is CVS specific and set by configure
|
||||
INCLUDES = -I$(top_srcdir)/src $(includeopt)
|
||||
|
||||
noinst_LIBRARIES = libcvs.a
|
||||
|
||||
# Always use CVS's regular expression matcher regex.o, because of
|
||||
@ -168,96 +215,53 @@ noinst_LIBRARIES = libcvs.a
|
||||
# matching?)
|
||||
|
||||
# For the xsize module from GNULIB.
|
||||
libcvs_a_SOURCES = \
|
||||
argmatch.c \
|
||||
getdate.y \
|
||||
getline.c \
|
||||
getopt.c \
|
||||
getopt1.c \
|
||||
getpass.c \
|
||||
md5.c \
|
||||
regex.c \
|
||||
savecwd.c \
|
||||
sighandle.c \
|
||||
stripslash.c \
|
||||
xgetwd.c \
|
||||
yesno.c \
|
||||
getline.h \
|
||||
getopt.h \
|
||||
getpagesize.h \
|
||||
md5.h \
|
||||
regex.h \
|
||||
savecwd.h \
|
||||
system.h \
|
||||
wait.h \
|
||||
xselect.h \
|
||||
xtime.h\
|
||||
xsize.h
|
||||
libcvs_a_SOURCES = argmatch.c getdate.y getline.c getopt.c getopt1.c \
|
||||
getpass.c md5.c regex.c savecwd.c sighandle.c stripslash.c \
|
||||
xgetwd.c yesno.c getline.h getopt.h getpagesize.h md5.h \
|
||||
regex.h savecwd.h system.h wait.h xselect.h xtime.h xsize.h
|
||||
libcvs_a_LIBADD = @LIBOBJS@
|
||||
EXTRA_DIST = .cvsignore ChangeLog.fsf build_lib.com libcvs.dep \
|
||||
libcvs.dsp libcvs.mak xgssapi.h test-getdate.sh \
|
||||
$(check_PROGRAMS)
|
||||
|
||||
EXTRA_DIST = \
|
||||
.cvsignore \
|
||||
ChangeLog.fsf \
|
||||
build_lib.com \
|
||||
libcvs.dep libcvs.dsp libcvs.mak \
|
||||
xgssapi.h
|
||||
|
||||
subdir = lib
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
|
||||
libcvs_a_AR = $(AR) cru
|
||||
libcvs_a_DEPENDENCIES = @LIBOBJS@
|
||||
am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) getdate.$(OBJEXT) \
|
||||
getline.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
|
||||
getpass.$(OBJEXT) md5.$(OBJEXT) regex.$(OBJEXT) \
|
||||
savecwd.$(OBJEXT) sighandle.$(OBJEXT) stripslash.$(OBJEXT) \
|
||||
xgetwd.$(OBJEXT) yesno.$(OBJEXT)
|
||||
libcvs_a_OBJECTS = $(am_libcvs_a_OBJECTS)
|
||||
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/dup2.Po $(DEPDIR)/fncase.Po \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/fnmatch.Po $(DEPDIR)/fnmatch.h.in \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/ftruncate.Po $(DEPDIR)/gethostname.Po \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/memmove.Po $(DEPDIR)/mkdir.Po \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/rename.Po $(DEPDIR)/strerror.Po \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/strstr.Po $(DEPDIR)/strtoul.Po \
|
||||
@AMDEP_TRUE@ $(DEPDIR)/valloc.Po $(DEPDIR)/waitpid.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/argmatch.Po ./$(DEPDIR)/getdate.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/getline.Po ./$(DEPDIR)/getopt.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/getpass.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/md5.Po ./$(DEPDIR)/regex.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/savecwd.Po ./$(DEPDIR)/sighandle.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/xgetwd.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/yesno.Po
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
DIST_SOURCES = $(libcvs_a_SOURCES)
|
||||
DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am dup2.c \
|
||||
fncase.c fnmatch.c fnmatch.h.in ftruncate.c getdate.c \
|
||||
gethostname.c memmove.c mkdir.c rename.c strerror.c strstr.c \
|
||||
strtoul.c valloc.c waitpid.c
|
||||
SOURCES = $(libcvs_a_SOURCES)
|
||||
|
||||
# Test GNULIB getdate module.
|
||||
TESTS = test-getdate.sh
|
||||
MOSTLYCLEANFILES = getdate-expected getdate-got getdate.diff
|
||||
getdate_SOURCES = getdate.y
|
||||
getdate_CPPFLAGS = -DTEST
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj .y
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
AR = ar
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
clean-noinstLIBRARIES:
|
||||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||
@ -266,8 +270,14 @@ libcvs.a: $(libcvs_a_OBJECTS) $(libcvs_a_DEPENDENCIES)
|
||||
$(libcvs_a_AR) libcvs.a $(libcvs_a_OBJECTS) $(libcvs_a_LIBADD)
|
||||
$(RANLIB) libcvs.a
|
||||
|
||||
clean-checkPROGRAMS:
|
||||
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
|
||||
getdate$(EXEEXT): $(getdate_OBJECTS) $(getdate_DEPENDENCIES)
|
||||
@rm -f getdate$(EXEEXT)
|
||||
$(LINK) $(getdate_LDFLAGS) $(getdate_OBJECTS) $(getdate_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT) core *.core
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
@ -287,6 +297,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/valloc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/waitpid.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate-getdate.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
|
||||
@ -301,56 +312,37 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yesno.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
getdate-getdate.o: getdate.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdate_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getdate-getdate.o -MD -MP -MF "$(DEPDIR)/getdate-getdate.Tpo" -c -o getdate-getdate.o `test -f 'getdate.c' || echo '$(srcdir)/'`getdate.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/getdate-getdate.Tpo" "$(DEPDIR)/getdate-getdate.Po"; else rm -f "$(DEPDIR)/getdate-getdate.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='getdate.c' object='getdate-getdate.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdate_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getdate-getdate.o `test -f 'getdate.c' || echo '$(srcdir)/'`getdate.c
|
||||
|
||||
getdate-getdate.obj: getdate.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdate_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getdate-getdate.obj -MD -MP -MF "$(DEPDIR)/getdate-getdate.Tpo" -c -o getdate-getdate.obj `if test -f 'getdate.c'; then $(CYGPATH_W) 'getdate.c'; else $(CYGPATH_W) '$(srcdir)/getdate.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/getdate-getdate.Tpo" "$(DEPDIR)/getdate-getdate.Po"; else rm -f "$(DEPDIR)/getdate-getdate.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='getdate.c' object='getdate-getdate.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdate_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getdate-getdate.obj `if test -f 'getdate.c'; then $(CYGPATH_W) 'getdate.c'; else $(CYGPATH_W) '$(srcdir)/getdate.c'; fi`
|
||||
|
||||
.y.c:
|
||||
$(YACCCOMPILE) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
if test -f y.tab.h; then \
|
||||
to=`echo "$*_H" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
|
||||
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
|
||||
sed "/^#/ s/Y_TAB_H/$$to/g" y.tab.h >$*.ht; \
|
||||
rm -f y.tab.h; \
|
||||
if cmp -s $*.ht $*.h; then \
|
||||
rm -f $*.ht ;\
|
||||
else \
|
||||
mv $*.ht $*.h; \
|
||||
fi; \
|
||||
fi
|
||||
if test -f y.output; then \
|
||||
mv y.output $*.output; \
|
||||
fi
|
||||
sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
|
||||
rm -f y.tab.c
|
||||
$(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
|
||||
uninstall-info-am:
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -359,6 +351,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -370,10 +363,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -396,10 +390,79 @@ GTAGS:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
check-TESTS: $(TESTS)
|
||||
@failed=0; all=0; xfail=0; xpass=0; skip=0; \
|
||||
srcdir=$(srcdir); export srcdir; \
|
||||
list='$(TESTS)'; \
|
||||
if test -n "$$list"; then \
|
||||
for tst in $$list; do \
|
||||
if test -f ./$$tst; then dir=./; \
|
||||
elif test -f $$tst; then dir=; \
|
||||
else dir="$(srcdir)/"; fi; \
|
||||
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
||||
all=`expr $$all + 1`; \
|
||||
case " $(XFAIL_TESTS) " in \
|
||||
*" $$tst "*) \
|
||||
xpass=`expr $$xpass + 1`; \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "XPASS: $$tst"; \
|
||||
;; \
|
||||
*) \
|
||||
echo "PASS: $$tst"; \
|
||||
;; \
|
||||
esac; \
|
||||
elif test $$? -ne 77; then \
|
||||
all=`expr $$all + 1`; \
|
||||
case " $(XFAIL_TESTS) " in \
|
||||
*" $$tst "*) \
|
||||
xfail=`expr $$xfail + 1`; \
|
||||
echo "XFAIL: $$tst"; \
|
||||
;; \
|
||||
*) \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "FAIL: $$tst"; \
|
||||
;; \
|
||||
esac; \
|
||||
else \
|
||||
skip=`expr $$skip + 1`; \
|
||||
echo "SKIP: $$tst"; \
|
||||
fi; \
|
||||
done; \
|
||||
if test "$$failed" -eq 0; then \
|
||||
if test "$$xfail" -eq 0; then \
|
||||
banner="All $$all tests passed"; \
|
||||
else \
|
||||
banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
|
||||
fi; \
|
||||
else \
|
||||
if test "$$xpass" -eq 0; then \
|
||||
banner="$$failed of $$all tests failed"; \
|
||||
else \
|
||||
banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dashes="$$banner"; \
|
||||
skipped=""; \
|
||||
if test "$$skip" -ne 0; then \
|
||||
skipped="($$skip tests were not run)"; \
|
||||
test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||
dashes="$$skipped"; \
|
||||
fi; \
|
||||
report=""; \
|
||||
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||
report="Please report to $(PACKAGE_BUGREPORT)"; \
|
||||
test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||
dashes="$$report"; \
|
||||
fi; \
|
||||
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
test -z "$$skipped" || echo "$$skipped"; \
|
||||
test -z "$$report" || echo "$$report"; \
|
||||
echo "$$dashes"; \
|
||||
test "$$failed" -eq 0; \
|
||||
else :; fi
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
@ -413,7 +476,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -429,9 +492,10 @@ distdir: $(DISTFILES)
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
||||
check: check-am
|
||||
all-am: Makefile $(LIBRARIES)
|
||||
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
@ -448,11 +512,12 @@ install-strip:
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -460,7 +525,8 @@ maintainer-clean-generic:
|
||||
-rm -f getdate.c
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
|
||||
clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf $(DEPDIR) ./$(DEPDIR)
|
||||
@ -472,6 +538,8 @@ dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -505,16 +573,16 @@ ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-noinstLIBRARIES ctags distclean distclean-compile \
|
||||
distclean-generic distclean-local distclean-tags distdir dvi \
|
||||
dvi-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-info-am
|
||||
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
|
||||
clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES ctags \
|
||||
distclean distclean-compile distclean-generic distclean-local \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
# Until Automake gets its act together
|
||||
|
@ -104,7 +104,7 @@ OSX_filename_classes[] =
|
||||
0x40,0x61,0x62,0x63, 0x64,0x65,0x66,0x67,
|
||||
0x68,0x69,0x6a,0x6b, 0x6c,0x6d,0x6e,0x6f,
|
||||
0x70,0x71,0x72,0x73, 0x74,0x75,0x76,0x77,
|
||||
0x78,0x79,0x7a,0x5b, 0x2f,0x5d,0x5e,0x5f,
|
||||
0x78,0x79,0x7a,0x5b, 0x5c,0x5d,0x5e,0x5f,
|
||||
0x60,0x61,0x62,0x63, 0x64,0x65,0x66,0x67,
|
||||
0x68,0x69,0x6a,0x6b, 0x6c,0x6d,0x6e,0x6f,
|
||||
0x70,0x71,0x72,0x73, 0x74,0x75,0x76,0x77,
|
||||
|
BIN
contrib/cvs/lib/getdate
Executable file
BIN
contrib/cvs/lib/getdate
Executable file
Binary file not shown.
@ -37,7 +37,12 @@
|
||||
#endif
|
||||
|
||||
char *
|
||||
#if __STDC__
|
||||
getpass (const char *prompt)
|
||||
#else
|
||||
getpass (prompt)
|
||||
const char *prompt;
|
||||
#endif
|
||||
{
|
||||
FILE *in, *out;
|
||||
struct termios s, t;
|
||||
|
@ -4001,7 +4001,7 @@ static boolean alt_match_null_string_p (),
|
||||
|
||||
/* Free everything we malloc. */
|
||||
#ifdef MATCH_MAY_ALLOCATE
|
||||
#define FREE_VAR(var) if (var) { (void)REGEX_FREE ((void *)var); var = NULL; } else
|
||||
#define FREE_VAR(var) if (var) { REGEX_FREE (var); var = NULL; } else
|
||||
#define FREE_VARIABLES() \
|
||||
do { \
|
||||
REGEX_FREE_STACK (fail_stack.stack); \
|
||||
@ -6084,7 +6084,7 @@ re_comp (s)
|
||||
if (!s)
|
||||
{
|
||||
if (!re_comp_buf.buffer)
|
||||
return gettext ("No previous regular expression");
|
||||
return (char *) gettext ("No previous regular expression");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -491,18 +491,22 @@ extern unsigned char WNT_filename_classes[];
|
||||
Windows NT, you can use either / or \. */
|
||||
# define ISDIRSEP(c) (FOLD_FN_CHAR(c) == '/')
|
||||
# define ISABSOLUTE(s) (ISDIRSEP(s[0]) || FOLD_FN_CHAR(s[0]) >= 'a' && FOLD_FN_CHAR(s[0]) <= 'z' && s[1] == ':' && ISDIRSEP(s[2]))
|
||||
# else /* ! WOE32 */
|
||||
/* As far as I know, just Macintosh OS X can make it here,
|
||||
* but since the OS X fold just folds a-z into A-Z or visa-versa, I'm just
|
||||
* allowing it to be used for any case insensitive system which we aren't
|
||||
* yet making other specific folds or exceptions for (basically, anything
|
||||
* case insensitive other than Windows, where \ and C:\ style absolute paths
|
||||
* also need to be accounted for).
|
||||
*
|
||||
* Under Mac OS X, filenames are case-insensitive.
|
||||
# else /* !__CYGWIN32__ && !WOE32 */
|
||||
/* As far as I know, only Macintosh OS X & VMS make it here, but any
|
||||
* platform defining FILENAMES_CASE_INSENSITIVE which isn't WOE32 or
|
||||
* piggy-backing the same could, in theory. Since the OS X fold just folds
|
||||
* A-Z into a-z, I'm just allowing it to be used for any case insensitive
|
||||
* system which we aren't yet making other specific folds or exceptions for.
|
||||
* WOE32 needs its own class since \ and C:\ style absolute paths also need
|
||||
* to be accounted for.
|
||||
*/
|
||||
# if defined(USE_VMS_FILENAMES)
|
||||
# define FOLD_FN_CHAR(c) (VMS_filename_classes[(unsigned char) (c)])
|
||||
extern unsigned char VMS_filename_classes[];
|
||||
# else
|
||||
# define FOLD_FN_CHAR(c) (OSX_filename_classes[(unsigned char) (c)])
|
||||
extern unsigned char OSX_filename_classes[];
|
||||
# endif
|
||||
# endif /* __CYGWIN32__ || WOE32 */
|
||||
|
||||
/* The following need to be declared for all case insensitive filesystems.
|
||||
|
127
contrib/cvs/lib/test-getdate.sh
Executable file
127
contrib/cvs/lib/test-getdate.sh
Executable file
@ -0,0 +1,127 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Test that a getdate executable meets its specification.
|
||||
#
|
||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# 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.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
# Why are these dates tested?
|
||||
#
|
||||
# February 29, 2003
|
||||
# Is not a leap year - should be invalid.
|
||||
#
|
||||
# 2004-12-40
|
||||
# Make sure get_date does not "roll" date forward to January 9th. Some
|
||||
# versions have been known to do this.
|
||||
#
|
||||
# Dec-5-1972
|
||||
# This is my birthday. :)
|
||||
#
|
||||
# 3/29/1974
|
||||
# 1996/05/12 13:57:45
|
||||
# Because.
|
||||
#
|
||||
# 12-05-12
|
||||
# This will be my 40th birthday. Ouch. :)
|
||||
#
|
||||
# 05/12/96
|
||||
# Because.
|
||||
#
|
||||
# third tuesday in March, 2078
|
||||
# Wanted this to work.
|
||||
#
|
||||
# 1969-12-32 2:00:00 UTC
|
||||
# 1970-01-01 2:00:00 UTC
|
||||
# 1969-12-32 2:00:00 +0400
|
||||
# 1970-01-01 2:00:00 +0400
|
||||
# 1969-12-32 2:00:00 -0400
|
||||
# 1970-01-01 2:00:00 -0400
|
||||
# Playing near the UNIX Epoch boundry condition to make sure date rolling
|
||||
# is also disabled there.
|
||||
#
|
||||
# 1996-12-12 1 month
|
||||
# Test a relative date.
|
||||
#
|
||||
# Tue Jan 19 03:14:07 2038 +0000
|
||||
# For machines with 31-bit time_t, any date past this date will be an
|
||||
# invalid date. So, any test date with a value greater than this
|
||||
# time is not portable.
|
||||
#
|
||||
# Feb. 29, 2096 4 years
|
||||
# 4 years from this date is _not_ a leap year, so Feb. 29th does not exist.
|
||||
#
|
||||
# Feb. 29, 2096 8 years
|
||||
# 8 years from this date is a leap year, so Feb. 29th does exist,
|
||||
# but on many hosts with 32-bit time_t types time, this test will
|
||||
# fail. So, this is not a portable test.
|
||||
#
|
||||
|
||||
TZ=UTC0; export TZ
|
||||
|
||||
cat >getdate-expected <<EOF
|
||||
Enter date, or blank line to exit.
|
||||
> Bad format - couldn't convert.
|
||||
> Bad format - couldn't convert.
|
||||
> Bad format - couldn't convert.
|
||||
> Fri Mar 29 00:00:00 1974
|
||||
> Sun May 12 13:57:45 1996
|
||||
> Sat May 12 00:00:00 2012
|
||||
> Sun May 12 00:00:00 1996
|
||||
> Bad format - couldn't convert.
|
||||
> Bad format - couldn't convert.
|
||||
> Thu Jan 1 02:00:00 1970
|
||||
> Bad format - couldn't convert.
|
||||
> Bad format - couldn't convert.
|
||||
> Bad format - couldn't convert.
|
||||
> Thu Jan 1 06:00:00 1970
|
||||
> Sun Jan 12 00:00:00 1997
|
||||
>
|
||||
EOF
|
||||
|
||||
./getdate >getdate-got <<EOF
|
||||
February 29, 2003
|
||||
2004-12-40
|
||||
Dec-5-1972
|
||||
3/29/1974
|
||||
1996/05/12 13:57:45
|
||||
12-05-12
|
||||
05/12/96
|
||||
third tuesday in March, 2078
|
||||
1969-12-32 2:00:00 UTC
|
||||
1970-01-01 2:00:00 UTC
|
||||
1969-12-32 2:00:00 +0400
|
||||
1970-01-01 2:00:00 +0400
|
||||
1969-12-32 2:00:00 -0400
|
||||
1970-01-01 2:00:00 -0400
|
||||
1996-12-12 1 month
|
||||
EOF
|
||||
|
||||
echo >>getdate-got
|
||||
|
||||
if cmp getdate-expected getdate-got >getdate.cmp; then :; else
|
||||
LOGFILE=`pwd`/getdate.log
|
||||
cat getdate.cmp >${LOGFILE}
|
||||
echo "** expected: " >>${LOGFILE}
|
||||
cat getdate-expected >>${LOGFILE}
|
||||
echo "** got: " >>${LOGFILE}
|
||||
cat getdate-got >>${LOGFILE}
|
||||
echo "FAIL: getdate" | tee -a ${LOGFILE}
|
||||
echo "Failed! See ${LOGFILE} for more!" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm getdate-expected getdate-got getdate.cmp
|
||||
exit 0
|
@ -11,6 +11,8 @@
|
||||
/* This file simply performs the include magic necessary for using time
|
||||
* functions
|
||||
*/
|
||||
#ifndef XTIME_HEADER_INCLUDED
|
||||
#define XTIME_HEADER_INCLUDED
|
||||
|
||||
#ifdef vms
|
||||
# include <time.h>
|
||||
@ -55,3 +57,5 @@ extern long timezone;
|
||||
# endif /* !defined(HAVE_FTIME) && !defined(HAVE_TIMEZONE) */
|
||||
|
||||
#endif /* !vms */
|
||||
|
||||
#endif /* !XTIME_HEADER_INCLUDED */
|
||||
|
@ -1,3 +1,7 @@
|
||||
2005-01-31 Derek Price <derek@ximbiot.com>
|
||||
|
||||
* Makefile.am: Update copyright notices.
|
||||
|
||||
2004-04-30 Derek Price <derek@ximbiot.com>
|
||||
|
||||
First pass at closing issue #3 from cvshome.org.
|
||||
|
@ -1,8 +1,10 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# Makefile.am for GNU CVS man pages.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -15,9 +15,11 @@
|
||||
@SET_MAKE@
|
||||
|
||||
# Makefile.am for GNU CVS man pages.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -28,7 +30,6 @@
|
||||
# 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.
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -36,7 +37,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -50,6 +50,24 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = man
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
man5dir = $(mandir)/man5
|
||||
am__installdirs = "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"
|
||||
man8dir = $(mandir)/man8
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -119,6 +137,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -132,6 +152,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -139,36 +160,48 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
|
||||
with_default_rsh = @with_default_rsh@
|
||||
man_MANS = cvs.5 cvsbug.8
|
||||
EXTRA_DIST = \
|
||||
.cvsignore \
|
||||
$(man_MANS)
|
||||
|
||||
subdir = man
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_SOURCES =
|
||||
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu man/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
uninstall-info-am:
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
man5dir = $(mandir)/man5
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
install-man5: $(man5_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(man5dir)
|
||||
test -z "$(man5dir)" || $(mkdir_p) "$(DESTDIR)$(man5dir)"
|
||||
@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
@ -187,8 +220,8 @@ install-man5: $(man5_MANS) $(man_MANS)
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst"; \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
|
||||
done
|
||||
uninstall-man5:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@ -208,14 +241,12 @@ uninstall-man5:
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f $(DESTDIR)$(man5dir)/$$inst"; \
|
||||
rm -f $(DESTDIR)$(man5dir)/$$inst; \
|
||||
echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
|
||||
done
|
||||
|
||||
man8dir = $(mandir)/man8
|
||||
install-man8: $(man8_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(man8dir)
|
||||
test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
|
||||
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
@ -234,8 +265,8 @@ install-man8: $(man8_MANS) $(man_MANS)
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
uninstall-man8:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@ -255,8 +286,8 @@ uninstall-man8:
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
|
||||
rm -f $(DESTDIR)$(man8dir)/$$inst; \
|
||||
echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
@ -264,10 +295,6 @@ TAGS:
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
@ -281,7 +308,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -299,9 +326,10 @@ distdir: $(DISTFILES)
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(MANS)
|
||||
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(man5dir) $(DESTDIR)$(man8dir)
|
||||
for dir in "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
@ -321,7 +349,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -338,6 +366,8 @@ dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -373,8 +403,8 @@ uninstall-am: uninstall-info-am uninstall-man
|
||||
uninstall-man: uninstall-man5 uninstall-man8
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am info info-am install \
|
||||
install-am install-data install-data-am install-exec \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-man5 install-man8 install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,10 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# Makefile for GNU CVS program.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -15,9 +15,11 @@
|
||||
@SET_MAKE@
|
||||
|
||||
# Makefile for GNU CVS program.
|
||||
# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||||
# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
#
|
||||
# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
# and others.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -29,6 +31,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -36,7 +39,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -50,6 +52,55 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
bin_PROGRAMS = cvs$(EXEEXT)
|
||||
subdir = src
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/cvsbug.in ChangeLog
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = cvsbug
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
|
||||
buffer.$(OBJEXT) checkin.$(OBJEXT) checkout.$(OBJEXT) \
|
||||
classify.$(OBJEXT) client.$(OBJEXT) commit.$(OBJEXT) \
|
||||
create_adm.$(OBJEXT) cvsrc.$(OBJEXT) diff.$(OBJEXT) \
|
||||
edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
|
||||
expand_path.$(OBJEXT) fileattr.$(OBJEXT) filesubr.$(OBJEXT) \
|
||||
find_names.$(OBJEXT) hardlink.$(OBJEXT) hash.$(OBJEXT) \
|
||||
history.$(OBJEXT) ignore.$(OBJEXT) import.$(OBJEXT) \
|
||||
lock.$(OBJEXT) log.$(OBJEXT) login.$(OBJEXT) logmsg.$(OBJEXT) \
|
||||
main.$(OBJEXT) mkmodules.$(OBJEXT) modules.$(OBJEXT) \
|
||||
myndbm.$(OBJEXT) no_diff.$(OBJEXT) parseinfo.$(OBJEXT) \
|
||||
patch.$(OBJEXT) rcs.$(OBJEXT) rcscmds.$(OBJEXT) \
|
||||
recurse.$(OBJEXT) release.$(OBJEXT) remove.$(OBJEXT) \
|
||||
repos.$(OBJEXT) root.$(OBJEXT) run.$(OBJEXT) \
|
||||
scramble.$(OBJEXT) server.$(OBJEXT) stack.$(OBJEXT) \
|
||||
status.$(OBJEXT) subr.$(OBJEXT) tag.$(OBJEXT) update.$(OBJEXT) \
|
||||
version.$(OBJEXT) vers_ts.$(OBJEXT) watch.$(OBJEXT) \
|
||||
wrapper.$(OBJEXT) zlib.$(OBJEXT)
|
||||
cvs_OBJECTS = $(am_cvs_OBJECTS)
|
||||
cvs_DEPENDENCIES = ../diff/libdiff.a ../lib/libcvs.a ../zlib/libz.a
|
||||
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
SCRIPTS = $(bin_SCRIPTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(cvs_SOURCES)
|
||||
DIST_SOURCES = $(cvs_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
@ -105,7 +156,6 @@ RANLIB = @RANLIB@
|
||||
ROFF = @ROFF@
|
||||
SENDMAIL = @SENDMAIL@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
||||
SHELL = /bin/sh
|
||||
STRIP = @STRIP@
|
||||
TEXI2DVI = @TEXI2DVI@
|
||||
@ -120,6 +170,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
@ -133,6 +185,7 @@ libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
@ -140,6 +193,7 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
with_default_rsh = @with_default_rsh@
|
||||
|
||||
# $(includeopt) is CVS specific and set by configure
|
||||
# FIXME - This includes line is dependant on its order. This means there is
|
||||
@ -147,8 +201,6 @@ target_alias = @target_alias@
|
||||
# try and remove naming ocnflicts and fix Automake to allow particular includes
|
||||
# to be attached only to particular object files. Short term fix is either or.
|
||||
INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/diff -I$(top_srcdir)/zlib $(includeopt)
|
||||
|
||||
bin_PROGRAMS = cvs
|
||||
bin_SCRIPTS = cvsbug
|
||||
|
||||
# The cvs executable
|
||||
@ -224,7 +276,6 @@ cvs_SOURCES = \
|
||||
update.h \
|
||||
watch.h
|
||||
|
||||
|
||||
cvs_LDADD = \
|
||||
../diff/libdiff.a \
|
||||
../lib/libcvs.a \
|
||||
@ -245,99 +296,51 @@ EXTRA_DIST = \
|
||||
build_src.com \
|
||||
sanity.sh
|
||||
|
||||
subdir = src
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = cvsbug
|
||||
bin_PROGRAMS = cvs$(EXEEXT)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
|
||||
am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
|
||||
buffer.$(OBJEXT) checkin.$(OBJEXT) checkout.$(OBJEXT) \
|
||||
classify.$(OBJEXT) client.$(OBJEXT) commit.$(OBJEXT) \
|
||||
create_adm.$(OBJEXT) cvsrc.$(OBJEXT) diff.$(OBJEXT) \
|
||||
edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
|
||||
expand_path.$(OBJEXT) fileattr.$(OBJEXT) filesubr.$(OBJEXT) \
|
||||
find_names.$(OBJEXT) hardlink.$(OBJEXT) hash.$(OBJEXT) \
|
||||
history.$(OBJEXT) ignore.$(OBJEXT) import.$(OBJEXT) \
|
||||
lock.$(OBJEXT) log.$(OBJEXT) login.$(OBJEXT) logmsg.$(OBJEXT) \
|
||||
main.$(OBJEXT) mkmodules.$(OBJEXT) modules.$(OBJEXT) \
|
||||
myndbm.$(OBJEXT) no_diff.$(OBJEXT) parseinfo.$(OBJEXT) \
|
||||
patch.$(OBJEXT) rcs.$(OBJEXT) rcscmds.$(OBJEXT) \
|
||||
recurse.$(OBJEXT) release.$(OBJEXT) remove.$(OBJEXT) \
|
||||
repos.$(OBJEXT) root.$(OBJEXT) run.$(OBJEXT) scramble.$(OBJEXT) \
|
||||
server.$(OBJEXT) stack.$(OBJEXT) status.$(OBJEXT) \
|
||||
subr.$(OBJEXT) tag.$(OBJEXT) update.$(OBJEXT) version.$(OBJEXT) \
|
||||
vers_ts.$(OBJEXT) watch.$(OBJEXT) wrapper.$(OBJEXT) \
|
||||
zlib.$(OBJEXT)
|
||||
cvs_OBJECTS = $(am_cvs_OBJECTS)
|
||||
cvs_DEPENDENCIES = ../diff/libdiff.a ../lib/libcvs.a ../zlib/libz.a
|
||||
cvs_LDFLAGS =
|
||||
SCRIPTS = $(bin_SCRIPTS)
|
||||
|
||||
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/add.Po ./$(DEPDIR)/admin.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/annotate.Po ./$(DEPDIR)/buffer.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/checkin.Po ./$(DEPDIR)/checkout.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/classify.Po ./$(DEPDIR)/client.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/commit.Po ./$(DEPDIR)/create_adm.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/cvsrc.Po ./$(DEPDIR)/diff.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/edit.Po ./$(DEPDIR)/entries.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/error.Po ./$(DEPDIR)/expand_path.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/fileattr.Po ./$(DEPDIR)/filesubr.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/find_names.Po ./$(DEPDIR)/hardlink.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/history.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ignore.Po ./$(DEPDIR)/import.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/lock.Po ./$(DEPDIR)/log.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/login.Po ./$(DEPDIR)/logmsg.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/mkmodules.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/modules.Po ./$(DEPDIR)/myndbm.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/no_diff.Po ./$(DEPDIR)/parseinfo.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/patch.Po ./$(DEPDIR)/rcs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/rcscmds.Po ./$(DEPDIR)/recurse.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/release.Po ./$(DEPDIR)/remove.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/repos.Po ./$(DEPDIR)/root.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/run.Po ./$(DEPDIR)/scramble.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/server.Po ./$(DEPDIR)/stack.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/status.Po ./$(DEPDIR)/subr.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/tag.Po ./$(DEPDIR)/update.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/vers_ts.Po ./$(DEPDIR)/version.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/watch.Po ./$(DEPDIR)/wrapper.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/zlib.Po
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DIST_SOURCES = $(cvs_SOURCES)
|
||||
DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am cvsbug.in
|
||||
SOURCES = $(cvs_SOURCES)
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
cvsbug: $(top_builddir)/config.status cvsbug.in
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
cvsbug: $(top_builddir)/config.status $(srcdir)/cvsbug.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
@ -345,8 +348,8 @@ uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
|
||||
rm -f $(DESTDIR)$(bindir)/$$f; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-binPROGRAMS:
|
||||
@ -354,16 +357,15 @@ clean-binPROGRAMS:
|
||||
cvs$(EXEEXT): $(cvs_OBJECTS) $(cvs_DEPENDENCIES)
|
||||
@rm -f cvs$(EXEEXT)
|
||||
$(LINK) $(cvs_LDFLAGS) $(cvs_OBJECTS) $(cvs_LDADD) $(LIBS)
|
||||
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f $$d$$p; then \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f"; \
|
||||
$(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f; \
|
||||
echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
@ -371,12 +373,12 @@ uninstall-binSCRIPTS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
|
||||
rm -f $(DESTDIR)$(bindir)/$$f; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT) core *.core
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
@ -438,36 +440,20 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zlib.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
uninstall-info-am:
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -476,6 +462,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -487,10 +474,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -513,10 +501,6 @@ GTAGS:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
@ -530,7 +514,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -549,9 +533,10 @@ check-am: all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(SCRIPTS)
|
||||
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(bindir)
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
@ -571,7 +556,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@ -591,6 +576,8 @@ dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -628,14 +615,15 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
|
||||
clean-binPROGRAMS clean-generic ctags distclean \
|
||||
distclean-compile distclean-generic distclean-tags distdir dvi \
|
||||
dvi-am info info-am install install-am install-binPROGRAMS \
|
||||
install-binSCRIPTS install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-binPROGRAMS \
|
||||
uninstall-binSCRIPTS uninstall-info-am
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-binPROGRAMS install-binSCRIPTS install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \
|
||||
uninstall-info-am
|
||||
|
||||
|
||||
check-local: localcheck remotecheck
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (c) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -37,8 +42,9 @@ static int build_entry PROTO((const char *repository, const char *user,
|
||||
static const char *const add_usage[] =
|
||||
{
|
||||
"Usage: %s %s [-k rcs-kflag] [-m message] files...\n",
|
||||
"\t-k\tUse \"rcs-kflag\" to add the file with the specified kflag.\n",
|
||||
"\t-m\tUse \"message\" for the creation log.\n",
|
||||
"\t-k rcs-kflag\tUse \"rcs-kflag\" to add the file with the specified\n",
|
||||
"\t\t\tkflag.\n",
|
||||
"\t-m message\tUse \"message\" for the creation log.\n",
|
||||
"(Specify the --help global option for a list of other help options)\n",
|
||||
NULL
|
||||
};
|
||||
@ -75,12 +81,12 @@ add (argc, argv)
|
||||
switch (c)
|
||||
{
|
||||
case 'k':
|
||||
if (options)
|
||||
free (options);
|
||||
if (options) free (options);
|
||||
options = RCS_check_kflag (optarg);
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
if (message) free (message);
|
||||
message = xstrdup (optarg);
|
||||
break;
|
||||
case '?':
|
||||
@ -155,11 +161,17 @@ add (argc, argv)
|
||||
int j;
|
||||
|
||||
if (argc == 0)
|
||||
{
|
||||
/* We snipped out all the arguments in the above sanity
|
||||
check. We can just forget the whole thing (and we
|
||||
better, because if we fired up the server and passed it
|
||||
nothing, it would spit back a usage message). */
|
||||
if (options)
|
||||
free (options);
|
||||
if (message)
|
||||
free (message);
|
||||
return err;
|
||||
}
|
||||
|
||||
start_server ();
|
||||
ign_setup ();
|
||||
@ -469,7 +481,25 @@ same name already exists in the repository.");
|
||||
char *prev = previous_rev (vers->srcfile,
|
||||
vers->vn_rcs);
|
||||
int status;
|
||||
assert (prev != NULL);
|
||||
if (prev == NULL)
|
||||
{
|
||||
/* There is no previous revision. Either:
|
||||
*
|
||||
* * Revision 1.1 was dead, as when a file was
|
||||
* inititially added on a branch,
|
||||
*
|
||||
* or
|
||||
*
|
||||
* * All previous revisions have been deleted.
|
||||
* For instance, via `admin -o'.
|
||||
*/
|
||||
if (!really_quiet)
|
||||
error (0, 0,
|
||||
"File `%s' has no previous revision to resurrect.",
|
||||
finfo.fullname);
|
||||
free (prev);
|
||||
goto skip_this_file;
|
||||
}
|
||||
if (!quiet)
|
||||
error (0, 0,
|
||||
"Resurrecting file `%s' from revision %s.",
|
||||
@ -665,6 +695,8 @@ cannot resurrect %s; RCS file removed by second party", finfo.fullname);
|
||||
server_checked_in (finfo.file, finfo.update_dir, repository);
|
||||
#endif
|
||||
}
|
||||
|
||||
skip_this_file:
|
||||
free (repository);
|
||||
Entries_Close (entries);
|
||||
|
||||
@ -745,11 +777,7 @@ add_directory (finfo)
|
||||
error (0, errno, "cannot chdir to %s", finfo->fullname);
|
||||
return 1;
|
||||
}
|
||||
#ifdef SERVER_SUPPORT
|
||||
if (!server_active && isfile (CVSADM))
|
||||
#else
|
||||
if (isfile (CVSADM))
|
||||
#endif
|
||||
{
|
||||
error (0, 0, "%s/%s already exists", finfo->fullname, CVSADM);
|
||||
goto out;
|
||||
@ -818,7 +846,10 @@ add_directory (finfo)
|
||||
fileattr_write ();
|
||||
fileattr_free ();
|
||||
if (attrs != NULL)
|
||||
{
|
||||
free (attrs);
|
||||
attrs = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up an update list with a single title node for Update_Logfile
|
||||
@ -838,9 +869,7 @@ add_directory (finfo)
|
||||
dellist (&ulist);
|
||||
}
|
||||
|
||||
#ifdef SERVER_SUPPORT
|
||||
if (!server_active)
|
||||
#endif
|
||||
Create_Admin (".", finfo->fullname, rcsdir, tag, date, nonbranch, 0, 1);
|
||||
if (tag)
|
||||
free (tag);
|
||||
@ -858,6 +887,8 @@ add_directory (finfo)
|
||||
|
||||
free (rcsdir);
|
||||
free (message);
|
||||
if (attrs != NULL)
|
||||
free (attrs);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -865,6 +896,7 @@ add_directory (finfo)
|
||||
if (restore_cwd (&cwd, NULL))
|
||||
error_exit ();
|
||||
free_cwd (&cwd);
|
||||
if (message) free (message);
|
||||
if (rcsdir != NULL)
|
||||
free (rcsdir);
|
||||
return 0;
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (c) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -379,17 +384,13 @@ admin (argc, argv)
|
||||
/* The use of `cvs admin -k' is unrestricted. However, any other
|
||||
option is restricted if the group CVS_ADMIN_GROUP exists on the
|
||||
server. */
|
||||
if (
|
||||
# ifdef CLIENT_SUPPORT
|
||||
/* This is only "secure" on the server, since the user could edit the
|
||||
* RCS file on a local host, but some people like this kind of
|
||||
* check anyhow. The alternative would be to check only when
|
||||
* (server_active) rather than when not on the client.
|
||||
*/
|
||||
!current_parsed_root->isremote &&
|
||||
# endif /* CLIENT_SUPPORT */
|
||||
!only_k_option
|
||||
&& (grp = getgrnam(CVS_ADMIN_GROUP)) != NULL)
|
||||
/* This is only "secure" on the server, since the user could edit the
|
||||
* RCS file on a local host, but some people like this kind of
|
||||
* check anyhow. The alternative would be to check only when
|
||||
* (server_active) rather than when not on the client.
|
||||
*/
|
||||
if (!current_parsed_root->isremote && !only_k_option &&
|
||||
(grp = getgrnam(CVS_ADMIN_GROUP)) != NULL)
|
||||
{
|
||||
#ifdef HAVE_GETGROUPS
|
||||
gid_t *grps;
|
||||
@ -816,6 +817,13 @@ admin_fileproc (callerdat, finfo)
|
||||
{
|
||||
tag = xstrdup (arg + 2);
|
||||
rev = RCS_head (rcs);
|
||||
if (!rev)
|
||||
{
|
||||
error (0, 0, "No head revision in archive file `%s'.",
|
||||
rcs->path);
|
||||
status = 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (c) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -222,6 +227,7 @@ rannotate_proc (argc, argv, xwhere, mwhere, mfile, shorten, local, mname, msg)
|
||||
{
|
||||
error (0, errno, "cannot chdir to %s", repository);
|
||||
free (repository);
|
||||
free (where);
|
||||
return (1);
|
||||
}
|
||||
/* End section which is identical to patch_proc. */
|
||||
|
@ -1,3 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 1996-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* Code for the buffer data structure. */
|
||||
|
||||
#include <assert.h>
|
||||
@ -110,11 +124,13 @@ allocate_buffer_datas ()
|
||||
/* Allocate buffer_data structures in blocks of 16. */
|
||||
#define ALLOC_COUNT (16)
|
||||
|
||||
alc = ((struct buffer_data *)
|
||||
xmalloc (ALLOC_COUNT * sizeof (struct buffer_data)));
|
||||
alc = xmalloc (ALLOC_COUNT * sizeof (struct buffer_data));
|
||||
space = (char *) valloc (ALLOC_COUNT * BUFFER_DATA_SIZE);
|
||||
if (alc == NULL || space == NULL)
|
||||
if (!space)
|
||||
{
|
||||
free (alc);
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < ALLOC_COUNT; i++, alc++, space += BUFFER_DATA_SIZE)
|
||||
{
|
||||
alc->next = free_buffer_data;
|
||||
@ -1406,10 +1422,16 @@ stdio_buffer_shutdown (buf)
|
||||
{
|
||||
struct stdio_buffer_closure *bc = buf->closure;
|
||||
struct stat s;
|
||||
int closefp = 1;
|
||||
int closefp, statted;
|
||||
|
||||
/* Must be a pipe or a socket. What could go wrong? */
|
||||
assert (fstat (fileno (bc->fp), &s) != -1);
|
||||
/* Must be a pipe or a socket. What could go wrong?
|
||||
* Well, apparently for disconnected clients under AIX, the
|
||||
* fstat() will return -1 on the server if the client has gone
|
||||
* away.
|
||||
*/
|
||||
if (fstat(fileno(bc->fp), &s) == -1) statted = 0;
|
||||
else statted = 1;
|
||||
closefp = statted;
|
||||
|
||||
/* Flush the buffer if we can */
|
||||
if (buf->flush)
|
||||
@ -1432,7 +1454,7 @@ stdio_buffer_shutdown (buf)
|
||||
# ifndef NO_SOCKET_TO_FD
|
||||
{
|
||||
/* shutdown() sockets */
|
||||
if (S_ISSOCK (s.st_mode))
|
||||
if (statted && S_ISSOCK (s.st_mode))
|
||||
shutdown (fileno (bc->fp), 0);
|
||||
}
|
||||
# endif /* NO_SOCKET_TO_FD */
|
||||
@ -1440,7 +1462,7 @@ stdio_buffer_shutdown (buf)
|
||||
/* Can't be set with SHUTDOWN_SERVER defined */
|
||||
else if (pclose (bc->fp) == EOF)
|
||||
{
|
||||
error (1, errno, "closing connection to %s",
|
||||
error (0, errno, "closing connection to %s",
|
||||
current_parsed_root->hostname);
|
||||
closefp = 0;
|
||||
}
|
||||
@ -1460,7 +1482,7 @@ stdio_buffer_shutdown (buf)
|
||||
# endif
|
||||
# ifndef NO_SOCKET_TO_FD
|
||||
/* shutdown() sockets */
|
||||
if (S_ISSOCK (s.st_mode))
|
||||
if (statted && S_ISSOCK (s.st_mode))
|
||||
shutdown (fileno (bc->fp), 1);
|
||||
# else
|
||||
{
|
||||
@ -1473,19 +1495,19 @@ stdio_buffer_shutdown (buf)
|
||||
buf->output = NULL;
|
||||
}
|
||||
|
||||
if (closefp && fclose (bc->fp) == EOF)
|
||||
if (statted && closefp && fclose (bc->fp) == EOF)
|
||||
{
|
||||
if (0
|
||||
# ifdef SERVER_SUPPORT
|
||||
|| server_active
|
||||
# endif /* SERVER_SUPPORT */
|
||||
)
|
||||
if (server_active)
|
||||
{
|
||||
/* Syslog this? */
|
||||
}
|
||||
# ifdef CLIENT_SUPPORT
|
||||
/* We are already closing the connection.
|
||||
* On error, print a warning and try to
|
||||
* continue to avoid infinte loops.
|
||||
*/
|
||||
else
|
||||
error (1, errno,
|
||||
error (0, errno,
|
||||
"closing down connection to %s",
|
||||
current_parsed_root->hostname);
|
||||
# endif /* CLIENT_SUPPORT */
|
||||
@ -1499,8 +1521,13 @@ stdio_buffer_shutdown (buf)
|
||||
do
|
||||
w = waitpid (bc->child_pid, (int *) 0, 0);
|
||||
while (w == -1 && errno == EINTR);
|
||||
|
||||
/* We are already closing the connection.
|
||||
* On error, print a warning and try to
|
||||
* continue to avoid infinte loops.
|
||||
*/
|
||||
if (w == -1)
|
||||
error (1, errno, "waiting for process %d", bc->child_pid);
|
||||
error (0, errno, "waiting for process %d", bc->child_pid);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1833,7 +1860,7 @@ packetizing_buffer_output (closure, data, have, wrote)
|
||||
struct packetizing_buffer *pb = (struct packetizing_buffer *) closure;
|
||||
char inbuf[BUFFER_DATA_SIZE + 2];
|
||||
char stack_outbuf[BUFFER_DATA_SIZE + PACKET_SLOP + 4];
|
||||
struct buffer_data *outdata;
|
||||
struct buffer_data *outdata = NULL;
|
||||
char *outbuf;
|
||||
int size, status, translated;
|
||||
|
||||
@ -1888,6 +1915,11 @@ packetizing_buffer_output (closure, data, have, wrote)
|
||||
buf_output (pb->buf, outbuf, translated + 2);
|
||||
else
|
||||
{
|
||||
/* if ((have + PACKET_SLOP + 4) > BUFFER_DATA_SIZE), then
|
||||
outdata may be NULL. */
|
||||
if (outdata == NULL)
|
||||
abort ();
|
||||
|
||||
outdata->size = translated + 2;
|
||||
buf_append_data (pb->buf, outdata, outdata);
|
||||
}
|
||||
|
@ -1,3 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 1996-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* Declarations concerning the buffer data structure. */
|
||||
|
||||
#if defined (SERVER_SUPPORT) || defined (CLIENT_SUPPORT)
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -60,7 +65,7 @@ Checkin (type, finfo, rev, tag, options, message)
|
||||
*/
|
||||
assert (finfo->rcs != NULL);
|
||||
|
||||
switch (RCS_checkin (finfo->rcs, finfo->file, message, rev,
|
||||
switch (RCS_checkin (finfo->rcs, finfo->file, message, rev, 0,
|
||||
RCS_FLAGS_KEEPFILE))
|
||||
{
|
||||
case 0: /* everything normal */
|
||||
@ -74,7 +79,8 @@ Checkin (type, finfo, rev, tag, options, message)
|
||||
changes is if the file contains RCS keywords. So we if
|
||||
we are not expanding RCS keywords, we are done. */
|
||||
|
||||
if (strcmp (options, "-V4") == 0) /* upgrade to V5 now */
|
||||
if (options != NULL
|
||||
&& strcmp (options, "-V4") == 0) /* upgrade to V5 now */
|
||||
options[0] = '\0';
|
||||
|
||||
/* FIXME: If PreservePermissions is on, RCS_cmp_file is
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -67,13 +72,13 @@ static const char *const checkout_usage[] =
|
||||
|
||||
static const char *const export_usage[] =
|
||||
{
|
||||
"Usage: %s %s [-NRfln] [-r rev] [-D date] [-d dir] [-k kopt] module...\n",
|
||||
"Usage: %s %s [-NRfln] [-r tag] [-D date] [-d dir] [-k kopt] module...\n",
|
||||
"\t-N\tDon't shorten module paths if -d specified.\n",
|
||||
"\t-f\tForce a head revision match if tag/date not found.\n",
|
||||
"\t-l\tLocal directory only, not recursive\n",
|
||||
"\t-R\tProcess directories recursively (default).\n",
|
||||
"\t-n\tDo not run module program (if any).\n",
|
||||
"\t-r rev\tExport revision or tag.\n",
|
||||
"\t-r tag\tExport tagged revisions.\n",
|
||||
"\t-D date\tExport revisions as of date.\n",
|
||||
"\t-d dir\tExport into dir instead of module name.\n",
|
||||
"\t-k kopt\tUse RCS kopt -k option on checkout.\n",
|
||||
@ -170,11 +175,9 @@ checkout (argc, argv)
|
||||
break;
|
||||
case 'Q':
|
||||
case 'q':
|
||||
#ifdef SERVER_SUPPORT
|
||||
/* The CVS 1.5 client sends these options (in addition to
|
||||
Global_option requests), so we must ignore them. */
|
||||
if (!server_active)
|
||||
#endif
|
||||
error (1, 0,
|
||||
"-q or -Q must be specified before \"%s\"",
|
||||
cvs_cmd_name);
|
||||
@ -428,10 +431,8 @@ safe_location (where)
|
||||
CLIENT_SERVER_STR,
|
||||
where ? where : "(null)");
|
||||
|
||||
#ifdef CLIENT_SUPPORT
|
||||
/* Don't compare remote CVSROOTs to our destination directory. */
|
||||
if ( current_parsed_root->isremote ) return 1;
|
||||
#endif /* CLIENT_SUPPORT */
|
||||
if (current_parsed_root->isremote) return 1;
|
||||
|
||||
/* set current - even if where is set we'll need to cd back... */
|
||||
current = xgetwd ();
|
||||
@ -1053,7 +1054,8 @@ internal error: %s doesn't start with %s in checkout_proc",
|
||||
which = W_REPOS;
|
||||
if (tag != NULL && !tag_validated)
|
||||
{
|
||||
tag_check_valid (tag, argc - 1, argv + 1, 0, aflag, NULL);
|
||||
tag_check_valid (tag, argc - 1, argv + 1, 0, aflag,
|
||||
repository);
|
||||
tag_validated = 1;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -279,7 +284,9 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
|
||||
error (0, 0, "warning: %s was lost", finfo->fullname);
|
||||
ret = T_CHECKOUT;
|
||||
}
|
||||
else if (strcmp (vers->ts_user, vers->ts_rcs) == 0)
|
||||
else if (!strcmp (vers->ts_user,
|
||||
vers->ts_conflict
|
||||
? vers->ts_conflict : vers->ts_rcs))
|
||||
{
|
||||
|
||||
/*
|
||||
@ -293,6 +300,8 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
|
||||
if (vers->entdata->options &&
|
||||
strcmp (vers->entdata->options, vers->options) != 0)
|
||||
ret = T_CHECKOUT;
|
||||
else if (vers->ts_conflict)
|
||||
ret = T_CONFLICT;
|
||||
else
|
||||
{
|
||||
sticky_ck (finfo, aflag, vers);
|
||||
@ -313,6 +322,13 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
|
||||
else
|
||||
ret = T_NEEDS_MERGE;
|
||||
#else
|
||||
/* Files with conflict markers and new timestamps fall through
|
||||
* here, but they need to. T_CONFLICT is an error in
|
||||
* commit_fileproc, whereas T_CONFLICT with conflict markers
|
||||
* is caught but only warned about. Similarly, update_fileproc
|
||||
* currently reregisters a file that was conflicted but lost
|
||||
* its markers.
|
||||
*/
|
||||
ret = T_MODIFIED;
|
||||
sticky_ck (finfo, aflag, vers);
|
||||
#endif
|
||||
|
@ -221,7 +221,8 @@ arg_should_not_be_sent_to_server (arg)
|
||||
/* Try to decide whether we should send arg to the server by
|
||||
checking the contents of the corresponding CVSADM directory. */
|
||||
{
|
||||
char *t, *this_root;
|
||||
char *t, *root_string;
|
||||
cvsroot_t *this_root = NULL;
|
||||
|
||||
/* Calculate "dirname arg" */
|
||||
for (t = arg + strlen (arg) - 1; t >= arg; t--)
|
||||
@ -251,25 +252,31 @@ arg_should_not_be_sent_to_server (arg)
|
||||
/* Since we didn't find it in the list, check the CVSADM
|
||||
files on disk. */
|
||||
this_root = Name_Root (arg, (char *) NULL);
|
||||
root_string = this_root->original;
|
||||
*t = c;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We're at the beginning of the string. Look at the
|
||||
CVSADM files in cwd. */
|
||||
this_root = (CVSroot_cmdline ? xstrdup(CVSroot_cmdline)
|
||||
: Name_Root ((char *) NULL, (char *) NULL));
|
||||
if (CVSroot_cmdline)
|
||||
root_string = CVSroot_cmdline;
|
||||
else
|
||||
{
|
||||
this_root = Name_Root ((char *) NULL, (char *) NULL);
|
||||
root_string = this_root->original;
|
||||
}
|
||||
}
|
||||
|
||||
/* Now check the value for root. */
|
||||
if (this_root && current_parsed_root
|
||||
&& (strcmp (this_root, current_parsed_root->original) != 0))
|
||||
if (root_string && current_parsed_root
|
||||
&& (strcmp (root_string, current_parsed_root->original) != 0))
|
||||
{
|
||||
/* Don't send this, since the CVSROOTs don't match. */
|
||||
free (this_root);
|
||||
if (this_root) free_cvsroot_t (this_root);
|
||||
return 1;
|
||||
}
|
||||
free (this_root);
|
||||
if (this_root) free_cvsroot_t (this_root);
|
||||
}
|
||||
|
||||
/* OK, let's send it. */
|
||||
@ -885,12 +892,6 @@ read_line (resultp)
|
||||
|
||||
#if defined(CLIENT_SUPPORT) || defined(SERVER_SUPPORT)
|
||||
|
||||
/*
|
||||
* Zero if compression isn't supported or requested; non-zero to indicate
|
||||
* a compression level to request from gzip.
|
||||
*/
|
||||
int gzip_level;
|
||||
|
||||
/*
|
||||
* Level of compression to use when running gzip on a single file.
|
||||
*/
|
||||
@ -1113,6 +1114,8 @@ call_in_directory (pathname, func, data)
|
||||
int reposdirname_absolute;
|
||||
int newdir = 0;
|
||||
|
||||
assert (pathname);
|
||||
|
||||
reposname = NULL;
|
||||
read_line (&reposname);
|
||||
assert (reposname != NULL);
|
||||
@ -1194,44 +1197,6 @@ call_in_directory (pathname, func, data)
|
||||
if (CVS_CHDIR (toplevel_wd) < 0)
|
||||
error (1, errno, "could not chdir to %s", toplevel_wd);
|
||||
|
||||
/* Create the CVS directory at the top level if needed. The
|
||||
isdir seems like an unneeded system call, but it *does*
|
||||
need to be called both if the CVS_CHDIR below succeeds
|
||||
(e.g. "cvs co .") or if it fails (e.g. basicb-1a in
|
||||
testsuite). We only need to do this for the "." case,
|
||||
since the server takes care of forcing this directory to be
|
||||
created in all other cases. If we don't create CVSADM
|
||||
here, the call to Entries_Open below will fail. FIXME:
|
||||
perhaps this means that we should change our algorithm
|
||||
below that calls Create_Admin instead of having this code
|
||||
here? */
|
||||
if (/* I think the reposdirname_absolute case has to do with
|
||||
things like "cvs update /foo/bar". In any event, the
|
||||
code below which tries to put toplevel_repos into
|
||||
CVS/Repository is almost surely unsuited to
|
||||
the reposdirname_absolute case. */
|
||||
!reposdirname_absolute
|
||||
&& (strcmp (dir_name, ".") == 0)
|
||||
&& ! isdir (CVSADM))
|
||||
{
|
||||
char *repo;
|
||||
char *r;
|
||||
|
||||
newdir = 1;
|
||||
|
||||
repo = xmalloc (strlen (toplevel_repos)
|
||||
+ 10);
|
||||
strcpy (repo, toplevel_repos);
|
||||
r = repo + strlen (repo);
|
||||
if (r[-1] != '.' || r[-2] != '/')
|
||||
strcpy (r, "/.");
|
||||
|
||||
Create_Admin (".", ".", repo, (char *) NULL,
|
||||
(char *) NULL, 0, 1, 1);
|
||||
|
||||
free (repo);
|
||||
}
|
||||
|
||||
if (CVS_CHDIR (dir_name) < 0)
|
||||
{
|
||||
char *dir;
|
||||
@ -1492,7 +1457,44 @@ handle_copy_file (args, len)
|
||||
{
|
||||
call_in_directory (args, copy_a_file, (char *)NULL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Attempt to read a file size from a string. Accepts base 8 (0N), base 16
|
||||
* (0xN), or base 10. Exits on error.
|
||||
*
|
||||
* RETURNS
|
||||
* The file size, in a size_t.
|
||||
*
|
||||
* FATAL ERRORS
|
||||
* 1. As strtoul().
|
||||
* 2. If the number read exceeds SIZE_MAX.
|
||||
*/
|
||||
static size_t
|
||||
strto_file_size (const char *s)
|
||||
{
|
||||
unsigned long tmp;
|
||||
char *endptr;
|
||||
|
||||
/* Read it. */
|
||||
errno = 0;
|
||||
tmp = strtoul (s, &endptr, 0);
|
||||
|
||||
/* Check for errors. */
|
||||
if (errno || endptr == s)
|
||||
error (1, errno, "Server sent invalid file size `%s'", s);
|
||||
if (*endptr != '\0')
|
||||
error (1, 0,
|
||||
"Server sent trailing characters in file size `%s'",
|
||||
endptr);
|
||||
if (tmp > SIZE_MAX)
|
||||
error (1, 0, "Server sent file size exceeding client max.");
|
||||
|
||||
/* Return it. */
|
||||
return (size_t)tmp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void read_counted_file PROTO ((char *, char *));
|
||||
|
||||
@ -1525,9 +1527,7 @@ read_counted_file (filename, fullname)
|
||||
if (size_string[0] == 'z')
|
||||
error (1, 0, "\
|
||||
protocol error: compressed files not supported for that operation");
|
||||
/* FIXME: should be doing more error checking, probably. Like using
|
||||
strtoul and making sure we used up the whole line. */
|
||||
size = atoi (size_string);
|
||||
size = strto_file_size (size_string);
|
||||
free (size_string);
|
||||
|
||||
/* A more sophisticated implementation would use only a limited amount
|
||||
@ -1809,11 +1809,12 @@ update_entries (data_arg, ent_list, short_pathname, filename)
|
||||
{
|
||||
char *size_string;
|
||||
char *mode_string;
|
||||
int size;
|
||||
size_t size;
|
||||
char *buf;
|
||||
char *temp_filename;
|
||||
int use_gzip;
|
||||
int patch_failed;
|
||||
char *s;
|
||||
|
||||
read_line (&mode_string);
|
||||
|
||||
@ -1821,13 +1822,14 @@ update_entries (data_arg, ent_list, short_pathname, filename)
|
||||
if (size_string[0] == 'z')
|
||||
{
|
||||
use_gzip = 1;
|
||||
size = atoi (size_string+1);
|
||||
s = size_string + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
use_gzip = 0;
|
||||
size = atoi (size_string);
|
||||
s = size_string;
|
||||
}
|
||||
size = strto_file_size (s);
|
||||
free (size_string);
|
||||
|
||||
/* Note that checking this separately from writing the file is
|
||||
@ -1928,7 +1930,7 @@ update_entries (data_arg, ent_list, short_pathname, filename)
|
||||
#ifdef USE_VMS_FILENAMES
|
||||
/* A VMS rename of "blah.dat" to "foo" to implies a
|
||||
destination of "foo.dat" which is unfortinate for CVS */
|
||||
sprintf (temp_filename, "%s_new_", filename);
|
||||
sprintf (temp_filename, "%s_new_", filename);
|
||||
#else
|
||||
#ifdef _POSIX_NO_TRUNC
|
||||
sprintf (temp_filename, ".new.%.9s", filename);
|
||||
@ -1981,6 +1983,8 @@ update_entries (data_arg, ent_list, short_pathname, filename)
|
||||
entirely possible that future files will not have
|
||||
the same problem. */
|
||||
error (0, errno, "cannot write %s", short_pathname);
|
||||
free (temp_filename);
|
||||
free (buf);
|
||||
goto discard_file_and_return;
|
||||
}
|
||||
|
||||
@ -2837,7 +2841,10 @@ send_a_repository (dir, repository, update_dir_in)
|
||||
const char *repository;
|
||||
const char *update_dir_in;
|
||||
{
|
||||
char *update_dir = xstrdup (update_dir_in);
|
||||
char *update_dir;
|
||||
|
||||
assert (update_dir_in);
|
||||
update_dir = xstrdup (update_dir_in);
|
||||
|
||||
if (toplevel_repos == NULL && repository != NULL)
|
||||
{
|
||||
@ -3097,7 +3104,7 @@ handle_mbinary (args, len)
|
||||
|
||||
/* Get the size. */
|
||||
read_line (&size_string);
|
||||
size = atoi (size_string);
|
||||
size = strto_file_size (size_string);
|
||||
free (size_string);
|
||||
|
||||
/* OK, now get all the data. The algorithm here is that we read
|
||||
@ -3246,7 +3253,7 @@ handle_mt (args, len)
|
||||
else if (importmergecmd.seen)
|
||||
{
|
||||
if (strcmp (tag, "conflicts") == 0)
|
||||
importmergecmd.conflicts = atoi (text);
|
||||
importmergecmd.conflicts = text ? atoi (text) : -1;
|
||||
else if (strcmp (tag, "mergetag1") == 0)
|
||||
importmergecmd.mergetag1 = xstrdup (text);
|
||||
else if (strcmp (tag, "mergetag2") == 0)
|
||||
@ -3914,6 +3921,7 @@ auth_server (root, lto_server, lfrom_server, verify_only, do_gssapi, hostinfo)
|
||||
|
||||
/* Paranoia. */
|
||||
memset (password, 0, strlen (password));
|
||||
free (password);
|
||||
# else /* ! AUTH_CLIENT_SUPPORT */
|
||||
error (1, 0, "INTERNAL ERROR: This client does not support pserver authentication");
|
||||
# endif /* AUTH_CLIENT_SUPPORT */
|
||||
@ -4028,7 +4036,7 @@ connect_to_forked_server (to_server, from_server)
|
||||
fprintf (stderr, " -> Forking server: %s %s\n", command[0], command[1]);
|
||||
}
|
||||
|
||||
child_pid = piped_child (command, &tofd, &fromfd);
|
||||
child_pid = piped_child (command, &tofd, &fromfd, 0);
|
||||
if (child_pid < 0)
|
||||
error (1, 0, "could not fork server process");
|
||||
|
||||
@ -4232,7 +4240,8 @@ connect_to_gserver (root, sock, hostinfo)
|
||||
|
||||
if (need > sizeof buf)
|
||||
{
|
||||
int got;
|
||||
ssize_t got;
|
||||
size_t total;
|
||||
|
||||
/* This usually means that the server sent us an error
|
||||
message. Read it byte by byte and print it out.
|
||||
@ -4241,13 +4250,19 @@ connect_to_gserver (root, sock, hostinfo)
|
||||
want to do this to work with older servers. */
|
||||
buf[0] = cbuf[0];
|
||||
buf[1] = cbuf[1];
|
||||
got = recv (sock, buf + 2, sizeof buf - 2, 0);
|
||||
if (got < 0)
|
||||
error (1, 0, "recv() from server %s: %s",
|
||||
root->hostname, SOCK_STRERROR (SOCK_ERRNO));
|
||||
buf[got + 2] = '\0';
|
||||
if (buf[got + 1] == '\n')
|
||||
buf[got + 1] = '\0';
|
||||
total = 2;
|
||||
while (got = recv (sock, buf + total, sizeof buf - total, 0))
|
||||
{
|
||||
if (got < 0)
|
||||
error (1, 0, "recv() from server %s: %s",
|
||||
root->hostname, SOCK_STRERROR (SOCK_ERRNO));
|
||||
total += got;
|
||||
if (strrchr (buf + total - got, '\n'))
|
||||
break;
|
||||
}
|
||||
buf[total] = '\0';
|
||||
if (buf[total - 1] == '\n')
|
||||
buf[total - 1] = '\0';
|
||||
error (1, 0, "error from server %s: %s", root->hostname,
|
||||
buf);
|
||||
}
|
||||
@ -4328,6 +4343,7 @@ start_server ()
|
||||
#endif /* HAVE_GSSAPI */
|
||||
|
||||
case ext_method:
|
||||
case extssh_method:
|
||||
#ifdef NO_EXT_METHOD
|
||||
error (0, 0, ":ext: method not supported by this port of CVS");
|
||||
error (1, 0, "try :server: instead");
|
||||
@ -4712,27 +4728,7 @@ start_rsh_server (root, to_server, from_server)
|
||||
char *rsh_argv[10];
|
||||
|
||||
if (!cvs_rsh)
|
||||
/* People sometimes suggest or assume that this should default
|
||||
to "remsh" on systems like HPUX in which that is the
|
||||
system-supplied name for the rsh program. However, that
|
||||
causes various problems (keep in mind that systems such as
|
||||
HPUX might have non-system-supplied versions of "rsh", like
|
||||
a Kerberized one, which one might want to use). If we
|
||||
based the name on what is found in the PATH of the person
|
||||
who runs configure, that would make it harder to
|
||||
consistently produce the same result in the face of
|
||||
different people producing binary distributions. If we
|
||||
based it on "remsh" always being the default for HPUX
|
||||
(e.g. based on uname), that might be slightly better but
|
||||
would require us to keep track of what the defaults are for
|
||||
each system type, and probably would cope poorly if the
|
||||
existence of remsh or rsh varies from OS version to OS
|
||||
version. Therefore, it seems best to have the default
|
||||
remain "rsh", and tell HPUX users to specify remsh, for
|
||||
example in CVS_RSH or other such mechanisms to be devised,
|
||||
if that is what they want (the manual already tells them
|
||||
that). */
|
||||
cvs_rsh = "rsh";
|
||||
cvs_rsh = RSH_DFLT;
|
||||
if (!cvs_server)
|
||||
cvs_server = "cvs";
|
||||
|
||||
@ -4837,7 +4833,7 @@ start_rsh_server (root, to_server, from_server)
|
||||
fprintf (stderr, "%s ", argv[i]);
|
||||
putc ('\n', stderr);
|
||||
}
|
||||
child_pid = piped_child (argv, &tofd, &fromfd);
|
||||
child_pid = piped_child (argv, &tofd, &fromfd, 1);
|
||||
|
||||
if (child_pid < 0)
|
||||
error (1, errno, "cannot start server via rsh");
|
||||
@ -4856,10 +4852,10 @@ start_rsh_server (root, to_server, from_server)
|
||||
/* Send an argument STRING. */
|
||||
void
|
||||
send_arg (string)
|
||||
char *string;
|
||||
const char *string;
|
||||
{
|
||||
char buf[1];
|
||||
char *p = string;
|
||||
const char *p = string;
|
||||
|
||||
send_to_server ("Argument ", 0);
|
||||
|
||||
@ -5151,7 +5147,10 @@ warning: ignoring -k options due to server limitations");
|
||||
}
|
||||
else if (vers->ts_rcs == NULL
|
||||
|| args->force
|
||||
|| strcmp (vers->ts_user, vers->ts_rcs) != 0)
|
||||
|| strcmp (vers->ts_conflict
|
||||
&& supported_request ("Empty-conflicts")
|
||||
? vers->ts_conflict : vers->ts_rcs, vers->ts_user)
|
||||
|| (vers->ts_conflict && !strcmp (cvs_cmd_name, "diff")))
|
||||
{
|
||||
if (args->no_contents
|
||||
&& supported_request ("Is-modified"))
|
||||
@ -5357,36 +5356,15 @@ send_dirleave_proc (callerdat, dir, err, update_dir, entries)
|
||||
}
|
||||
|
||||
/*
|
||||
* Send each option in a string to the server, one by one.
|
||||
* This assumes that the options are separated by spaces, for example
|
||||
* STRING might be "--foo -C5 -y".
|
||||
* Send each option in an array to the server, one by one.
|
||||
* argv might be "--foo=bar", "-C", "5", "-y".
|
||||
*/
|
||||
|
||||
void
|
||||
send_option_string (string)
|
||||
char *string;
|
||||
send_options (int argc, char *const *argv)
|
||||
{
|
||||
char *copy;
|
||||
char *p;
|
||||
|
||||
copy = xstrdup (string);
|
||||
p = copy;
|
||||
while (1)
|
||||
{
|
||||
char *s;
|
||||
char l;
|
||||
|
||||
for (s = p; *s != ' ' && *s != '\0'; s++)
|
||||
;
|
||||
l = *s;
|
||||
*s = '\0';
|
||||
if (s != p)
|
||||
send_arg (p);
|
||||
if (l == '\0')
|
||||
break;
|
||||
p = s + 1;
|
||||
}
|
||||
free (copy);
|
||||
int i;
|
||||
for (i = 0; i < argc; i++)
|
||||
send_arg (argv[i]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,3 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* Interface between the client and the rest of CVS. */
|
||||
|
||||
/* Stuff shared with the server. */
|
||||
@ -119,11 +133,10 @@ send_files PROTO((int argc, char **argv, int local, int aflag,
|
||||
|
||||
/* Send an argument to the remote server. */
|
||||
void
|
||||
send_arg PROTO((char *string));
|
||||
send_arg PROTO((const char *string));
|
||||
|
||||
/* Send a string of single-char options to the remote server, one by one. */
|
||||
void
|
||||
send_option_string PROTO((char *string));
|
||||
void send_options PROTO ((int argc, char * const *argv));
|
||||
|
||||
extern void send_a_repository PROTO ((const char *, const char *,
|
||||
const char *));
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -383,12 +388,8 @@ commit (argc, argv)
|
||||
/* FIXME: Shouldn't this check be much more closely related to the
|
||||
readonly user stuff (CVSROOT/readers, &c). That is, why should
|
||||
root be able to "cvs init", "cvs import", &c, but not "cvs ci"? */
|
||||
if (geteuid () == (uid_t) 0
|
||||
# ifdef CLIENT_SUPPORT
|
||||
/* Who we are on the client side doesn't affect logging. */
|
||||
&& !current_parsed_root->isremote
|
||||
# endif
|
||||
)
|
||||
/* Who we are on the client side doesn't affect logging. */
|
||||
if (geteuid () == (uid_t) 0 && !current_parsed_root->isremote)
|
||||
{
|
||||
struct passwd *pw;
|
||||
|
||||
@ -411,6 +412,7 @@ commit (argc, argv)
|
||||
/* Silently ignore -n for compatibility with old
|
||||
* clients.
|
||||
*/
|
||||
if (!server_active) error(0, 0, "the `-n' option is obsolete");
|
||||
break;
|
||||
#endif /* SERVER_SUPPORT */
|
||||
case 'm':
|
||||
@ -641,7 +643,8 @@ commit (argc, argv)
|
||||
|
||||
fp = cvs_temp_file (&fname);
|
||||
if (fp == NULL)
|
||||
error (1, 0, "cannot create temporary file %s", fname);
|
||||
error (1, 0, "cannot create temporary file %s",
|
||||
fname ? fname : "(null)");
|
||||
if (fwrite (saved_message, 1, strlen (saved_message), fp)
|
||||
!= strlen (saved_message))
|
||||
error (1, errno, "cannot write temporary file %s", fname);
|
||||
@ -712,10 +715,8 @@ commit (argc, argv)
|
||||
Lock_Cleanup ();
|
||||
dellist (&mulist);
|
||||
|
||||
#ifdef SERVER_SUPPORT
|
||||
if (server_active)
|
||||
return err;
|
||||
#endif
|
||||
|
||||
/* see if we need to sleep before returning to avoid time-stamp races */
|
||||
if (last_register_time)
|
||||
@ -870,11 +871,11 @@ check_fileproc (callerdat, finfo)
|
||||
case T_CHECKOUT:
|
||||
case T_PATCH:
|
||||
case T_NEEDS_MERGE:
|
||||
case T_CONFLICT:
|
||||
case T_REMOVE_ENTRY:
|
||||
error (0, 0, "Up-to-date check failed for `%s'", finfo->fullname);
|
||||
freevers_ts (&vers);
|
||||
return 1;
|
||||
case T_CONFLICT:
|
||||
case T_MODIFIED:
|
||||
case T_ADDED:
|
||||
case T_REMOVED:
|
||||
@ -912,40 +913,30 @@ check_fileproc (callerdat, finfo)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (status == T_MODIFIED && !force_ci && vers->ts_conflict)
|
||||
if (status == T_CONFLICT && !force_ci)
|
||||
{
|
||||
/*
|
||||
* We found a "conflict" marker.
|
||||
*
|
||||
* If the timestamp on the file is the same as the
|
||||
* timestamp stored in the Entries file, we block the commit.
|
||||
*/
|
||||
if ( file_has_conflict ( finfo, vers->ts_conflict ) )
|
||||
{
|
||||
error (0, 0,
|
||||
"file `%s' had a conflict and has not been modified",
|
||||
finfo->fullname);
|
||||
freevers_ts (&vers);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (file_has_markers (finfo))
|
||||
{
|
||||
/* Make this a warning, not an error, because we have
|
||||
no way of knowing whether the "conflict indicators"
|
||||
are really from a conflict or whether they are part
|
||||
of the document itself (cvs.texinfo and sanity.sh in
|
||||
CVS itself, for example, tend to want to have strings
|
||||
like ">>>>>>>" at the start of a line). Making people
|
||||
kludge this the way they need to kludge keyword
|
||||
expansion seems undesirable. And it is worse than
|
||||
keyword expansion, because there is no -ko
|
||||
analogue. */
|
||||
error (0, 0,
|
||||
"\
|
||||
error (0, 0,
|
||||
"file `%s' had a conflict and has not been modified",
|
||||
finfo->fullname);
|
||||
freevers_ts (&vers);
|
||||
return 1;
|
||||
}
|
||||
if (status == T_MODIFIED && !force_ci && file_has_markers (finfo))
|
||||
{
|
||||
/* Make this a warning, not an error, because we have
|
||||
no way of knowing whether the "conflict indicators"
|
||||
are really from a conflict or whether they are part
|
||||
of the document itself (cvs.texinfo and sanity.sh in
|
||||
CVS itself, for example, tend to want to have strings
|
||||
like ">>>>>>>" at the start of a line). Making people
|
||||
kludge this the way they need to kludge keyword
|
||||
expansion seems undesirable. And it is worse than
|
||||
keyword expansion, because there is no -ko
|
||||
analogue. */
|
||||
error (0, 0,
|
||||
"\
|
||||
warning: file `%s' seems to still contain conflict indicators",
|
||||
finfo->fullname);
|
||||
}
|
||||
finfo->fullname);
|
||||
}
|
||||
|
||||
if (status == T_REMOVED)
|
||||
@ -1284,11 +1275,7 @@ commit_fileproc (callerdat, finfo)
|
||||
if (!got_message)
|
||||
{
|
||||
got_message = 1;
|
||||
if (
|
||||
#ifdef SERVER_SUPPORT
|
||||
!server_active &&
|
||||
#endif
|
||||
use_editor)
|
||||
if (!server_active && use_editor)
|
||||
do_editor (finfo->update_dir, &saved_message,
|
||||
finfo->repository, ulist);
|
||||
do_verify (&saved_message, finfo->repository);
|
||||
@ -1474,6 +1461,8 @@ commit_filesdoneproc (callerdat, err, repository, update_dir, entries)
|
||||
Node *p;
|
||||
List *ulist;
|
||||
|
||||
assert (repository);
|
||||
|
||||
p = findnode (mulist, update_dir);
|
||||
if (p == NULL)
|
||||
return err;
|
||||
@ -1564,11 +1553,7 @@ commit_direntproc (callerdat, dir, repos, update_dir, entries)
|
||||
/* get commit message */
|
||||
real_repos = Name_Repository (dir, update_dir);
|
||||
got_message = 1;
|
||||
if (
|
||||
#ifdef SERVER_SUPPORT
|
||||
!server_active &&
|
||||
#endif
|
||||
use_editor)
|
||||
if (!server_active && use_editor)
|
||||
do_editor (update_dir, &saved_message, real_repos, ulist);
|
||||
do_verify (&saved_message, real_repos);
|
||||
free (real_repos);
|
||||
@ -1752,18 +1737,22 @@ remove_file (finfo, tag, message)
|
||||
if (corev != NULL)
|
||||
free (corev);
|
||||
|
||||
retcode = RCS_checkin (finfo->rcs, finfo->file, message, rev,
|
||||
retcode = RCS_checkin (finfo->rcs, finfo->file, message, rev, 0,
|
||||
RCS_FLAGS_DEAD | RCS_FLAGS_QUIET);
|
||||
if (retcode != 0)
|
||||
{
|
||||
if (!quiet)
|
||||
error (0, retcode == -1 ? errno : 0,
|
||||
"failed to commit dead revision for `%s'", finfo->fullname);
|
||||
if (prev_rev != NULL)
|
||||
free (prev_rev);
|
||||
return 1;
|
||||
}
|
||||
/* At this point, the file has been committed as removed. We should
|
||||
probably tell the history file about it */
|
||||
history_write ('R', NULL, finfo->rcs->head, finfo->file, finfo->repository);
|
||||
corev = rev ? RCS_getbranch (finfo->rcs, rev, 1) : RCS_head (finfo->rcs);
|
||||
history_write ('R', NULL, corev, finfo->file, finfo->repository);
|
||||
free (corev);
|
||||
|
||||
if (rev != NULL)
|
||||
free (rev);
|
||||
@ -2085,7 +2074,8 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
/* and lock it */
|
||||
if (lock_RCS (file, rcs, rev, repository))
|
||||
{
|
||||
error (0, 0, "cannot lock `%s'.", rcs->path);
|
||||
error (0, 0, "cannot lock revision %s in `%s'.",
|
||||
rev ? rev : tag ? tag : "HEAD", rcs->path);
|
||||
if (rev != NULL)
|
||||
free (rev);
|
||||
goto out;
|
||||
@ -2123,13 +2113,14 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
/* commit a dead revision. */
|
||||
(void) sprintf (tmp, "file %s was initially added on branch %s.",
|
||||
file, tag);
|
||||
retcode = RCS_checkin (rcs, NULL, tmp, NULL,
|
||||
retcode = RCS_checkin (rcs, NULL, tmp, NULL, 0,
|
||||
RCS_FLAGS_DEAD | RCS_FLAGS_QUIET);
|
||||
free (tmp);
|
||||
if (retcode != 0)
|
||||
{
|
||||
error (retcode == -1 ? 1 : 0, retcode == -1 ? errno : 0,
|
||||
"could not create initial dead revision %s", rcs->path);
|
||||
free (fname);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -2142,7 +2133,7 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
rcs = RCS_parse (file, repository);
|
||||
if (rcs == NULL)
|
||||
{
|
||||
error (0, 0, "could not read %s", rcs->path);
|
||||
error (0, 0, "could not read %s in %s", file, repository);
|
||||
goto out;
|
||||
}
|
||||
*rcsnode = rcs;
|
||||
@ -2150,7 +2141,8 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
/* and lock it once again. */
|
||||
if (lock_RCS (file, rcs, NULL, repository))
|
||||
{
|
||||
error (0, 0, "cannot lock `%s'.", rcs->path);
|
||||
error (0, 0, "cannot lock initial revision in `%s'.",
|
||||
rcs->path);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
@ -2163,12 +2155,25 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
char *head;
|
||||
char *magicrev;
|
||||
int retcode;
|
||||
time_t headtime = -1;
|
||||
char *revnum, *tmp;
|
||||
FILE *fp;
|
||||
time_t t = -1;
|
||||
struct tm *ct;
|
||||
|
||||
fixbranch (rcs, sbranch);
|
||||
|
||||
head = RCS_getversion (rcs, NULL, NULL, 0, (int *) NULL);
|
||||
if (!head)
|
||||
error (1, 0, "No head revision in archive file `%s'.",
|
||||
rcs->path);
|
||||
magicrev = RCS_magicrev (rcs, head);
|
||||
|
||||
/* If this is not a new branch, then we will want a dead
|
||||
version created before this one. */
|
||||
if (!newfile)
|
||||
headtime = RCS_getrevtime (rcs, head, 0, 0);
|
||||
|
||||
retcode = RCS_settag (rcs, tag, magicrev);
|
||||
RCS_rewrite (rcs, NULL, NULL);
|
||||
|
||||
@ -2181,13 +2186,76 @@ checkaddfile (file, repository, tag, options, rcsnode)
|
||||
"could not stub branch %s for %s", tag, rcs->path);
|
||||
goto out;
|
||||
}
|
||||
/* We need to add a dead version here to avoid -rtag -Dtime
|
||||
checkout problems between when the head version was
|
||||
created and now. */
|
||||
if (!newfile && headtime != -1)
|
||||
{
|
||||
/* move the new file out of the way. */
|
||||
fname = xmalloc (strlen (file) + sizeof (CVSADM)
|
||||
+ sizeof (CVSPREFIX) + 10);
|
||||
(void) sprintf (fname, "%s/%s%s", CVSADM, CVSPREFIX, file);
|
||||
rename_file (file, fname);
|
||||
|
||||
/* Create empty FILE. Can't use copy_file with a DEVNULL
|
||||
argument -- copy_file now ignores device files. */
|
||||
fp = fopen (file, "w");
|
||||
if (fp == NULL)
|
||||
error (1, errno, "cannot open %s for writing", file);
|
||||
if (fclose (fp) < 0)
|
||||
error (0, errno, "cannot close %s", file);
|
||||
|
||||
/* As we will be hacking the delta date, put the time
|
||||
this was added into the log message. */
|
||||
t = time(NULL);
|
||||
ct = gmtime(&t);
|
||||
tmp = xmalloc (strlen (file) + strlen (tag) + 80);
|
||||
|
||||
(void) sprintf (tmp,
|
||||
"file %s was added on branch %s on %d-%02d-%02d %02d:%02d:%02d +0000",
|
||||
file, tag,
|
||||
ct->tm_year + (ct->tm_year < 100 ? 0 : 1900),
|
||||
ct->tm_mon + 1, ct->tm_mday,
|
||||
ct->tm_hour, ct->tm_min, ct->tm_sec);
|
||||
|
||||
/* commit a dead revision. */
|
||||
revnum = RCS_whatbranch (rcs, tag);
|
||||
retcode = RCS_checkin (rcs, NULL, tmp, revnum, headtime,
|
||||
RCS_FLAGS_DEAD |
|
||||
RCS_FLAGS_QUIET |
|
||||
RCS_FLAGS_USETIME);
|
||||
free (revnum);
|
||||
free (tmp);
|
||||
|
||||
if (retcode != 0)
|
||||
{
|
||||
error (retcode == -1 ? 1 : 0, retcode == -1 ? errno : 0,
|
||||
"could not created dead stub %s for %s", tag,
|
||||
rcs->path);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* put the new file back where it was */
|
||||
rename_file (fname, file);
|
||||
free (fname);
|
||||
|
||||
/* double-check that the file was written correctly */
|
||||
freercsnode (&rcs);
|
||||
rcs = RCS_parse (file, repository);
|
||||
if (rcs == NULL)
|
||||
{
|
||||
error (0, 0, "could not read %s", rcs->path);
|
||||
goto out;
|
||||
}
|
||||
*rcsnode = rcs;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* lock the branch. (stubbed branches need not be locked.) */
|
||||
if (lock_RCS (file, rcs, NULL, repository))
|
||||
{
|
||||
error (0, 0, "cannot lock `%s'.", rcs->path);
|
||||
error (0, 0, "cannot lock head revision in `%s'.", rcs->path);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS kit.
|
||||
@ -207,6 +212,8 @@ extern int errno;
|
||||
#define CVSATTIC "Attic"
|
||||
|
||||
#define CVSLCK "#cvs.lock"
|
||||
#define CVSHISTORYLCK "#cvs.history.lock"
|
||||
#define CVSVALTAGSLCK "#cvs.val-tags.lock"
|
||||
#define CVSRFL "#cvs.rfl"
|
||||
#define CVSWFL "#cvs.wfl"
|
||||
#define CVSRFLPAT "#cvs.rfl.*" /* wildcard expr to match read locks */
|
||||
@ -270,7 +277,10 @@ extern int errno;
|
||||
#define EDITOR3_ENV "EDITOR" /* which editor to use */
|
||||
|
||||
#define CVSROOT_ENV "CVSROOT" /* source directory root */
|
||||
#define CVSROOT_DFLT NULL /* No dflt; must set for checkout */
|
||||
/* Define CVSROOT_DFLT to a fallback value for CVSROOT.
|
||||
*
|
||||
#undef CVSROOT_DFL
|
||||
*/
|
||||
|
||||
#define IGNORE_ENV "CVSIGNORE" /* More files to ignore */
|
||||
#define WRAPPER_ENV "CVSWRAPPERS" /* name of the wrapper file */
|
||||
@ -419,15 +429,18 @@ int RCS_merge PROTO((RCSNode *, const char *, const char *, const char *,
|
||||
#define RCS_FLAGS_QUIET 4
|
||||
#define RCS_FLAGS_MODTIME 8
|
||||
#define RCS_FLAGS_KEEPFILE 16
|
||||
#define RCS_FLAGS_USETIME 32
|
||||
|
||||
extern int RCS_exec_rcsdiff PROTO ((RCSNode *rcsfile,
|
||||
const char *opts, const char *options,
|
||||
extern int RCS_exec_rcsdiff PROTO ((RCSNode *rcsfile, int diff_argc,
|
||||
char *const *diff_argv,
|
||||
const char *options,
|
||||
const char *rev1, const char *rev1_cache,
|
||||
const char *rev2, const char *label1,
|
||||
const char *label2, const char *workfile));
|
||||
extern int diff_exec PROTO ((const char *file1, const char *file2,
|
||||
const char *label1, const char *label2,
|
||||
const char *options, const char *out));
|
||||
int diff_argc, char *const *diff_argv,
|
||||
const char *out));
|
||||
|
||||
|
||||
#include "error.h"
|
||||
@ -451,15 +464,6 @@ char *Name_Repository PROTO((const char *dir, const char *update_dir));
|
||||
const char *Short_Repository PROTO((const char *repository));
|
||||
void Sanitize_Repository_Name PROTO((char *repository));
|
||||
|
||||
char *Name_Root PROTO((char *dir, char *update_dir));
|
||||
void free_cvsroot_t PROTO((cvsroot_t *root_in));
|
||||
cvsroot_t *parse_cvsroot PROTO((const char *root));
|
||||
cvsroot_t *local_cvsroot PROTO((const char *dir));
|
||||
void Create_Root PROTO((const char *dir, const char *rootdir));
|
||||
void root_allow_add PROTO ((char *));
|
||||
void root_allow_free PROTO ((void));
|
||||
int root_allow_ok PROTO ((char *));
|
||||
|
||||
char *previous_rev PROTO ((RCSNode *rcs, const char *rev));
|
||||
char *gca PROTO ((const char *rev1, const char *rev2));
|
||||
extern void check_numeric PROTO ((const char *, int, char **));
|
||||
@ -568,6 +572,14 @@ void lock_tree_for_write PROTO ((int argc, char **argv, int local, int which,
|
||||
/* See lock.c for description. */
|
||||
extern void lock_dir_for_write PROTO ((char *));
|
||||
|
||||
/* Get a write lock for the history file. */
|
||||
int history_lock PROTO ((const char *));
|
||||
void clear_history_lock PROTO ((void));
|
||||
|
||||
/* Get a write lock for the val-tags file. */
|
||||
int val_tags_lock PROTO ((const char *));
|
||||
void clear_val_tags_lock PROTO ((void));
|
||||
|
||||
/* LockDir setting from CVSROOT/config. */
|
||||
extern char *lock_dir;
|
||||
|
||||
@ -667,8 +679,6 @@ int SIG_inCrSect PROTO((void));
|
||||
void read_cvsrc PROTO((int *argc, char ***argv, const char *cmdname));
|
||||
|
||||
char *make_message_rcslegal PROTO((const char *message));
|
||||
extern int file_has_conflict PROTO ((const struct file_info *,
|
||||
const char *ts_conflict));
|
||||
extern int file_has_markers PROTO ((const struct file_info *));
|
||||
extern void get_file PROTO ((const char *, const char *, const char *,
|
||||
char **, size_t *, size_t *));
|
||||
@ -686,6 +696,8 @@ void sleep_past PROTO ((time_t desttime));
|
||||
#define RUN_SIGIGNORE 0x0010 /* ignore interrupts for command */
|
||||
#define RUN_TTY (char *)0 /* for the benefit of lint */
|
||||
|
||||
void run_add_arg_p PROTO ((int *, size_t *, char ***, const char *s));
|
||||
void run_arg_free_p PROTO ((int, char **));
|
||||
void run_arg PROTO((const char *s));
|
||||
void run_print PROTO((FILE * fp));
|
||||
void run_setup PROTO ((const char *prog));
|
||||
@ -694,7 +706,7 @@ int run_exec PROTO((const char *stin, const char *stout, const char *sterr,
|
||||
|
||||
/* other similar-minded stuff from run.c. */
|
||||
FILE *run_popen PROTO((const char *, const char *));
|
||||
int piped_child PROTO((const char **, int *, int *));
|
||||
int piped_child PROTO((const char **, int *, int *, int));
|
||||
void close_on_exec PROTO((int));
|
||||
|
||||
pid_t waitpid PROTO((pid_t, int *, int));
|
||||
|
@ -1,5 +1,10 @@
|
||||
/*
|
||||
* Copyright (c) 1993 david d zuhn
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1993 david d zuhn
|
||||
*
|
||||
* Written by david d `zoo' zuhn while at Cygnus Support
|
||||
*
|
||||
@ -120,9 +125,9 @@ read_cvsrc (argc, argv, cmdname)
|
||||
if (found)
|
||||
{
|
||||
/* skip over command in the options line */
|
||||
for (optstart = strtok (line + command_len, "\t \n");
|
||||
for (optstart = strtok (line + command_len, "\t \n\r");
|
||||
optstart;
|
||||
optstart = strtok (NULL, "\t \n"))
|
||||
optstart = strtok (NULL, "\t \n\r"))
|
||||
{
|
||||
new_argv [new_argc++] = xstrdup (optstart);
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -60,8 +65,9 @@ static int have_rev1_label, have_rev2_label;
|
||||
static char *user_file_rev;
|
||||
|
||||
static char *options;
|
||||
static char *opts;
|
||||
static size_t opts_allocated = 1;
|
||||
static char **diff_argv;
|
||||
static int diff_argc;
|
||||
static size_t diff_arg_allocated;
|
||||
static int diff_errors;
|
||||
static int empty_files = 0;
|
||||
|
||||
@ -206,6 +212,54 @@ static struct option const longopts[] =
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Add one of OPT or LONGOPT, and ARGUMENT, when present, to global DIFF_ARGV.
|
||||
*
|
||||
* INPUTS
|
||||
* opt A character option representation.
|
||||
* longopt A long option name.
|
||||
* argument Optional option argument.
|
||||
*
|
||||
* GLOBALS
|
||||
* diff_argc The number of arguments in DIFF_ARGV.
|
||||
* diff_argv Array of argument strings.
|
||||
* diff_arg_allocated Allocated length of DIFF_ARGV.
|
||||
*
|
||||
* NOTES
|
||||
* Behavior when both OPT & LONGOPT are provided is undefined.
|
||||
*
|
||||
* RETURNS
|
||||
* Nothing.
|
||||
*/
|
||||
static void
|
||||
add_diff_args (char opt, const char *longopt, const char *argument)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
/* Add opt or longopt to diff_arv. */
|
||||
assert (opt || (longopt && *longopt));
|
||||
assert (!(opt && (longopt && *longopt)));
|
||||
if (opt)
|
||||
{
|
||||
tmp = xmalloc (3);
|
||||
sprintf (tmp, "-%c", opt);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = xmalloc (3 + strlen (longopt));
|
||||
sprintf (tmp, "--%s", longopt);
|
||||
}
|
||||
run_add_arg_p (&diff_argc, &diff_arg_allocated, &diff_argv, tmp);
|
||||
free (tmp);
|
||||
|
||||
/* When present, add ARGUMENT to DIFF_ARGV. */
|
||||
if (argument)
|
||||
run_add_arg_p (&diff_argc, &diff_arg_allocated, &diff_argv, argument);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* CVS 1.9 and similar versions seemed to have pretty weird handling
|
||||
of -y and -T. In the cases where it called rcsdiff,
|
||||
they would have the meanings mentioned below. In the cases where it
|
||||
@ -242,7 +296,6 @@ diff (argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
char tmp[50];
|
||||
int c, err = 0;
|
||||
int local = 0;
|
||||
int which;
|
||||
@ -262,12 +315,11 @@ diff (argc, argv)
|
||||
/* Clean out our global variables (multiroot can call us multiple
|
||||
times and the server can too, if the client sends several
|
||||
diff commands). */
|
||||
if (opts == NULL)
|
||||
if (diff_argc)
|
||||
{
|
||||
opts_allocated = 1;
|
||||
opts = xmalloc (opts_allocated);
|
||||
run_arg_free_p (diff_argc, diff_argv);
|
||||
diff_argc = 0;
|
||||
}
|
||||
opts[0] = '\0';
|
||||
diff_rev1 = NULL;
|
||||
diff_rev2 = NULL;
|
||||
diff_date1 = NULL;
|
||||
@ -288,7 +340,7 @@ diff (argc, argv)
|
||||
switch (c)
|
||||
{
|
||||
case 'y':
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, " --side-by-side");
|
||||
add_diff_args (0, "side-by-side", NULL);
|
||||
break;
|
||||
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
|
||||
case 'h': case 'i': case 'n': case 'p': case 's': case 't':
|
||||
@ -296,8 +348,7 @@ diff (argc, argv)
|
||||
case '0': case '1': case '2': case '3': case '4': case '5':
|
||||
case '6': case '7': case '8': case '9':
|
||||
case 'B': case 'H': case 'T':
|
||||
(void) sprintf (tmp, " -%c", (char) c);
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, tmp);
|
||||
add_diff_args (c, NULL, NULL);
|
||||
break;
|
||||
case 'L':
|
||||
if (have_rev1_label++)
|
||||
@ -306,33 +357,15 @@ diff (argc, argv)
|
||||
error (0, 0, "extra -L arguments ignored");
|
||||
break;
|
||||
}
|
||||
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, " -L");
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, optarg);
|
||||
break;
|
||||
/* Fall through. */
|
||||
case 'C': case 'F': case 'I': case 'U': case 'W':
|
||||
(void) sprintf (tmp, " -%c", (char) c);
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, tmp);
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, optarg);
|
||||
add_diff_args (c, NULL, optarg);
|
||||
break;
|
||||
case 131:
|
||||
/* --ifdef. */
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, " --ifdef=");
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, optarg);
|
||||
break;
|
||||
case 129: case 130: case 132: case 133: case 134:
|
||||
case 129: case 130: case 131: case 132: case 133: case 134:
|
||||
case 135: case 136: case 137: case 138: case 139: case 140:
|
||||
case 141: case 142: case 143: case 145: case 146:
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, " --");
|
||||
xrealloc_and_strcat (&opts, &opts_allocated,
|
||||
longopts[option_index].name);
|
||||
if (longopts[option_index].has_arg == 1
|
||||
|| (longopts[option_index].has_arg == 2
|
||||
&& optarg != NULL))
|
||||
{
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, "=");
|
||||
xrealloc_and_strcat (&opts, &opts_allocated, optarg);
|
||||
}
|
||||
add_diff_args (0, longopts[option_index].name,
|
||||
longopts[option_index].has_arg ? optarg : NULL);
|
||||
break;
|
||||
case 'R':
|
||||
local = 0;
|
||||
@ -390,7 +423,7 @@ diff (argc, argv)
|
||||
send_arg("-l");
|
||||
if (empty_files)
|
||||
send_arg("-N");
|
||||
send_option_string (opts);
|
||||
send_options (diff_argc, diff_argv);
|
||||
if (options[0] != '\0')
|
||||
send_arg (options);
|
||||
if (diff_rev1)
|
||||
@ -700,8 +733,8 @@ RCS file: ", 0);
|
||||
if (empty_file == DIFF_ADDED)
|
||||
{
|
||||
if (use_rev2 == NULL)
|
||||
status = diff_exec (DEVNULL, finfo->file, label1, label2, opts,
|
||||
RUN_TTY);
|
||||
status = diff_exec (DEVNULL, finfo->file, label1, label2,
|
||||
diff_argc, diff_argv, RUN_TTY);
|
||||
else
|
||||
{
|
||||
int retcode;
|
||||
@ -717,7 +750,8 @@ RCS file: ", 0);
|
||||
if( retcode != 0 )
|
||||
goto out;
|
||||
|
||||
status = diff_exec (DEVNULL, tmp, label1, label2, opts, RUN_TTY);
|
||||
status = diff_exec (DEVNULL, tmp, label1, label2,
|
||||
diff_argc, diff_argv, RUN_TTY);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -733,16 +767,16 @@ RCS file: ", 0);
|
||||
if (retcode != 0)
|
||||
goto out;
|
||||
|
||||
status = diff_exec (tmp, DEVNULL, label1, label2, opts, RUN_TTY);
|
||||
status = diff_exec (tmp, DEVNULL, label1, label2,
|
||||
diff_argc, diff_argv, RUN_TTY);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status = RCS_exec_rcsdiff(vers->srcfile, opts,
|
||||
*options ? options : vers->options,
|
||||
use_rev1, rev1_cache, use_rev2,
|
||||
label1, label2,
|
||||
finfo->file);
|
||||
status = RCS_exec_rcsdiff (vers->srcfile, diff_argc, diff_argv,
|
||||
*options ? options : vers->options,
|
||||
use_rev1, rev1_cache, use_rev2,
|
||||
label1, label2, finfo->file);
|
||||
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,10 @@ onoff_fileproc (callerdat, finfo)
|
||||
void *callerdat;
|
||||
struct file_info *finfo;
|
||||
{
|
||||
char *watched = fileattr_get0 (finfo->file, "_watched");
|
||||
fileattr_set (finfo->file, "_watched", turning_on ? "" : NULL);
|
||||
if (watched != NULL)
|
||||
free (watched);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -50,7 +53,12 @@ onoff_filesdoneproc (callerdat, err, repository, update_dir, entries)
|
||||
List *entries;
|
||||
{
|
||||
if (setting_default)
|
||||
{
|
||||
char *watched = fileattr_get0 (NULL, "_watched");
|
||||
fileattr_set (NULL, "_watched", turning_on ? "" : NULL);
|
||||
if (watched != NULL)
|
||||
free (watched);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -357,12 +365,12 @@ edit_fileproc (callerdat, finfo)
|
||||
|
||||
static const char *const edit_usage[] =
|
||||
{
|
||||
"Usage: %s %s [-lR] [files...]\n",
|
||||
"-l: Local directory only, not recursive\n",
|
||||
"-R: Process directories recursively\n",
|
||||
"-a: Specify what actions for temporary watch, one of\n",
|
||||
" edit,unedit,commit,all,none\n",
|
||||
"(Specify the --help global option for a list of other help options)\n",
|
||||
"Usage: %s %s [-lR] [-a <action>]... [<file>]...\n",
|
||||
"-l\tLocal directory only, not recursive.\n",
|
||||
"-R\tProcess directories recursively (default).\n",
|
||||
"-a\tSpecify action to register for temporary watch, one of:\n",
|
||||
" \t`edit', `unedit', `commit', `all', or `none' (defaults to `all').\n",
|
||||
"(Specify the --help global option for a list of other help options.)\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -572,10 +580,10 @@ unedit_fileproc (callerdat, finfo)
|
||||
|
||||
static const char *const unedit_usage[] =
|
||||
{
|
||||
"Usage: %s %s [-lR] [files...]\n",
|
||||
"-l: Local directory only, not recursive\n",
|
||||
"-R: Process directories recursively\n",
|
||||
"(Specify the --help global option for a list of other help options)\n",
|
||||
"Usage: %s %s [-lR] [<file>]...\n",
|
||||
"-l\tLocal directory only, not recursive.\n",
|
||||
"-R\tProcess directories recursively (default).\n",
|
||||
"(Specify the --help global option for a list of other help options.)\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -1041,10 +1049,10 @@ notify_check (repository, update_dir)
|
||||
|
||||
static const char *const editors_usage[] =
|
||||
{
|
||||
"Usage: %s %s [-lR] [files...]\n",
|
||||
"\t-l\tProcess this directory only (not recursive).\n",
|
||||
"\t-R\tProcess directories recursively.\n",
|
||||
"(Specify the --help global option for a list of other help options)\n",
|
||||
"Usage: %s %s [-lR] [<file>]...\n",
|
||||
"-l\tProcess this directory only (not recursive).\n",
|
||||
"-R\tProcess directories recursively (default).\n",
|
||||
"(Specify the --help global option for a list of other help options.)\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -537,6 +542,7 @@ Entries_Open (aflag, update_dir)
|
||||
break;
|
||||
default:
|
||||
/* Ignore unrecognized commands. */
|
||||
Entnode_Destroy (ent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,16 @@
|
||||
/* expand_path.c -- expand environmental variables in passed in string
|
||||
*
|
||||
* Copyright (C) 1995-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* 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.
|
||||
*
|
||||
* The main routine is expand_path(), it is the routine that handles
|
||||
* the '~' character in four forms:
|
||||
@ -97,16 +109,14 @@ expand_path (name, file, line)
|
||||
const char *file;
|
||||
int line;
|
||||
{
|
||||
const char *s;
|
||||
char *d;
|
||||
size_t s, d, p;
|
||||
char *e;
|
||||
|
||||
char *mybuf = NULL;
|
||||
size_t mybuf_size = 0;
|
||||
char *buf = NULL;
|
||||
size_t buf_size = 0;
|
||||
|
||||
size_t doff;
|
||||
|
||||
char *result;
|
||||
|
||||
/* Sorry this routine is so ugly; it is a head-on collision
|
||||
@ -117,82 +127,74 @@ expand_path (name, file, line)
|
||||
thusly. */
|
||||
|
||||
/* First copy from NAME to MYBUF, expanding $<foo> as we go. */
|
||||
s = name;
|
||||
d = mybuf;
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
while ((*d++ = *s))
|
||||
s = d = 0;
|
||||
while (name[s] != '\0')
|
||||
{
|
||||
if (*s++ == '$')
|
||||
if (name[s] == '$')
|
||||
{
|
||||
char *p = d;
|
||||
char *e;
|
||||
int flag = (*s == '{');
|
||||
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
for (; (*d++ = *s); s++)
|
||||
p = d;
|
||||
if (name[++s] == '{')
|
||||
{
|
||||
if (flag
|
||||
? *s =='}'
|
||||
: isalnum ((unsigned char) *s) == 0 && *s != '_')
|
||||
break;
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
while (name[++s] != '}' && name[s] != '\0')
|
||||
{
|
||||
expand_string (&mybuf, &mybuf_size, p + 1);
|
||||
mybuf[p++] = name[s];
|
||||
}
|
||||
if (name[s] != '\0') ++s;
|
||||
}
|
||||
*--d = '\0';
|
||||
e = expand_variable (&p[flag], file, line);
|
||||
else
|
||||
{
|
||||
while (isalnum ((unsigned char) name[s]) || name[s] == '_')
|
||||
{
|
||||
expand_string (&mybuf, &mybuf_size, p + 1);
|
||||
mybuf[p++] = name[s++];
|
||||
}
|
||||
}
|
||||
expand_string (&mybuf, &mybuf_size, p + 1);
|
||||
mybuf[p] = '\0';
|
||||
e = expand_variable (mybuf + d, file, line);
|
||||
|
||||
if (e)
|
||||
{
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
for (d = &p[-1]; (*d++ = *e++);)
|
||||
{
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
}
|
||||
--d;
|
||||
if (flag && *s)
|
||||
s++;
|
||||
p = strlen(e);
|
||||
expand_string (&mybuf, &mybuf_size, d + p);
|
||||
memcpy(mybuf + d, e, p);
|
||||
d += p;
|
||||
}
|
||||
else
|
||||
/* expand_variable has already printed an error message. */
|
||||
goto error_exit;
|
||||
}
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
else
|
||||
{
|
||||
expand_string (&mybuf, &mybuf_size, d + 1);
|
||||
mybuf[d++] = name[s++];
|
||||
}
|
||||
}
|
||||
doff = d - mybuf;
|
||||
expand_string (&mybuf, &mybuf_size, doff + 1);
|
||||
d = mybuf + doff;
|
||||
*d = '\0';
|
||||
expand_string (&mybuf, &mybuf_size, d + 1);
|
||||
mybuf[d++] = '\0';
|
||||
|
||||
/* Then copy from MYBUF to BUF, expanding ~. */
|
||||
s = mybuf;
|
||||
d = buf;
|
||||
s = d = 0;
|
||||
/* If you don't want ~username ~/ to be expanded simply remove
|
||||
* This entire if statement including the else portion
|
||||
*/
|
||||
if (*s++ == '~')
|
||||
if (mybuf[s] == '~')
|
||||
{
|
||||
char *t;
|
||||
char *p, *pstart;
|
||||
pstart = p = xstrdup (s);
|
||||
if (*pstart=='/' || *pstart==0)
|
||||
t = get_homedir ();
|
||||
p = d;
|
||||
while (mybuf[++s] != '/' && mybuf[s] != '\0')
|
||||
{
|
||||
expand_string (&buf, &buf_size, p + 1);
|
||||
buf[p++] = name[s];
|
||||
}
|
||||
expand_string (&buf, &buf_size, p + 1);
|
||||
buf[p] = '\0';
|
||||
|
||||
if (p == d)
|
||||
e = get_homedir ();
|
||||
else
|
||||
{
|
||||
#ifdef GETPWNAM_MISSING
|
||||
for (; *p!='/' && *p; p++)
|
||||
;
|
||||
*p = 0;
|
||||
if (line != 0)
|
||||
error (0, 0,
|
||||
"%s:%d:tilde expansion not supported on this system",
|
||||
@ -200,57 +202,34 @@ expand_path (name, file, line)
|
||||
else
|
||||
error (0, 0, "%s:tilde expansion not supported on this system",
|
||||
file);
|
||||
return NULL;
|
||||
goto error_exit;
|
||||
#else
|
||||
struct passwd *ps;
|
||||
for (; *p!='/' && *p; p++)
|
||||
;
|
||||
*p = 0;
|
||||
ps = getpwnam (pstart);
|
||||
if (ps == 0)
|
||||
ps = getpwnam (buf + d);
|
||||
if (ps == NULL)
|
||||
{
|
||||
if (line != 0)
|
||||
error (0, 0, "%s:%d: no such user %s",
|
||||
file, line, pstart);
|
||||
file, line, buf + d);
|
||||
else
|
||||
error (0, 0, "%s: no such user %s", file, pstart);
|
||||
return NULL;
|
||||
error (0, 0, "%s: no such user %s", file, buf + d);
|
||||
goto error_exit;
|
||||
}
|
||||
t = ps->pw_dir;
|
||||
e = ps->pw_dir;
|
||||
#endif
|
||||
}
|
||||
if (t == NULL)
|
||||
if (e == NULL)
|
||||
error (1, 0, "cannot find home directory");
|
||||
|
||||
doff = d - buf;
|
||||
expand_string (&buf, &buf_size, doff + 1);
|
||||
d = buf + doff;
|
||||
while ((*d++ = *t++))
|
||||
{
|
||||
doff = d - buf;
|
||||
expand_string (&buf, &buf_size, doff + 1);
|
||||
d = buf + doff;
|
||||
}
|
||||
--d;
|
||||
s+=p-pstart;
|
||||
free (pstart);
|
||||
p = strlen(e);
|
||||
expand_string (&buf, &buf_size, d + p);
|
||||
memcpy(buf + d, e, p);
|
||||
d += p;
|
||||
}
|
||||
else
|
||||
--s;
|
||||
/* Kill up to here */
|
||||
doff = d - buf;
|
||||
expand_string (&buf, &buf_size, doff + 1);
|
||||
d = buf + doff;
|
||||
while ((*d++ = *s++))
|
||||
{
|
||||
doff = d - buf;
|
||||
expand_string (&buf, &buf_size, doff + 1);
|
||||
d = buf + doff;
|
||||
}
|
||||
doff = d - buf;
|
||||
expand_string (&buf, &buf_size, doff + 1);
|
||||
d = buf + doff;
|
||||
*d = '\0';
|
||||
/* Kill up to here */
|
||||
p = strlen(mybuf + s) + 1;
|
||||
expand_string (&buf, &buf_size, d + p);
|
||||
memcpy(buf + d, mybuf + s, p);
|
||||
|
||||
/* OK, buf contains the value we want to return. Clean up and return
|
||||
it. */
|
||||
|
@ -139,6 +139,7 @@ fileattr_read ()
|
||||
"file attribute database corruption: tab missing in %s",
|
||||
fname);
|
||||
++p;
|
||||
if (fileattr_default_attrs) free (fileattr_default_attrs);
|
||||
fileattr_default_attrs = xstrdup (p);
|
||||
}
|
||||
else
|
||||
@ -589,6 +590,7 @@ fileattr_write ()
|
||||
{
|
||||
error (0, errno, "cannot make directory %s", repname);
|
||||
(void) umask (omask);
|
||||
free (fname);
|
||||
free (repname);
|
||||
return;
|
||||
}
|
||||
@ -600,6 +602,7 @@ fileattr_write ()
|
||||
{
|
||||
error (0, errno, "cannot write %s", fname);
|
||||
(void) umask (omask);
|
||||
free (fname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include <assert.h>
|
||||
#include "cvs.h"
|
||||
|
||||
#include "xsize.h"
|
||||
|
||||
static int deep_remove_dir PROTO((const char *path));
|
||||
|
||||
/*
|
||||
@ -105,7 +107,7 @@ copy_file (from, to)
|
||||
error (1, errno, "cannot close %s", to);
|
||||
}
|
||||
|
||||
/* now, set the times for the copied file to match those of the original */
|
||||
/* preserve last access & modification times */
|
||||
memset ((char *) &t, 0, sizeof (t));
|
||||
t.actime = sb.st_atime;
|
||||
t.modtime = sb.st_mtime;
|
||||
@ -433,14 +435,10 @@ unlink_file_dir (f)
|
||||
{
|
||||
struct stat sb;
|
||||
|
||||
if (trace
|
||||
#ifdef SERVER_SUPPORT
|
||||
/* This is called by the server parent process in contexts where
|
||||
it is not OK to send output (e.g. after we sent "ok" to the
|
||||
client). */
|
||||
&& !server_active
|
||||
#endif
|
||||
)
|
||||
/* This is called by the server parent process in contexts where
|
||||
it is not OK to send output (e.g. after we sent "ok" to the
|
||||
client). */
|
||||
if (trace && !server_active)
|
||||
(void) fprintf (stderr, "-> unlink_file_dir(%s)\n", f);
|
||||
|
||||
if (noexec)
|
||||
@ -704,7 +702,8 @@ cvs_temp_name ()
|
||||
|
||||
fp = cvs_temp_file (&fn);
|
||||
if (fp == NULL)
|
||||
error (1, errno, "Failed to create temporary file");
|
||||
error (1, errno, "Failed to create temporary file %s",
|
||||
fn ? fn : "(null)");
|
||||
if (fclose (fp) == EOF)
|
||||
error (0, errno, "Failed to close temporary file %s", fn);
|
||||
return fn;
|
||||
@ -741,7 +740,8 @@ cvs_temp_name ()
|
||||
* NFS locking thing, but until I hear of more problems, I'm not going to
|
||||
* bother.
|
||||
*/
|
||||
FILE *cvs_temp_file (filename)
|
||||
FILE *
|
||||
cvs_temp_file (filename)
|
||||
char **filename;
|
||||
{
|
||||
char *fn;
|
||||
@ -780,7 +780,11 @@ FILE *cvs_temp_file (filename)
|
||||
errno = save_errno;
|
||||
}
|
||||
|
||||
if (fp == NULL) free (fn);
|
||||
if (fp == NULL)
|
||||
{
|
||||
free (fn);
|
||||
fn = NULL;
|
||||
}
|
||||
/* mkstemp is defined to open mode 0600 using glibc 2.0.7+ */
|
||||
/* FIXME - configure can probably tell us which version of glibc we are
|
||||
* linking to and not chmod for 2.0.7+
|
||||
@ -795,7 +799,11 @@ FILE *cvs_temp_file (filename)
|
||||
|
||||
fn = tempnam (Tmpdir, "cvs");
|
||||
if (fn == NULL) fp = NULL;
|
||||
else if ((fp = CVS_FOPEN (fn, "w+")) == NULL) free (fn);
|
||||
else if ((fp = CVS_FOPEN (fn, "w+")) == NULL)
|
||||
{
|
||||
free (fn);
|
||||
fn = NULL;
|
||||
}
|
||||
else chmod (fn, 0600);
|
||||
|
||||
/* tempnam returns a pointer to a newly malloc'd string, so there's
|
||||
@ -845,6 +853,11 @@ FILE *cvs_temp_file (filename)
|
||||
#endif
|
||||
|
||||
*filename = fn;
|
||||
if (fn == NULL && fp != NULL)
|
||||
{
|
||||
fclose (fp);
|
||||
fp = NULL;
|
||||
}
|
||||
return fp;
|
||||
}
|
||||
|
||||
@ -867,31 +880,48 @@ FILE *cvs_temp_file (filename)
|
||||
* This function exits with a fatal error if it fails to read the link for
|
||||
* any reason.
|
||||
*/
|
||||
#define MAXSIZE (SIZE_MAX < SSIZE_MAX ? SIZE_MAX : SSIZE_MAX)
|
||||
|
||||
char *
|
||||
xreadlink (link)
|
||||
const char *link;
|
||||
{
|
||||
char *file = NULL;
|
||||
int buflen = 128;
|
||||
int link_name_len;
|
||||
size_t buflen = 128;
|
||||
|
||||
/* Get the name of the file to which `from' is linked.
|
||||
FIXME: what portability issues arise here? Are readlink &
|
||||
ENAMETOOLONG defined on all systems? -twp */
|
||||
do
|
||||
/* Get the name of the file to which `from' is linked. */
|
||||
while (1)
|
||||
{
|
||||
ssize_t r;
|
||||
size_t link_name_len;
|
||||
|
||||
file = xrealloc (file, buflen);
|
||||
link_name_len = readlink (link, file, buflen - 1);
|
||||
buflen *= 2;
|
||||
r = readlink (link, file, buflen);
|
||||
link_name_len = r;
|
||||
|
||||
if (r < 0
|
||||
#ifdef ERANGE
|
||||
/* AIX 4 and HP-UX report ERANGE if the buffer is too small. */
|
||||
&& errno != ERANGE
|
||||
#endif
|
||||
)
|
||||
error (1, errno, "cannot readlink %s", link);
|
||||
|
||||
/* If there is space for the NUL byte, set it and return. */
|
||||
if (r >= 0 && link_name_len < buflen)
|
||||
{
|
||||
file[link_name_len] = '\0';
|
||||
return file;
|
||||
}
|
||||
|
||||
if (buflen <= MAXSIZE / 2)
|
||||
buflen *= 2;
|
||||
else if (buflen < MAXSIZE)
|
||||
buflen = MAXSIZE;
|
||||
else
|
||||
/* Our buffer cannot grow any bigger. */
|
||||
error (1, ENAMETOOLONG, "cannot readlink %s", link);
|
||||
}
|
||||
while (link_name_len < 0 && errno == ENAMETOOLONG);
|
||||
|
||||
if (link_name_len < 0)
|
||||
error (1, errno, "cannot readlink %s", link);
|
||||
|
||||
file[link_name_len] = '\0';
|
||||
|
||||
return file;
|
||||
}
|
||||
#endif /* HAVE_READLINK */
|
||||
|
||||
@ -944,7 +974,8 @@ last_component (path)
|
||||
const char *path;
|
||||
{
|
||||
const char *last = strrchr (path, '/');
|
||||
|
||||
|
||||
assert (path);
|
||||
if (last && (last != path))
|
||||
return last + 1;
|
||||
else
|
||||
@ -984,11 +1015,7 @@ get_homedir ()
|
||||
if (home != NULL)
|
||||
return home;
|
||||
|
||||
if (
|
||||
#ifdef SERVER_SUPPORT
|
||||
!server_active &&
|
||||
#endif
|
||||
(env = getenv ("HOME")) != NULL)
|
||||
if (!server_active && (env = getenv ("HOME")) != NULL)
|
||||
home = env;
|
||||
else if ((pw = (struct passwd *) getpwuid (getuid ()))
|
||||
&& pw->pw_dir)
|
||||
@ -1029,6 +1056,7 @@ expand_wild (argc, argv, pargc, pargv)
|
||||
char ***pargv;
|
||||
{
|
||||
int i;
|
||||
assert (argv || !argc);
|
||||
if (size_overflow_p (xtimes (argc, sizeof (char *)))) {
|
||||
*pargc = 0;
|
||||
*pargv = NULL;
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
|
@ -11,7 +11,9 @@
|
||||
/* Collect and manage hardlink info associated with a particular file. */
|
||||
|
||||
#include "cvs.h"
|
||||
#include "hardlink.h"
|
||||
|
||||
#ifdef PRESERVE_PERMISSIONS_SUPPORT
|
||||
# include "hardlink.h"
|
||||
|
||||
/* The structure currently used to manage hardlink info is a list.
|
||||
Therefore, most of the functions which manipulate hardlink data
|
||||
@ -302,4 +304,4 @@ find_checkedout_proc (node, data)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* PRESERVE_PERMISSIONS_SUPPORT */
|
||||
|
@ -17,6 +17,7 @@
|
||||
when files are being checked out or updated. It is used only when
|
||||
hardlinked files are being checked out. */
|
||||
|
||||
#ifdef PRESERVE_PERMISSIONS_SUPPORT
|
||||
struct hardlink_info
|
||||
{
|
||||
Ctype status; /* as returned from Classify_File() */
|
||||
@ -31,3 +32,4 @@ void update_hardlink_info PROTO ((const char *));
|
||||
List *list_linked_files_on_disk PROTO ((char *));
|
||||
int compare_linkage_lists PROTO ((List *, List *));
|
||||
int find_checkedout_proc PROTO ((Node *, void *));
|
||||
#endif /* PRESERVE_PERMISSIONS_SUPPORT */
|
||||
|
@ -1,5 +1,10 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
|
@ -1,5 +1,10 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
|
@ -1,9 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 1994-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License
|
||||
* as specified in the README file that comes with the CVS 1.0 kit.
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* **************** History of Users and Module ****************
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* **************** History of Users and Module ****************
|
||||
*
|
||||
* LOGGING: Append record to "${CVSROOT}/CVSROOTADM/CVSROOTADM_HISTORY".
|
||||
*
|
||||
@ -236,7 +245,7 @@ static short tz_local;
|
||||
static time_t tz_seconds_east_of_GMT;
|
||||
static char *tz_name = "+0000";
|
||||
|
||||
char *logHistory = ALL_HISTORY_REC_TYPES;
|
||||
char *logHistory;
|
||||
|
||||
/* -r, -t, or -b options, malloc'd. These are "" if the option in
|
||||
question is not specified or is overridden by another option. The
|
||||
@ -257,24 +266,24 @@ static struct hrec *last_backto;
|
||||
we do. */
|
||||
static char *rec_types;
|
||||
|
||||
static int hrec_count;
|
||||
static int hrec_max;
|
||||
static size_t hrec_count;
|
||||
static size_t hrec_max;
|
||||
|
||||
static char **user_list; /* Ptr to array of ptrs to user names */
|
||||
static int user_max; /* Number of elements allocated */
|
||||
static int user_count; /* Number of elements used */
|
||||
static size_t user_max; /* Number of elements allocated */
|
||||
static size_t user_count; /* Number of elements used */
|
||||
|
||||
static struct file_list_str
|
||||
{
|
||||
char *l_file;
|
||||
char *l_module;
|
||||
} *file_list; /* Ptr to array file name structs */
|
||||
static int file_max; /* Number of elements allocated */
|
||||
static int file_count; /* Number of elements used */
|
||||
static size_t file_max; /* Number of elements allocated */
|
||||
static size_t file_count; /* Number of elements used */
|
||||
|
||||
static char **mod_list; /* Ptr to array of ptrs to module names */
|
||||
static int mod_max; /* Number of elements allocated */
|
||||
static int mod_count; /* Number of elements used */
|
||||
static size_t mod_max; /* Number of elements allocated */
|
||||
static size_t mod_count; /* Number of elements used */
|
||||
|
||||
static char *histfile; /* Ptr to the history file name */
|
||||
|
||||
@ -442,7 +451,7 @@ history (argc, argv)
|
||||
backto = xstrdup (optarg);
|
||||
break;
|
||||
case 'f': /* For specified file */
|
||||
save_file ("", optarg, (char *) NULL);
|
||||
save_file (NULL, optarg, NULL);
|
||||
break;
|
||||
case 'm': /* Full module report */
|
||||
if (!module_report++) report_count++;
|
||||
@ -451,7 +460,7 @@ history (argc, argv)
|
||||
save_module (optarg);
|
||||
break;
|
||||
case 'p': /* For specified directory */
|
||||
save_file (optarg, "", (char *) NULL);
|
||||
save_file (optarg, NULL, NULL);
|
||||
break;
|
||||
case 'r': /* Since specified Tag/Rev */
|
||||
if (since_date || *since_tag || *backto)
|
||||
@ -534,7 +543,7 @@ history (argc, argv)
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
for (i = 0; i < argc; i++)
|
||||
save_file ("", argv[i], (char *) NULL);
|
||||
save_file (NULL, argv[i], NULL);
|
||||
|
||||
|
||||
/* ================ Now analyze the arguments a bit */
|
||||
@ -724,9 +733,10 @@ history_write (type, update_dir, revs, name, repository)
|
||||
* readonlyfs.
|
||||
*/
|
||||
return;
|
||||
if ( strchr(logHistory, type) == NULL )
|
||||
if (strchr (logHistory, type) == NULL)
|
||||
return;
|
||||
fname = xmalloc (strlen (current_parsed_root->directory) + sizeof (CVSROOTADM)
|
||||
fname = xmalloc (strlen (current_parsed_root->directory)
|
||||
+ sizeof (CVSROOTADM)
|
||||
+ sizeof (CVSROOTADM_HISTORY) + 3);
|
||||
(void) sprintf (fname, "%s/%s/%s", current_parsed_root->directory,
|
||||
CVSROOTADM, CVSROOTADM_HISTORY);
|
||||
@ -752,6 +762,11 @@ history_write (type, update_dir, revs, name, repository)
|
||||
CLIENT_SERVER_STR, fname);
|
||||
if (noexec)
|
||||
goto out;
|
||||
|
||||
if (!history_lock (current_parsed_root->directory))
|
||||
/* history_lock() will already have printed an error on failure. */
|
||||
goto out;
|
||||
|
||||
fd = CVS_OPEN (fname, O_WRONLY | O_APPEND | OPEN_BINARY, 0666);
|
||||
if (fd < 0)
|
||||
{
|
||||
@ -789,7 +804,7 @@ history_write (type, update_dir, revs, name, repository)
|
||||
if (save_cwd (&cwd))
|
||||
error_exit ();
|
||||
|
||||
if ( CVS_CHDIR (pwdir) < 0 || (homedir = xgetwd ()) == NULL)
|
||||
if (CVS_CHDIR (pwdir) < 0 || (homedir = xgetwd ()) == NULL)
|
||||
homedir = pwdir;
|
||||
|
||||
if (restore_cwd (&cwd, NULL))
|
||||
@ -896,6 +911,7 @@ history_write (type, update_dir, revs, name, repository)
|
||||
error (1, errno, "cannot close history file: %s", fname);
|
||||
free (workdir);
|
||||
out:
|
||||
clear_history_lock ();
|
||||
free (fname);
|
||||
}
|
||||
|
||||
@ -910,7 +926,8 @@ save_user (name)
|
||||
if (user_count == user_max)
|
||||
{
|
||||
user_max = xsum (user_max, USER_INCREMENT);
|
||||
if (size_overflow_p (xtimes (user_max, sizeof (char *))))
|
||||
if (user_count == user_max
|
||||
|| size_overflow_p (xtimes (user_max, sizeof (char *))))
|
||||
{
|
||||
error (0, 0, "save_user: too many users");
|
||||
return;
|
||||
@ -944,7 +961,8 @@ save_file (dir, name, module)
|
||||
if (file_count == file_max)
|
||||
{
|
||||
file_max = xsum (file_max, FILE_INCREMENT);
|
||||
if (size_overflow_p (xtimes (file_max, sizeof (*fl))))
|
||||
if (file_count == file_max
|
||||
|| size_overflow_p (xtimes (file_max, sizeof (*fl))))
|
||||
{
|
||||
error (0, 0, "save_file: too many files");
|
||||
return;
|
||||
@ -952,7 +970,9 @@ save_file (dir, name, module)
|
||||
file_list = xrealloc (file_list, xtimes (file_max, sizeof (*fl)));
|
||||
}
|
||||
fl = &file_list[file_count++];
|
||||
fl->l_file = cp = xmalloc (strlen (dir) + strlen (name) + 2);
|
||||
fl->l_file = cp = xmalloc (dir ? strlen (dir) : 0
|
||||
+ name ? strlen (name) : 0
|
||||
+ 2);
|
||||
fl->l_module = module;
|
||||
|
||||
if (dir && *dir)
|
||||
@ -989,7 +1009,8 @@ save_module (module)
|
||||
if (mod_count == mod_max)
|
||||
{
|
||||
mod_max = xsum (mod_max, MODULE_INCREMENT);
|
||||
if (size_overflow_p (xtimes (mod_max, sizeof (char *))))
|
||||
if (mod_count == mod_max
|
||||
|| size_overflow_p (xtimes (mod_max, sizeof (char *))))
|
||||
{
|
||||
error (0, 0, "save_module: too many modules");
|
||||
return;
|
||||
@ -1142,9 +1163,13 @@ read_hrecs (fname)
|
||||
{
|
||||
struct hrec *old_head = hrec_head;
|
||||
|
||||
hrec_max += HREC_INCREMENT;
|
||||
hrec_head = xrealloc ((char *) hrec_head,
|
||||
hrec_max * sizeof (struct hrec));
|
||||
hrec_max = xsum (hrec_max, HREC_INCREMENT);
|
||||
if (hrec_count == hrec_max
|
||||
|| size_overflow_p (xtimes (hrec_max, sizeof (struct hrec))))
|
||||
error (1, 0, "Too many history records in history file.");
|
||||
|
||||
hrec_head = xrealloc (hrec_head,
|
||||
xtimes (hrec_max, sizeof (struct hrec)));
|
||||
if (last_since_tag)
|
||||
last_since_tag = hrec_head + (last_since_tag - old_head);
|
||||
if (last_backto)
|
||||
@ -1393,6 +1418,8 @@ select_hrec (hr)
|
||||
if (within (cp, cp2))
|
||||
{
|
||||
hr->mod = fl->l_module;
|
||||
if (cmpfile != NULL)
|
||||
free (cmpfile);
|
||||
break;
|
||||
}
|
||||
if (cmpfile != NULL)
|
||||
|
@ -1,6 +1,8 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and the Free Software Foundation
|
||||
* Copyright (C) 2003-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 2003-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License
|
||||
* as specified in the README file that comes with the CVS source
|
||||
|
@ -65,13 +65,11 @@ ign_setup ()
|
||||
ign_add (tmp, 0);
|
||||
free (tmp);
|
||||
|
||||
#ifdef CLIENT_SUPPORT
|
||||
/* The client handles another way, by (after it does its own ignore file
|
||||
processing, and only if !ign_inhibit_server), letting the server
|
||||
know about the files and letting it decide whether to ignore
|
||||
them based on CVSROOOTADM_IGNORE. */
|
||||
if (!current_parsed_root->isremote)
|
||||
#endif
|
||||
{
|
||||
char *file = xmalloc (strlen (current_parsed_root->directory) + sizeof (CVSROOTADM)
|
||||
+ sizeof (CVSROOTADM_IGNORE) + 10);
|
||||
@ -237,10 +235,25 @@ ign_add (ign, hold)
|
||||
free (ign_list[i]);
|
||||
ign_hold = -1;
|
||||
}
|
||||
s_ign_list = (char **) xmalloc (ign_count * sizeof (char *));
|
||||
for (i = 0; i < ign_count; i++)
|
||||
s_ign_list[i] = ign_list[i];
|
||||
s_ign_count = ign_count;
|
||||
if (s_ign_list)
|
||||
{
|
||||
/* Don't save the ignore list twice - if there are two
|
||||
* bangs in a local .cvsignore file then we don't want to
|
||||
* save the new list the first bang created.
|
||||
*
|
||||
* We still need to free the "new" ignore list.
|
||||
*/
|
||||
for (i = 0; i < ign_count; i++)
|
||||
free (ign_list[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Save the ignore list for later. */
|
||||
s_ign_list = xmalloc (ign_count * sizeof (char *));
|
||||
for (i = 0; i < ign_count; i++)
|
||||
s_ign_list[i] = ign_list[i];
|
||||
s_ign_count = ign_count;
|
||||
}
|
||||
ign_count = 1;
|
||||
/* Always ignore the "CVS" directory. */
|
||||
ign_list[0] = xstrdup ("CVS");
|
||||
@ -331,7 +344,7 @@ ignore_directory (name)
|
||||
i = dir_ign_current;
|
||||
while (i--)
|
||||
{
|
||||
if (strncmp (name, dir_ign_list[i], strlen (dir_ign_list[i])) == 0)
|
||||
if (strncmp (name, dir_ign_list[i], strlen (dir_ign_list[i])+1) == 0)
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 1992, Brian Berliner and Jeff Polk
|
||||
* Copyright (c) 1989-1992, Brian Berliner
|
||||
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
|
||||
*
|
||||
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
|
||||
* and others.
|
||||
*
|
||||
* Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
|
||||
* Portions Copyright (C) 1989-1992, Brian Berliner
|
||||
*
|
||||
* You may distribute under the terms of the GNU General Public License as
|
||||
* specified in the README file that comes with the CVS source distribution.
|
||||
@ -84,17 +89,14 @@ import (argc, argv)
|
||||
{
|
||||
case 'Q':
|
||||
case 'q':
|
||||
#ifdef SERVER_SUPPORT
|
||||
/* The CVS 1.5 client sends these options (in addition to
|
||||
Global_option requests), so we must ignore them. */
|
||||
if (!server_active)
|
||||
#endif
|
||||
error (1, 0,
|
||||
"-q or -Q must be specified before \"%s\"",
|
||||
cvs_cmd_name);
|
||||
break;
|
||||
case 'd':
|
||||
#ifdef SERVER_SUPPORT
|
||||
if (server_active)
|
||||
{
|
||||
/* CVS 1.10 and older clients will send this, but it
|
||||
@ -104,7 +106,6 @@ import (argc, argv)
|
||||
"warning: not setting the time of import from the file");
|
||||
error (0, 0, "due to client limitations");
|
||||
}
|
||||
#endif
|
||||
use_file_modtime = 1;
|
||||
break;
|
||||
case 'b':
|
||||
@ -117,6 +118,7 @@ import (argc, argv)
|
||||
#else
|
||||
use_editor = 0;
|
||||
#endif
|
||||
if (message) free (message);
|
||||
message = xstrdup(optarg);
|
||||
break;
|
||||
case 'I':
|
||||
@ -143,7 +145,6 @@ import (argc, argv)
|
||||
if (argc < 3)
|
||||
usage (import_usage);
|
||||
|
||||
#ifdef SERVER_SUPPORT
|
||||
/* This is for handling the Checkin-time request. It might seem a
|
||||
bit odd to enable the use_file_modtime code even in the case
|
||||
where Checkin-time was not sent for a particular file. The
|
||||
@ -155,7 +156,6 @@ import (argc, argv)
|
||||
|
||||
if (server_active)
|
||||
use_file_modtime = 1;
|
||||
#endif
|
||||
|
||||
/* Don't allow "CVS" as any directory in module path.
|
||||
*
|
||||
@ -212,11 +212,22 @@ import (argc, argv)
|
||||
* support branching to a single level, so the specified vendor branch
|
||||
* must only have two dots in it (like "1.1.1").
|
||||
*/
|
||||
for (cp = vbranch; *cp != '\0'; cp++)
|
||||
if (!isdigit ((unsigned char) *cp) && *cp != '.')
|
||||
error (1, 0, "%s is not a numeric branch", vbranch);
|
||||
if (numdots (vbranch) != 2)
|
||||
error (1, 0, "Only branches with two dots are supported: %s", vbranch);
|
||||
{
|
||||
regex_t pat;
|
||||
int ret = regcomp (&pat, "^[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*$",
|
||||
REG_EXTENDED);
|
||||
assert (!ret);
|
||||
if (regexec (&pat, vbranch, 0, NULL, 0))
|
||||
{
|
||||
error (1, 0,
|
||||
"Only numeric branch specifications with two dots are\n"
|
||||
"supported by import, not `%s'. For example: `1.1.1'.",
|
||||
vbranch);
|
||||
}
|
||||
regfree (&pat);
|
||||
}
|
||||
|
||||
/* Set vhead to the branch's parent. */
|
||||
vhead = xstrdup (vbranch);
|
||||
cp = strrchr (vhead, '.');
|
||||
*cp = '\0';
|
||||
@ -230,17 +241,10 @@ import (argc, argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (
|
||||
#ifdef SERVER_SUPPORT
|
||||
!server_active &&
|
||||
#endif
|
||||
use_editor)
|
||||
if (!server_active && use_editor)
|
||||
{
|
||||
do_editor ((char *) NULL, &message,
|
||||
#ifdef CLIENT_SUPPORT
|
||||
current_parsed_root->isremote ? (char *) NULL :
|
||||
#endif
|
||||
repository,
|
||||
current_parsed_root->isremote ? (char *) NULL : repository,
|
||||
(List *) NULL);
|
||||
}
|
||||
do_verify (&message, repository);
|
||||
@ -313,7 +317,8 @@ import (argc, argv)
|
||||
|
||||
/* Create the logfile that will be logged upon completion */
|
||||
if ((logfp = cvs_temp_file (&tmpfile)) == NULL)
|
||||
error (1, errno, "cannot create temporary file `%s'", tmpfile);
|
||||
error (1, errno, "cannot create temporary file `%s'",
|
||||
tmpfile ? tmpfile : "(null)");
|
||||
/* On systems where we can unlink an open file, do so, so it will go
|
||||
away no matter how we exit. FIXME-maybe: Should be checking for
|
||||
errors but I'm not sure which error(s) we get if we are on a system
|
||||
@ -434,6 +439,9 @@ import_descend (message, vtag, targc, targv)
|
||||
ign_add_file (CVSDOTIGNORE, 1);
|
||||
wrap_add_file (CVSDOTWRAPPER, 1);
|
||||
|
||||
if (!current_parsed_root->isremote)
|
||||
lock_dir_for_write (repository);
|
||||
|
||||
if ((dirp = CVS_OPENDIR (".")) == NULL)
|
||||
{
|
||||
error (0, errno, "cannot open directory");
|
||||
@ -446,13 +454,13 @@ import_descend (message, vtag, targc, targv)
|
||||
{
|
||||
if (strcmp (dp->d_name, ".") == 0 || strcmp (dp->d_name, "..") == 0)
|
||||
goto one_more_time_boys;
|
||||
#ifdef SERVER_SUPPORT
|
||||
|
||||
/* CVS directories are created in the temp directory by
|
||||
server.c because it doesn't special-case import. So
|
||||
don't print a message about them, regardless of -I!. */
|
||||
if (server_active && strcmp (dp->d_name, CVSADM) == 0)
|
||||
goto one_more_time_boys;
|
||||
#endif
|
||||
|
||||
if (ign_name (dp->d_name))
|
||||
{
|
||||
add_log ('I', dp->d_name);
|
||||
@ -516,6 +524,9 @@ import_descend (message, vtag, targc, targv)
|
||||
(void) CVS_CLOSEDIR (dirp);
|
||||
}
|
||||
|
||||
if (!current_parsed_root->isremote)
|
||||
Lock_Cleanup ();
|
||||
|
||||
if (dirlist != NULL)
|
||||
{
|
||||
Node *head, *p;
|
||||
@ -748,7 +759,7 @@ add_rev (message, rcs, vfile, vers)
|
||||
tocvsPath = wrap_tocvs_process_file (vfile);
|
||||
|
||||
status = RCS_checkin (rcs, tocvsPath == NULL ? vfile : tocvsPath,
|
||||
message, vbranch,
|
||||
message, vbranch, 0,
|
||||
(RCS_FLAGS_QUIET | RCS_FLAGS_KEEPFILE
|
||||
| (use_file_modtime ? RCS_FLAGS_MODTIME : 0)));
|
||||
ierrno = errno;
|
||||
@ -1584,11 +1595,7 @@ import_descend_dir (message, dir, vtag, targc, targv)
|
||||
repository = new;
|
||||
}
|
||||
|
||||
#ifdef CLIENT_SUPPORT
|
||||
if (!quiet && !current_parsed_root->isremote)
|
||||
#else
|
||||
if (!quiet)
|
||||
#endif
|
||||
error (0, 0, "Importing %s", repository);
|
||||
|
||||
if ( CVS_CHDIR (dir) < 0)
|
||||
@ -1599,11 +1606,7 @@ import_descend_dir (message, dir, vtag, targc, targv)
|
||||
err = 1;
|
||||
goto out;
|
||||
}
|
||||
#ifdef CLIENT_SUPPORT
|
||||
if (!current_parsed_root->isremote && !isdir (repository))
|
||||
#else
|
||||
if (!isdir (repository))
|
||||
#endif
|
||||
{
|
||||
rcs = xmalloc (strlen (repository) + sizeof (RCSEXT) + 5);
|
||||
(void) sprintf (rcs, "%s%s", repository, RCSEXT);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user