diff options
author | peter <peter@FreeBSD.org> | 2001-08-10 09:43:22 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-08-10 09:43:22 +0000 |
commit | c132709d1892a50d7915da8685face38ada32e4f (patch) | |
tree | 91ad9c2f4db08545ffa8883e62c900d4001de987 /contrib/cvs/doc | |
parent | e832f306d6c3f06dc0d801543a4302233e24e063 (diff) | |
parent | a037ef8f32200b26968e77344bcfb963251fa8b9 (diff) | |
download | FreeBSD-src-c132709d1892a50d7915da8685face38ada32e4f.zip FreeBSD-src-c132709d1892a50d7915da8685face38ada32e4f.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r81404,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/cvs/doc')
-rw-r--r-- | contrib/cvs/doc/CVSvn.texi.in | 1 | ||||
-rw-r--r-- | contrib/cvs/doc/ChangeLog | 145 | ||||
-rw-r--r-- | contrib/cvs/doc/Makefile.am | 157 | ||||
-rw-r--r-- | contrib/cvs/doc/Makefile.in | 601 | ||||
-rw-r--r-- | contrib/cvs/doc/cvs.texinfo | 357 | ||||
-rw-r--r-- | contrib/cvs/doc/cvsclient.texi | 12 |
6 files changed, 987 insertions, 286 deletions
diff --git a/contrib/cvs/doc/CVSvn.texi.in b/contrib/cvs/doc/CVSvn.texi.in new file mode 100644 index 0000000..9cc02ea --- /dev/null +++ b/contrib/cvs/doc/CVSvn.texi.in @@ -0,0 +1 @@ +@set CVSVN @VERSION@ diff --git a/contrib/cvs/doc/ChangeLog b/contrib/cvs/doc/ChangeLog index 6a9206d..eca8f91 100644 --- a/contrib/cvs/doc/ChangeLog +++ b/contrib/cvs/doc/ChangeLog @@ -1,3 +1,148 @@ +2001-04-25 Derek Price <dprice@collab.net> + + * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400. + * CVSvn.texi: Regenerated. + +2001-03-30 Larry Jones <larry.jones@sdrc.com> + + * cvsclient.texi (Dates, Requests): Add rannotate and rlog. + +2001-03-26 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (admin options): Fix typo: should be @pxref, not @xref. + +2001-03-26 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (admin options): Update description of -u option to + refer back to notify. + +2001-03-23 Derek Price <derek.price@openavenue.com> + + * Makefile.am (ps): Make 'ps' an alias for 'doc'. + (doc, pdf, ps, txt): declare as '.PHONY'. + + * Makefile.in: Regenerated. + +2001-03-23 Derek Price <derek.price@openavenue.com> + + * Makefile.am (MOSTLYCLEANFILES): Add cvs.cps & cvs.fns as a temporary + workaround for an Automake deficiency. + + * Makefile.in: Regenerated. + +2001-03-14 Derek Price <derek.price@openavenue.com> + + * Makefile.in: Regenerated + +2001-02-20 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (BUGS): There's only one company listed now, not two. + +2001-02-13 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (Password authentication server, First import): Use + @ref instead of @xref when not at the beginning of a sentence. + +2001-02-01 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (Connection): Add still more notes about common + pserver error messages. + +2001-01-18 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo (Quick reference to CVS commands): add index entry for + version subcommand + +2001-01-18 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (log options): Document new :: syntax for -r. + +2001-01-10 Derek Price <derek.price@openavenue.com> + + * Makefile.am (CVSvn.texi): specify $(srcdir) explicitly in target rule + so CVSvn.texi gets built properly for all makes. + (cvs_TEXINFOS): specify $(srcdir) explicitly for CVSvn.texi + (cvsclient_TEXINFOS): ditto + * Makefile.in: regenerated + +2000-12-26 Derek Price <derek.price@openavenue.com> + + * Makefile.in: update timestamp + * CVSvn.texi: ditto + +2000-12-26 Derek Price <derek.price@openavenue.com> + + * Makefile.am: new target for creation of CVSvn.texi + (EXTRA_DIST): add CVSvn.texi.in & CVSvn.texi + * Makefile.in: Regenerated + * CVSvn.texi: new file + * .cvsignore: remove CVSvn.texi since it is now included in dist + +2000-12-22 Derek Price <derek.price@openavenue.com> + + * Makefile.in: Regenerated + +2000-12-21 Derek Price <derek.price@openavenue.com> + + * cvs-paper.ps: Backout accidental regeneration. + +2000-12-21 Derek Price <derek.price@openavenue.com> + + * .cvsignore: Added *.pdf versions of the *.ps docs + * CVSvn.texi.in: Use configure to generate CVSvn.texi + * Makefile.am: New file needed by Automake + * Makefile.in: Regenerated + * cvs-paper.ps: Regenerated + * texinfo.tex: New file added to placate Automake. Apparently, its + inclusion is mandated by the GNU coding standards. + +2000-12-14 Derek Price <derek.price@openavenue.com> + Linus Tolke <linus@epact.se> + + * cvs.texinfo (Merging a branch): changed some references to "BRANCH" + to "BRANCHNAME" for consistancy. Add a warning about merging using a + single tagname reference with an xref to "Merging adds and removals" + for the long explanation + (Merging adds and removals): Add the long explanation of why merging + from a single tagname can be tricky + (update): Add a warning about merging using a single tagname reference + with an xref to "Merging adds and removals" for the long explanation + +2000-11-13 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo: use '@sc{cvs}' instead of 'CVS' in various locations + +2000-11-08 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo (settitle): stick a 'v' in front of the version number + to make it harder to confuse with chapter, section, and page numbers. + +2000-11-08 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo (settitle): add the version number to the title string + so that it is easier to find on HTML pages and the like. + +2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/> + + * cvs.texinfo (Variables): Document CVS_USER. + +2000-10-17 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo (Remote repositories): added a comment about specifying + a password in the repository name when performaing a checkout. + +2000-10-17 Derek Price <derek.price@openavenue.com> + + * cvs.texinfo (Remote repositories, password authenticated, GSSAPI + authenticated, Kerberos authenticated, Environment variables): + Documented CVSROOT spec change & CVS_CLIENT_PORT. + +2000-10-10 Larry Jones <larry.jones@sdrc.com> + + * cvs.texinfo (Connection): Add additional notes about common + pserver error messages. Remove information about unsetting $HOME + since CVS no longer pays any attention to it in server mode. + 2000-09-07 Larry Jones <larry.jones@sdrc.com> * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@ diff --git a/contrib/cvs/doc/Makefile.am b/contrib/cvs/doc/Makefile.am new file mode 100644 index 0000000..7821058 --- /dev/null +++ b/contrib/cvs/doc/Makefile.am @@ -0,0 +1,157 @@ +## Process this file with automake to produce Makefile.in +# Makefile for GNU CVS documentation (excluding man pages - see ../man). +# Copyright (C) 1986, 1988-1990, 2000 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. + +#DISTFILES = \ +# .cvsignore \ +# RCSFILES \ + +# AUTOMAKE_OPTIONS = no-texinfo.tex + +# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug +# that prevents make from searching VPATH for targets. There is some +# machinery in place in configure.in to work around this for some targets +# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS +# targets below is probably going to require work on Automake +info_TEXINFOS = cvs.texinfo cvsclient.texi +cvs_TEXINFOS = CVSvn.texi +cvsclient_TEXINFOS = CVSvn.texi + +POSTSCRIPTS = \ + cvs.ps \ + cvs-paper.ps \ + cvsclient.ps + +PDFS = \ + cvs-paper.pdf \ + cvs.pdf \ + cvsclient.pdf + +TXTS = \ + cvs.txt \ + cvsclient.txt + +EXTRA_DIST = \ + $(POSTSCRIPTS) \ + .cvsignore \ + CVSvn.texi.in \ + ChangeLog.fsf \ + RCSFILES \ + cvs-paper.ms \ + cvs.aux \ + cvsclient.aux + +# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency +MOSTLYCLEANFILES = \ + cvs.cps \ + cvs.fns + +CLEANFILES = \ + $(PDFS) \ + $(TXTS) + +MAINTAINERCLEANFILES = \ + cvs-paper.ps + +doc ps: $(POSTSCRIPTS) +.PHONY: doc ps + +pdf: $(PDFS) +.PHONY: pdf + +txt: $(TXTS) +.PHONY: txt + +dvi: cvs.dvi cvsclient.dvi +.PHONY: dvi + +cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS) +cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS) + +# 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 +# than the usual texinfo source. +cvs-paper.pdf: cvs-paper.ps + $(ROFF) -t -p -ms -Tps $< > $@-t + mv $@-t $@ + +cvs-paper.ps: cvs-paper.ms + $(PS2PDF) $< $@ + +SUFFIXES = .aux .txt .pdf + +# texinfo based targets automake neglects to include +.texinfo.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< +.txi.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< +.texi.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< + +.texinfo.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.txi.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.texi.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texinfo.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ +.txi.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ +.texi.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ + +## MAINTAINER Targets + +## CVSvn.texi ## +# - CVSvn.texi needs to be updated only once, since it depends on +# configure.in, not on the results of a 'configure' run. +# - It is guaranteed (with GNU Make) that when the version in configure.in +# is changed, acversion.m4 is built only after the new version number is +# propagated to the Makefile. (Libtool uses the same guarantee.) +# - Of the next three targets, only the next one or the following two should be +# enabled, not all three +if MAKE_TARGETS_IN_VPATH +# - This is the target for systems without the BSD VPATH bug in make or with +# $(srcdir) = $(builddir) +CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in + sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi + mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi +else +# - The next two targets are a workaround for the fact that some BSD makes +# don't look through VPATH for targets, but only for sources. +# - They should be disabled on systems without the bug and in environments +# where $(srcdir) = $(builddir) +CVSvn.texi: $(srcdir)/CVSvn.texi + # use cat so the time stamp gets set properly + cat $(srcdir)/CVSvn.texi >$@ +$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in + sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi + mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi +endif + +## realclean ## +# for backwards compatibility with the old makefiles +realclean: maintainer-clean +.PHONY: realclean diff --git a/contrib/cvs/doc/Makefile.in b/contrib/cvs/doc/Makefile.in index b5da032..a47f45d 100644 --- a/contrib/cvs/doc/Makefile.in +++ b/contrib/cvs/doc/Makefile.in @@ -1,6 +1,20 @@ -# Makefile for GNU CVS documentation. -# Do not use this makefile directly, but only from `../Makefile'. -# Copyright (C) 1986, 1988-1990 Free Software Foundation, Inc. +# Makefile.in generated automatically by automake 1.4e from Makefile.am. + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile for GNU CVS documentation (excluding man pages - see ../man). +# Copyright (C) 1986, 1988-1990, 2000 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 @@ -12,186 +26,465 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -SHELL = /bin/sh +#DISTFILES = \ +# .cvsignore \ +# RCSFILES \ + +# AUTOMAKE_OPTIONS = no-texinfo.tex + +# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug +# that prevents make from searching VPATH for targets. There is some +# machinery in place in configure.in to work around this for some targets +# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS +# targets below is probably going to require work on Automake + + +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ - prefix = @prefix@ exec_prefix = @exec_prefix@ +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. -DISTFILES = \ - .cvsignore ChangeLog ChangeLog.fsf Makefile.in \ +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AMTAR = @AMTAR@ +AWK = @AWK@ +CC = @CC@ +CSH = @CSH@ +DEPDIR = @DEPDIR@ +ETAGS = @ETAGS@ +ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@ +KRB4 = @KRB4@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PR = @PR@ +PS2PDF = @PS2PDF@ +RANLIB = @RANLIB@ +ROFF = @ROFF@ +STRIP = @STRIP@ +TEXI2DVI = @TEXI2DVI@ +VERSION = @VERSION@ +YACC = @YACC@ +_am_include = @_am_include@ +_am_quote = @_am_quote@ +includeopt = @includeopt@ +install_sh = @install_sh@ + +info_TEXINFOS = cvs.texinfo cvsclient.texi +cvs_TEXINFOS = CVSvn.texi +cvsclient_TEXINFOS = CVSvn.texi + +POSTSCRIPTS = \ + cvs.ps \ + cvs-paper.ps \ + cvsclient.ps + + +PDFS = \ + cvs-paper.pdf \ + cvs.pdf \ + cvsclient.pdf + + +TXTS = \ + cvs.txt \ + cvsclient.txt + + +EXTRA_DIST = \ + $(POSTSCRIPTS) \ + .cvsignore \ + CVSvn.texi.in \ + ChangeLog.fsf \ RCSFILES \ - cvs-paper.ms cvs-paper.ps \ - cvs.texinfo \ - cvsclient.texi + cvs-paper.ms \ + cvs.aux \ + cvsclient.aux + + +# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency +MOSTLYCLEANFILES = \ + cvs.cps \ + cvs.fns -OBJDIR_DISTFILES = cvs.ps cvs.info cvs.aux \ - cvsclient.ps cvsclient.info cvsclient.aux CVSvn.texi -# these are part of the texinfo distribution -MAKEINFO=makeinfo -TEXI2DVI = texi2dvi +CLEANFILES = \ + $(PDFS) \ + $(TXTS) -# where to find texinfo; -TEXIDIR=${gdbdir}/../texinfo -SET_TEXINPUTS = TEXINPUTS=.:$(srcdir):$$TEXINPUTS +MAINTAINERCLEANFILES = \ + cvs-paper.ps -# Don Knuth's TeX formatter -TEX = tex -# auxiliary program for sorting Texinfo indices -TEXINDEX = texindex +SUFFIXES = .aux .txt .pdf +EXEEXT = +OBJEXT = o +subdir = doc +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h +CONFIG_CLEAN_FILES = +CFLAGS = @CFLAGS@ +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 = +INFO_DEPS = cvs.info cvsclient.info +DVIS = cvs.dvi cvsclient.dvi +TEXINFOS = cvs.texinfo cvsclient.texi +DIST_COMMON = $(cvs_TEXINFOS) $(cvsclient_TEXINFOS) ChangeLog \ + Makefile.am Makefile.in texinfo.tex +all: all-am + +.SUFFIXES: +.SUFFIXES: .aux .txt .pdf .dvi .info .ps .texi .texinfo .txi + +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && \ + CONFIG_HEADERS= CONFIG_LINKS= \ + CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status + +cvs.info: cvs.texinfo $(cvs_TEXINFOS) +cvs.dvi: cvs.texinfo $(cvs_TEXINFOS) + +cvsclient.info: cvsclient.texi $(cvsclient_TEXINFOS) +cvsclient.dvi: cvsclient.texi $(cvsclient_TEXINFOS) + +.texi.info: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texi.dvi: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texi: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texinfo.info: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` + +.texinfo.dvi: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texinfo: + @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] + cd $(srcdir) \ + && $(MAKEINFO) `echo $< | sed 's,.*/,,'` DVIPS = dvips -DVIPSFLAGS = - -ROFF = groff - -# CYGNUS LOCAL: all does not depend upon info -all: -.PHONY: all - -# CYGNUS LOCAL: install does not depend on install-info -install: all -.PHONY: install - -doc: cvs.ps cvs-paper.ps cvsclient.ps - -info: cvs.info cvsclient.info - -cvs.info: cvs.texinfo CVSvn.texi - if [ ! -f ./CVSvn.texi ]; then \ - ln -s $(srcdir)/CVSvn.texi . || \ - ln $(srcdir)/CVSvn.texi . || \ - cp $(srcdir)/CVSvn.texi . ; else true; fi - $(MAKEINFO) $(srcdir)/cvs.texinfo -o cvs.info - -cvsclient.info: cvsclient.texi CVSvn.texi - if [ ! -f ./CVSvn.texi ]; then \ - ln -s $(srcdir)/CVSvn.texi . || \ - ln $(srcdir)/CVSvn.texi . || \ - cp $(srcdir)/CVSvn.texi . ; else true; fi - $(MAKEINFO) $(srcdir)/cvsclient.texi -o cvsclient.info - -# Version of the protocol suitable for emailing -cvsclient.txt: cvsclient.texi CVSvn.texi - if [ ! -f ./CVSvn.texi ]; then \ - ln -s $(srcdir)/CVSvn.texi . || \ - ln $(srcdir)/CVSvn.texi . || \ - cp $(srcdir)/CVSvn.texi . ; else true; fi - $(MAKEINFO) $(srcdir)/cvsclient.texi --no-headers -o cvsclient.txt - -# If the user gets a distribution (which contains *.info), unpacks -# it, and builds it in a seperate build dir, then *.info* are in srcdir. -# If the user builds *.info (e.g. after editing *.texi), then *.info* are -# in the build dir. -# (Note: don't solve this problem with "cd"; INSTALL_DATA might be a -# relative path to install-sh). -install-info: info installdirs - if test -f cvs.info ; then docdir=.; else docdir=$(srcdir);fi; \ - for i in $$docdir/*.info* ; do \ - $(INSTALL_DATA) $$i $(infodir)/`basename $$i` ; \ +.dvi.ps: + $(DVIPS) $< -o $@ + +uninstall-info-am: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \ + install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \ + done; \ + else :; fi + @$(NORMAL_UNINSTALL) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + (if cd $(DESTDIR)$(infodir); then \ + echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \ + rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \ + else :; fi); \ done -installdirs: - $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir) -.PHONY: installdirs +dist-info: $(INFO_DEPS) + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + d=$(srcdir); \ + for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done; \ + done -dvi: cvs.dvi cvsclient.dvi +mostlyclean-aminfo: + -rm -f cvs.aux cvs.cp cvs.cps cvs.dvi cvs.fn cvs.fns cvs.ky cvs.log cvs.pg \ + cvs.ps cvs.toc cvs.tp cvs.vr cvsclient.aux cvsclient.cp \ + cvsclient.dvi cvsclient.fn cvsclient.ky cvsclient.log \ + cvsclient.pg cvsclient.ps cvsclient.toc cvsclient.tp \ + cvsclient.vr + +maintainer-clean-aminfo: + cd $(srcdir) && \ + for i in $(INFO_DEPS); do \ + rm -f $$i; \ + if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ + rm -f $$i-[0-9]*; \ + fi; \ + done +tags: TAGS +TAGS: -CVSvn.texi: $(top_srcdir)/src/version.c - echo "@set CVSVN `sed < $(top_srcdir)/src/version.c \ - -e '/version_string/!d' \ - -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \ - -e q`" >CVSvn.new - mv CVSvn.new CVSvn.texi - -cvs.dvi cvs.aux: cvs.texinfo CVSvn.texi - if [ ! -f ./CVSvn.texi ]; then \ - ln -s $(srcdir)/CVSvn.texi . || \ - ln $(srcdir)/CVSvn.texi . || \ - cp $(srcdir)/CVSvn.texi . ; else true; fi - $(TEXI2DVI) $(srcdir)/cvs.texinfo - -cvsclient.dvi cvsclient.aux: cvsclient.texi CVSvn.texi - if [ ! -f ./CVSvn.texi ]; then \ - ln -s $(srcdir)/CVSvn.texi . || \ - ln $(srcdir)/CVSvn.texi . || \ - cp $(srcdir)/CVSvn.texi . ; else true; fi - $(TEXI2DVI) $(srcdir)/cvsclient.texi - rm -f cvsclient.?? cvsclient.log cvsclient.toc cvsclient.??s - -cvs.ps: cvs.dvi - $(DVIPS) $(DVIPSFLAGS) cvs.dvi -o cvs.ps -cvs-paper.ps: cvs-paper.ms - $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms > $@-t - mv $@-t $@ +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) -cvsclient.ps: cvsclient.dvi - $(DVIPS) $(DVIPSFLAGS) cvsclient.dvi -o cvsclient.ps +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pR $$d/$$file $(distdir) \ + || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="${top_distdir}" distdir="$(distdir)" \ + dist-info +check-am: all-am +check: check-am +all-am: Makefile $(INFO_DEPS) -tags: -.PHONY: tags +installdirs: + $(mkinstalldirs) $(DESTDIR)$(infodir) -TAGS: -.PHONY: TAGS - -ls: - @echo $(DISTFILES) -.PHONY: ls - -clean: - rm -f *.o core - rm -f cvs.cp cvs.fn cvs.ky cvs.pg cvs.tp cvs.vr - rm -f cvs.cps cvs.fns cvs.kys cvs.pgs cvs.tps cvs.vrs - rm -f cvs.aux cvs.dvi cvs.log cvs.toc - rm -f cvsclient.cp cvsclient.fn cvsclient.ky cvsclient.pg - rm -f cvsclient.tp cvsclient.vr cvsclient.cps cvsclient.fns - rm -f cvsclient.kys cvsclient.pgs cvsclient.tps cvsclient.vrs - rm -f cvsclient.aux cvsclient.dvi cvsclient.log cvsclient.toc - -.PHONY: clean - -distclean: clean - rm -f Makefile -.PHONY: distclean - -realclean: distclean - rm -f cvs.info* cvs.ps cvs-paper.ps cvsclient.info* cvsclient.ps -.PHONY: realclean +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -dist-dir: $(DISTFILES) $(OBJDIR_DISTFILES) - mkdir ${DISTDIR} - for i in ${DISTFILES}; do \ - ln $(srcdir)/$${i} ${DISTDIR}; \ +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f Makefile.in + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: $(DVIS) + +info: info-am + +info-am: $(INFO_DEPS) + +install-data-am: install-info-am + +install-exec-am: + +install-info: install-info-am + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(infodir) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + d=$(srcdir); \ + for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$d/$$ifile; then \ + echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ + else : ; fi; \ + done; \ done - ln ${OBJDIR_DISTFILES} ${DISTDIR} - if [ -f cvs.info-1 ]; \ - then ln -f cvs.info-* ${DISTDIR}; \ - else : Pacify Ultrix sh; \ - fi - if [ -f cvsclient.info-1 ]; \ - then ln -f cvsclient.info-* ${DISTDIR}; \ - else : Pacify Ultrix sh; \ - fi -.PHONY: dist-dir + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ + install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ + done; \ + else : ; fi +install-man: -subdir = doc -Makefile: ../config.status Makefile.in - cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-aminfo \ + maintainer-clean-generic + +mostlyclean: mostlyclean-am -#../config.status: ../configure -# cd .. ; $(SHELL) config.status --recheck +mostlyclean-am: mostlyclean-aminfo mostlyclean-generic + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-am + +.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-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-aminfo \ + maintainer-clean-generic mostlyclean mostlyclean-aminfo \ + mostlyclean-generic uninstall uninstall-am uninstall-info-am + + +doc ps: $(POSTSCRIPTS) +.PHONY: doc ps + +pdf: $(PDFS) +.PHONY: pdf + +txt: $(TXTS) +.PHONY: txt + +dvi: cvs.dvi cvsclient.dvi +.PHONY: dvi + +cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS) +cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS) + +# 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 +# than the usual texinfo source. +cvs-paper.pdf: cvs-paper.ps + $(ROFF) -t -p -ms -Tps $< > $@-t + mv $@-t $@ + +cvs-paper.ps: cvs-paper.ms + $(PS2PDF) $< $@ + +# texinfo based targets automake neglects to include +.texinfo.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< +.txi.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< +.texi.pdf: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $< + +.texinfo.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.txi.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< +.texi.aux: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texinfo.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ +.txi.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ +.texi.txt: + TEXINPUTS=$(srcdir):$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@ + +# - CVSvn.texi needs to be updated only once, since it depends on +# configure.in, not on the results of a 'configure' run. +# - It is guaranteed (with GNU Make) that when the version in configure.in +# is changed, acversion.m4 is built only after the new version number is +# propagated to the Makefile. (Libtool uses the same guarantee.) +# - Of the next three targets, only the next one or the following two should be +# enabled, not all three +# - This is the target for systems without the BSD VPATH bug in make or with +# $(srcdir) = $(builddir) +@MAKE_TARGETS_IN_VPATH_TRUE@CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in +@MAKE_TARGETS_IN_VPATH_TRUE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi +@MAKE_TARGETS_IN_VPATH_TRUE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi +# - The next two targets are a workaround for the fact that some BSD makes +# don't look through VPATH for targets, but only for sources. +# - They should be disabled on systems without the bug and in environments +# where $(srcdir) = $(builddir) +@MAKE_TARGETS_IN_VPATH_FALSE@CVSvn.texi: $(srcdir)/CVSvn.texi +@MAKE_TARGETS_IN_VPATH_FALSE@ # use cat so the time stamp gets set properly +@MAKE_TARGETS_IN_VPATH_FALSE@ cat $(srcdir)/CVSvn.texi >$@ +@MAKE_TARGETS_IN_VPATH_FALSE@$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in +@MAKE_TARGETS_IN_VPATH_FALSE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi +@MAKE_TARGETS_IN_VPATH_FALSE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi + +# for backwards compatibility with the old makefiles +realclean: maintainer-clean +.PHONY: realclean -#../configure: ../configure.in -# cd $(top_srcdir) ; autoconf +# 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. +.NOEXPORT: diff --git a/contrib/cvs/doc/cvs.texinfo b/contrib/cvs/doc/cvs.texinfo index 8d5de53..82ccea0 100644 --- a/contrib/cvs/doc/cvs.texinfo +++ b/contrib/cvs/doc/cvs.texinfo @@ -39,7 +39,7 @@ @setfilename cvs.info @include CVSvn.texi -@settitle CVS---Concurrent Versions System +@settitle CVS---Concurrent Versions System v@value{CVSVN} @setchapternewpage odd @c -- TODO list: @@ -1100,13 +1100,13 @@ particular program to run with the ability to perform operations which the caller of the program could not. For example, the set user ID (setuid) or set group ID (setgid) features of unix or the installed image -feature of VMS. CVS was not written to use such -features and therefore attempting to install CVS in +feature of VMS. @sc{cvs} was not written to use such +features and therefore attempting to install @sc{cvs} in this fashion will provide protection against only accidental lapses; anyone who is trying to circumvent the measure will be able to do so, and depending on how you have set it up may gain access to more than just -CVS. You may wish to instead consider pserver. It +@sc{cvs}. You may wish to instead consider pserver. It shares some of the same attributes, in terms of possibly providing a false sense of security or opening security holes wider than the ones you are trying to @@ -1126,14 +1126,14 @@ presumably future operating systems in this family. Some of the following might apply to OS/2 but I'm not sure). -If you are using local CVS and the repository is on a +If you are using local @sc{cvs} and the repository is on a networked file system which is served by the Samba SMB server, some people have reported problems with permissions. Enabling WRITE=YES in the samba configuration is said to fix/workaround it. Disclaimer: I haven't investigated enough to know the implications of enabling that option, nor do I know -whether there is something which CVS could be doing +whether there is something which @sc{cvs} could be doing differently in order to avoid the problem. If you find something out, please let us know as described in @ref{BUGS}. @@ -1205,9 +1205,9 @@ attributes for that file. and @var{filename} empty, to specify default attributes to be used for newly added files. -Other @var{ent-type} are reserved for future expansion. CVS 1.9 and older +Other @var{ent-type} are reserved for future expansion. @sc{cvs} 1.9 and older will delete them any time it writes file attributes. -CVS 1.10 and later will preserve them. +@sc{cvs} 1.10 and later will preserve them. Note that the order of the lines is not significant; a program writing the fileattr file may @@ -1220,7 +1220,7 @@ don't handle a NUL character in any of the fields, but implementations are encouraged to allow it. By convention, @var{attrname} starting with @samp{_} is for an attribute given -special meaning by CVS; other @var{attrname}s are for user-defined attributes +special meaning by @sc{cvs}; other @var{attrname}s are for user-defined attributes (or will be, once implementations start supporting user-defined attributes). Builtin attributes: @@ -1277,10 +1277,10 @@ there must be a single tab character there and no spaces. @cindex #cvs.wfl, technical details @cindex #cvs.lock, technical details @cindex Locks, cvs, technical details -For an introduction to CVS locks focusing on +For an introduction to @sc{cvs} locks focusing on user-visible behavior, see @ref{Concurrency}. The following section is aimed at people who are writing -tools which want to access a CVS repository without +tools which want to access a @sc{cvs} repository without interfering with other tools acessing the same repository. If you find yourself confused by concepts described here, like @dfn{read lock}, @dfn{write lock}, @@ -1291,8 +1291,8 @@ operating systems or databases. Any file in the repository with a name starting with @file{#cvs.rfl.} is a read lock. Any file in the repository with a name starting with -@file{#cvs.wfl} is a write lock. Old versions of CVS -(before CVS 1.5) also created files with names starting +@file{#cvs.wfl} is a write lock. Old versions of @sc{cvs} +(before @sc{cvs} 1.5) also created files with names starting with @file{#cvs.tfl}, but they are not discussed here. The directory @file{#cvs.lock} serves as a master lock. That is, one must obtain this lock first before @@ -1436,7 +1436,7 @@ convention for the system in question. This means that working directories are not portable between systems with differing conventions for storing text files. This is intentional, on the theory that the files being -managed by CVS probably will not be portable between +managed by @sc{cvs} probably will not be portable between such systems either. @table @file @@ -1861,7 +1861,7 @@ another system, the size of those files is the approximate initial size of your repository, or if you are starting without any version history, a rule of thumb is to allow for the server approximately three -times the size of the code to be under CVS for the +times the size of the code to be under @sc{cvs} for the repository (you will eventually outgrow this, but not for a while). On the machines on which the developers will be working, you'll want disk space for @@ -1991,6 +1991,13 @@ isn't worth it. @cindex Remote repositories @cindex Client/Server Operation @cindex Server, CVS +@cindex Remote repositories, port specification +@cindex Repositories, remote, port specification +@cindex Client/Server Operation, port specification +@cindex pserver (client/server connection method), port specification +@cindex kserver (client/server connection method), port specification +@cindex gserver (client/server connection method), port specification +@cindex port, specifying for remote repositories Your working copy of the sources can be on a different machine than the repository. Using @sc{cvs} @@ -2004,9 +2011,14 @@ repository is just like using a local one, except that the format of the repository name is: @example -:@var{method}:@var{user}@@@var{hostname}:/path/to/repository +:@var{method}:[[@var{user}][:@var{password}]@@]@var{hostname}[:[@var{port}]]/path/to/repository @end example +Specifying a password in the repository name is not recommended during +checkout, since this will cause @sc{cvs} to store a cleartext copy of the +password in each created directory. @code{cvs login} first instead +(@pxref{Password authentication client}). + The details of exactly what needs to be set up depend on how you are connecting to the server. @@ -2134,7 +2146,7 @@ For information on disk space requirements, see @subsection Connecting with rsh @cindex rsh -CVS uses the @file{rsh} protocol to perform these +@sc{cvs} uses the @file{rsh} protocol to perform these operations, so the remote user host needs to have a @file{.rhosts} file which grants access to the local user. @@ -2181,7 +2193,7 @@ There is no need to edit @file{inetd.conf} or start a @cindex rsh replacements (Kerberized, SSH, &c) There are two access methods that you use in @code{CVSROOT} for rsh. @code{:server:} specifies an internal rsh -client, which is supported only by some CVS ports. +client, which is supported only by some @sc{cvs} ports. @code{:ext:} specifies an external rsh program. By default this is @code{rsh} but you may set the @code{CVS_RSH} environment variable to invoke another @@ -2191,7 +2203,7 @@ something different). It must be a program which can transmit data to and from the server without modifying it; for example the Windows NT @code{rsh} is not suitable since it by default translates between CRLF -and LF. The OS/2 CVS port has a hack to pass @samp{-b} +and LF. The OS/2 @sc{cvs} port has a hack to pass @samp{-b} to @code{rsh} to get around this, but since this could potentially cause problems for programs other than the standard @code{rsh}, it may change in the future. If @@ -2214,7 +2226,7 @@ the module @file{foo} in the repository @file{faun.example.org}, you are ready to go: @example -cvs -d :ext:bach@@faun.example.org:/usr/local/cvsroot checkout foo +cvs -d :ext:bach@@faun.example.org/usr/local/cvsroot checkout foo @end example (The @file{bach@@} can be omitted if the username is @@ -2253,6 +2265,13 @@ permissions on the @file{$CVSROOT} and authentication security}, for more details. @cindex pserver (subcommand) +@cindex Remote repositories, port specification +@cindex Repositories, remote, port specification +@cindex Client/Server Operation, port specification +@cindex pserver (client/server connection method), port specification +@cindex kserver (client/server connection method), port specification +@cindex gserver (client/server connection method), port specification +@cindex port, specifying for remote repositories @cindex Password server, setting up @cindex Authenticating server, setting up @c FIXME: this isn't quite right regarding port @@ -2264,7 +2283,9 @@ command @code{cvs pserver} when it receives a connection on the right port. By default, the port number is 2401; it would be different if your client were compiled with @code{CVS_AUTH_PORT} defined to -something else, though. +something else, though. This can also be sepcified in the CVSROOT variable +(@pxref{Remote repositories}) or overridden with the CVS_CLIENT_PORT +environment variable (@pxref{Environment variables}). If your @code{inetd} allows raw port numbers in @file{/etc/inetd.conf}, then the following (all on a @@ -2342,7 +2363,7 @@ The first line in the example will grant access to any including an empty password. (This is typical for sites granting anonymous read-only access; for information on how to do the "read-only" part, see -@xref{Read-only access}.) +@ref{Read-only access}.) The second and third lines will grant access to @code{bach} and @code{spwang} if they supply their @@ -2365,7 +2386,7 @@ repository, and give each developer their own line in the @file{$CVSROOT/CVSROOT/passwd} file. The @sc{cvs} username on each line would be different, but the system username would be the same. The reason to have -different @sc{cvs} usernames is that CVS will log their +different @sc{cvs} usernames is that @sc{cvs} will log their actions under those names: when @code{melissa} commits a change to a project, the checkin is recorded in the project's history under the name @code{melissa}, not @@ -2401,7 +2422,7 @@ password, including the empty string. However, the colon after the @sc{cvs} username is always necessary, even if the password is empty. -CVS can also fall back to use system authentication. +@sc{cvs} can also fall back to use system authentication. When authenticating a password, the server first checks for the user in the @file{$CVSROOT/CVSROOT/passwd} file. If it finds the user, it will use that entry for @@ -2430,7 +2451,7 @@ rather than via @sc{cvs}. This is because of the possible security risks of having the @file{passwd} file checked out to people's working copies. If you do want to include the @file{passwd} file in checkouts of -@file{$CVSROOT/CVSROOT}, see @xref{checkoutlist}. +@file{$CVSROOT/CVSROOT}, see @ref{checkoutlist}. @c We might also suggest using the @code{htpasswd} command @c from freely available web servers as well, but that @@ -2448,32 +2469,39 @@ want to include the @file{passwd} file in checkouts of @cindex :pserver:, setting up To run a @sc{cvs} command on a remote repository via the password-authenticating server, one specifies the -@code{pserver} protocol, username, repository host, and -path to the repository. For example: +@code{pserver} protocol, optional username, repository host, an +optional port number, and path to the repository. For example: @example -cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot checkout someproj +cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj @end example or @example -CVSROOT=:pserver:bach@@faun.example.org:/usr/local/cvsroot +CVSROOT=:pserver:bach@@faun.example.org:2401/usr/local/cvsroot cvs checkout someproj @end example However, unless you're connecting to a public-access repository (i.e., one where that username doesn't -require a password), you'll need to @dfn{log in} first. -Logging in verifies your password with the repository. +require a password), you'll need to supply a password or @dfn{log in} first. +Logging in verifies your password with the repository and stores it in a file. It's done with the @code{login} command, which will -prompt you interactively for the password: +prompt you interactively for the password if you didn't supply one as part of +@var{$CVSROOT}: @example cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot login CVS password: @end example +or + +@example +cvs -d :pserver:bach:p4ss30rd@@faun.example.org:/usr/local/cvsroot login +@end example + After you enter the password, @sc{cvs} verifies it with the server. If the verification succeeds, then that combination of username, host, repository, and password @@ -2683,8 +2711,8 @@ request encryption. You need to edit @file{inetd.conf} on the server machine to run @code{cvs kserver}. The client uses port 1999 by default; if you want to use another port -specify it in the @code{CVS_CLIENT_PORT} environment -variable on the client. +specify it in the @code{CVSROOT} (@pxref{Remote repositories}) +or the @code{CVS_CLIENT_PORT} environment variable on the client. @cindex kinit When you want to use @sc{cvs}, get a ticket in the @@ -3348,7 +3376,7 @@ based on information such as the name of the program and the version number of the release. For example, one might take the name of the program, immediately followed by the version number with @samp{.} changed to -@samp{-}, so that CVS 1.9 would be tagged with the name +@samp{-}, so that @sc{cvs} 1.9 would be tagged with the name @code{cvs1-9}. If you choose a consistent convention, then you won't constantly be guessing whether a tag is @code{cvs-1-9} or @code{cvs1_9} or what. You might @@ -3748,7 +3776,7 @@ discussion see @ref{Merging two revisions}. @cindex Changes, copying between branches @cindex Modifications, copying between branches -CVS allows you to isolate changes onto a separate +@sc{cvs} allows you to isolate changes onto a separate line of development, known as a @dfn{branch}. When you change files on a branch, those changes do not appear on the main trunk or other branches. @@ -4124,8 +4152,8 @@ no way to see how the tag was assigned yesterday). @cindex -j (merging branches) You can merge changes made on a branch into your working copy by giving -the @samp{-j @var{branch}} flag to the @code{update} command. With one -@samp{-j @var{branch}} option it merges the changes made between the +the @samp{-j @var{branchname}} flag to the @code{update} subcommand. With one +@samp{-j @var{branchname}} option it merges the changes made between the point where the branch forked and newest revision on that branch (into your working copy). @@ -4172,7 +4200,7 @@ If your source files contain keywords (@pxref{Keyword substitution}), you might be getting more conflicts than strictly necessary. See @ref{Merging and keywords}, for information on how to avoid this. -The @code{checkout} command also supports the @samp{-j @var{branch}} flag. The +The @code{checkout} command also supports the @samp{-j @var{branchname}} flag. The same effect as above could be achieved with this: @example @@ -4180,6 +4208,9 @@ $ cvs checkout -j R1fix mod $ cvs commit -m "Included R1fix" @end example +It should be noted that @code{update -j @var{tagname}} will also work but may +not produce the desired result. @xref{Merging adds and removals}, for more. + @node Merging more than once @section Merging from a branch several times @@ -4326,6 +4357,15 @@ After these commands are executed and a @samp{cvs commit} is done, file @file{a} will be removed and file @file{d} added in the main branch. @c (which was determined by trying it) +Note that using a single static tag (@samp{-j @var{tagname}}) +rather than a dynamic tag (@samp{-j @var{branchname}}) to merge +changes from a branch will usually not remove files which were removed on the +branch since @sc{cvs} does not automatically add static tags to dead revisions. +The exception to this rule occurs when +a static tag has been attached to a dead revision manually. Use the branch tag +to merge all changes from the branch or use two static tags as merge endpoints +to be sure that all intended changes are propogated in the merge. + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @node Merging and keywords @section Merging and keywords @@ -4726,7 +4766,7 @@ When you commit the removal of the file, @sc{cvs} records the fact that the file no longer exists. It is possible for a file to exist on only some branches and not on others, or to re-add another file with the same -name later. CVS will correctly create or not create +name later. @sc{cvs} will correctly create or not create the file, based on the @samp{-r} and @samp{-D} options specified to @code{checkout} or @code{update}. @@ -5648,7 +5688,7 @@ details, assuming "cvs watch lock" and CVS/Watched file? Or try to fit this into CVS/Entries somehow? Cases: (1) file is checked out (unreserved or with watch on) by old -version of CVS, now we do something with new one, (2) file is checked +version of @sc{cvs}, now we do something with new one, (2) file is checked out by new version, now we do something with old one. Remote protocol would have a "Watched" analogous to "Mode". Of course @@ -6235,12 +6275,12 @@ certain files are to be watched. @cindex Read-only files, and watches Specify that developers should run @code{cvs edit} -before editing @var{files}. CVS will create working +before editing @var{files}. @sc{cvs} will create working copies of @var{files} read-only, to remind developers to run the @code{cvs edit} command before working on them. -If @var{files} includes the name of a directory, CVS +If @var{files} includes the name of a directory, @sc{cvs} arranges to watch all files added to the corresponding repository directory, and sets a default for files added in the future; this allows the user to set @@ -6261,7 +6301,7 @@ Do not create @var{files} read-only on checkout; thus, developers will not be reminded to use @code{cvs edit} and @code{cvs unedit}. @ignore -CVS will check out @var{files} +@sc{cvs} will check out @var{files} read-write as usual, unless other permissions override due to the @code{PreservePermissions} option being enabled in the @file{config} administrative file @@ -6289,7 +6329,7 @@ command. Add the current user to the list of people to receive notification of work done on @var{files}. -The @code{-a} option specifies what kinds of events CVS should notify +The @code{-a} option specifies what kinds of events @sc{cvs} should notify the user about. @var{action} is one of the following: @table @code @@ -6420,13 +6460,13 @@ source}), an operation which those systems call a @cindex edit (subcommand) @deffn Command {cvs edit} [options] files @dots{} -Prepare to edit the working files @var{files}. CVS makes the +Prepare to edit the working files @var{files}. @sc{cvs} makes the @var{files} read-write, and notifies users who have requested @code{edit} notification for any of @var{files}. The @code{cvs edit} command accepts the same @var{options} as the @code{cvs watch add} command, and establishes a temporary watch for the -user on @var{files}; CVS will remove the watch when @var{files} are +user on @var{files}; @sc{cvs} will remove the watch when @var{files} are @code{unedit}ed or @code{commit}ted. If the user does not wish to receive notifications, she should specify @code{-a none}. @@ -6436,10 +6476,10 @@ watch} commands. @ignore @strong{Caution:} If the @code{PreservePermissions} option is enabled in the repository (@pxref{config}), -CVS will not change the permissions on any of the +@sc{cvs} will not change the permissions on any of the @var{files}. The reason for this change is to ensure that using @samp{cvs edit} does not interfere with the -ability to store file permissions in the CVS +ability to store file permissions in the @sc{cvs} repository. @end ignore @@ -6458,9 +6498,9 @@ the @code{cvs unedit} command. @deffn Command {cvs unedit} [@code{-lR}] files @dots{} Abandon work on the working files @var{files}, and revert them to the -repository versions on which they are based. CVS makes those +repository versions on which they are based. @sc{cvs} makes those @var{files} read-only for which users have requested notification using -@code{cvs watch on}. CVS notifies users who have requested @code{unedit} +@code{cvs watch on}. @sc{cvs} notifies users who have requested @code{unedit} notification for any of @var{files}. The @var{files} and options are processed as for the @@ -6666,7 +6706,7 @@ But as soon as you export the files from your development environment it becomes harder to identify which revisions they are. -CVS can use a mechanism known as @dfn{keyword +@sc{cvs} can use a mechanism known as @dfn{keyword substitution} (or @dfn{keyword expansion}) to help identifying the files. Embedded strings of the form @code{$@var{keyword}$} and @@ -7046,7 +7086,7 @@ command to track third-party sources, the @dfn{vendor tag} and @dfn{release tags} are useful. The @dfn{vendor tag} is a symbolic name for the branch (which is always 1.1.1, unless you use the @samp{-b -@var{branch}} flag---@xref{Multiple vendor branches}.). The +@var{branch}} flag---see @ref{Multiple vendor branches}.). The @dfn{release tags} are symbolic names for a particular release, such as @samp{FSF_0_04}. @@ -7189,7 +7229,7 @@ a project where many different people and teams are modifying the software. There are a variety of ways to handle this, but in some cases you have a bunch of source trees lying around and what you want to do more -than anything else is just to all put them in CVS so +than anything else is just to all put them in @sc{cvs} so that you at least have them in one place. For handling situations in which there may be more than @@ -7210,7 +7250,7 @@ $ cvs import -b 1.1.3 dir BLUE BLUE_1-5 @end example Note that if your vendor tag does not match your -@samp{-b} option, CVS will not detect this case! For +@samp{-b} option, @sc{cvs} will not detect this case! For example, @example @@ -7221,7 +7261,7 @@ $ cvs import -b 1.1.3 dir RED RED_1-0 Be careful; this kind of mismatch is sure to sow confusion or worse. I can't think of a useful purpose for the ability to specify a mismatch here, but if you -discover such a use, don't. CVS is likely to make this +discover such a use, don't. @sc{cvs} is likely to make this an error in some future release. @c Probably should say more about the semantics of @@ -7338,20 +7378,20 @@ is Odin (see @cindex Hard links @cindex Symbolic links -In normal circumstances, CVS works only with regular +In normal circumstances, @sc{cvs} works only with regular files. Every file in a project is assumed to be persistent; it must be possible to open, read and close -them; and so on. CVS also ignores file permissions and +them; and so on. @sc{cvs} also ignores file permissions and ownerships, leaving such issues to be resolved by the developer at installation time. In other words, it is not possible to "check in" a device into a repository; -if the device file cannot be opened, CVS will refuse to +if the device file cannot be opened, @sc{cvs} will refuse to handle it. Files also lose their ownerships and permissions during repository transactions. @ignore If the configuration variable @code{PreservePermissions} -(@pxref{config}) is set in the repository, CVS will +(@pxref{config}) is set in the repository, @sc{cvs} will save the following file characteristics in the repository: @@ -7364,30 +7404,30 @@ repository: @end itemize Using the @code{PreservePermissions} option affects the -behavior of CVS in several ways. First, some of the -new operations supported by CVS are not accessible to +behavior of @sc{cvs} in several ways. First, some of the +new operations supported by @sc{cvs} are not accessible to all users. In particular, file ownership and special file characteristics may only be changed by the superuser. When the @code{PreservePermissions} configuration variable is set, therefore, users will -have to be `root' in order to perform CVS operations. +have to be `root' in order to perform @sc{cvs} operations. -When @code{PreservePermissions} is in use, some CVS +When @code{PreservePermissions} is in use, some @sc{cvs} operations (such as @samp{cvs status}) will not recognize a file's hard link structure, and so will emit spurious warnings about mismatching hard links. -The reason is that CVS's internal structure does not +The reason is that @sc{cvs}'s internal structure does not make it easy for these operations to collect all the necessary data about hard links, so they check for file conflicts with inaccurate data. -A more subtle difference is that CVS considers a file +A more subtle difference is that @sc{cvs} considers a file to have changed only if its contents have changed (specifically, if the modification time of the working file does not match that of the repository's file). Therefore, if only the permissions, ownership or hard linkage have changed, or if a device's major or minor -numbers have changed, CVS will not notice. In order to +numbers have changed, @sc{cvs} will not notice. In order to commit such a change to the repository, you must force the commit with @samp{cvs commit -f}. This also means that if a file's permissions have changed and the @@ -7395,7 +7435,7 @@ repository file is newer than the working copy, performing @samp{cvs update} will silently change the permissions on the working copy. -Changing hard links in a CVS repository is particularly +Changing hard links in a @sc{cvs} repository is particularly delicate. Suppose that file @file{foo} is linked to file @file{old}, but is later relinked to file @file{new}. You can wind up in the unusual situation @@ -7416,7 +7456,7 @@ It is worth noting that only regular files may be merged, for reasons that hopefully are obvious. If @samp{cvs update} or @samp{cvs checkout -j} attempts to merge a symbolic link with a regular file, or two -device files for different kinds of devices, CVS will +device files for different kinds of devices, @sc{cvs} will report a conflict and refuse to perform the merge. At the same time, @samp{cvs diff} will not report any differences between these files, since no meaningful @@ -7522,7 +7562,7 @@ the documentation instead. @appendixsec CVS's exit status @cindex Exit status, of CVS -CVS can indicate to the calling environment whether it +@sc{cvs} can indicate to the calling environment whether it succeeded or failed by setting its @dfn{exit status}. The exact way of testing the exit status will vary from one operating system to another. For example in a unix @@ -7530,7 +7570,7 @@ shell script the @samp{$?} variable will be 0 if the last command returned a successful exit status, or greater than 0 if the exit status indicated failure. -If CVS is successful, it returns a successful status; +If @sc{cvs} is successful, it returns a successful status; if there is an error, it prints an error message and returns a failure status. The one exception to this is the @code{cvs diff} command. It will return a @@ -7917,7 +7957,7 @@ are: @c bizarre and it has lots of gratuitous multiple ways @c to specify the same thing. -There are a lot more ISO8601 date formats, and CVS +There are a lot more ISO8601 date formats, and @sc{cvs} accepts many of them, but you probably don't want to hear the @emph{whole} long story :-). @@ -8320,7 +8360,7 @@ If you are short on disc this option might help you. But think twice before using it---there is no way short of restoring the latest backup to undo this command! If you delete different revisions than you planned, -either due to carelessness or (heaven forbid) a CVS +either due to carelessness or (heaven forbid) a @sc{cvs} bug, there is no opportunity to correct the error before the revisions are deleted. It probably would be a good idea to experiment on a copy of the repository @@ -8331,7 +8371,7 @@ Specify @var{range} in one of the following ways: @table @code @item @var{rev1}::@var{rev2} Collapse all revisions between rev1 and rev2, so that -CVS only stores the differences associated with going +@sc{cvs} only stores the differences associated with going from rev1 to rev2, not intermediate steps. For example, after @samp{-o 1.3::1.5} one can retrieve revision 1.3, revision 1.5, or the differences to get @@ -8472,16 +8512,11 @@ using this option with @sc{cvs}. Unlock the revision with number @var{rev}. If a branch is given, unlock the latest revision on that branch. If @var{rev} is omitted, remove the latest lock held by the caller. -Normally, only the locker of a revision may unlock it. -Somebody else unlocking a revision breaks the lock. -This causes a mail message to be sent to the original -locker. The message contains a commentary solicited -from the breaker. The commentary is terminated by -end-of-file or by a line containing @code{.} by itself. +Normally, only the locker of a revision may unlock it; +somebody else unlocking a revision breaks the lock. +This causes the original locker to be sent a @code{commit} +notification (@pxref{Getting Notified}). There can be no space between @samp{-u} and its argument. -@c In the future "send mail" probably will go via the -@c CVSROOT/notify mechanism. But for now it means -@c whatever it means to "rcs". @item -V@var{n} In previous versions of @sc{cvs}, this option meant to @@ -8664,7 +8699,7 @@ There is an important exception, however. It is very convenient when checking out a single item to have the output appear in a directory that doesn't contain empty intermediate directories. In this case @emph{only}, -CVS tries to ``shorten'' pathnames to avoid those empty +@sc{cvs} tries to ``shorten'' pathnames to avoid those empty directories. For example, given a module @samp{foo} that contains @@ -9712,19 +9747,31 @@ range formats: Revisions @var{rev1} to @var{rev2} (which must be on the same branch). +@item @var{rev1}::@var{rev2} +Revisions between, but not including, @var{rev1} and @var{rev2}. + @item :@var{rev} Revisions from the beginning of the branch up to and including @var{rev}. +@item ::@var{rev} +Revisions from the beginning of the branch up to, +but not including, @var{rev}. + @item @var{rev}: Revisions starting with @var{rev} to the end of the branch containing @var{rev}. +@item @var{rev}: +Revisions starting just after @var{rev} to the end of the +branch containing @var{rev}. + @item @var{branch} An argument that is a branch means all revisions on that branch. @item @var{branch1}:@var{branch2} +@itemx @var{branch1}::@var{branch2} A range of branches means all revisions on the branches in that range. @@ -9862,7 +9909,7 @@ you should probably not use @samp{-u}. Expand keywords according to the rules current in @sc{rcs} version @var{vn} (the expansion format changed with @sc{rcs} version 5). Note that this option is no -longer accepted. CVS will always expand keywords the +longer accepted. @sc{cvs} will always expand keywords the way that @sc{rcs} version 5 does. @end table @@ -10155,6 +10202,11 @@ ancestor revision is the common ancestor of the revision which the working directory is based on, and the revision specified in the @samp{-j} option. +Note that using a single @samp{-j @var{tagname}} option rather than +@samp{-j @var{branchname}} to merge changes from a branch will +often not remove files which were removed on the branch. +@xref{Merging adds and removals}, for more. + In addition, each @samp{-j} option can contain an optional date specification which, when used with branches, can limit the chosen revision to one within a specific @@ -10624,7 +10676,7 @@ behavior}. @end table @item export [@var{options}] @var{modules}@dots{} -Export files from CVS. See @ref{export}. +Export files from @sc{cvs}. See @ref{export}. @table @code @item -D @var{date} @@ -10725,7 +10777,7 @@ options}. @end table @item import [@var{options}] @var{repository} @var{vendor-tag} @var{release-tags}@dots{} -Import files into CVS, using vendor branches. See +Import files into @sc{cvs}, using vendor branches. See @ref{import}. @table @code @@ -10754,7 +10806,7 @@ More wrappers. See @ref{import options}. @end table @item init -Create a CVS repository if it doesn't exist. See +Create a @sc{cvs} repository if it doesn't exist. See @ref{Creating a repository}. @item log [@var{options}] [@var{files}@dots{}] @@ -11034,6 +11086,7 @@ More wrappers. See @ref{import options}. @end table @item version +@cindex version (subcommand) Display the version of @sc{cvs} being used. If the repository is remote, display both the client and server versions. @@ -11457,7 +11510,7 @@ For checkout, rtag, and export, the program is server-based, and as such the following applies:- If using remote access methods (pserver, ext, etc.), -CVS will execute this program on the server from a temporary +@sc{cvs} will execute this program on the server from a temporary directory. The path is searched for this program. If using ``local access'' (on a local or remote NFS filesystem, i.e. @@ -11527,7 +11580,7 @@ means that @code{cvs update} will refuse to merge files, as it also does for files specified as binary with @samp{-kb} (but if the file is specified as binary, there is no need to specify @samp{-m 'COPY'}). -CVS will provide the user with the +@sc{cvs} will provide the user with the two versions of the files, and require the user using mechanisms outside @sc{cvs}, to insert any necessary changes. @strong{WARNING}: do not use @code{COPY} with @@ -11608,11 +11661,11 @@ result of this filter will be a file in the users directory that they can work on as they normally would. Note that the @samp{-t}/@samp{-f} features do not -conveniently handle one portion of CVS's operation: -determining when files are modified. CVS will still +conveniently handle one portion of @sc{cvs}'s operation: +determining when files are modified. @sc{cvs} will still want a file (or directory) to exist, and it will use its modification time to determine whether a file is -modified. If CVS erroneously thinks a file is +modified. If @sc{cvs} erroneously thinks a file is unmodified (for example, a directory is unchanged but one of the files within it is changed), you can force it to check in the file anyway by specifying the @@ -12540,6 +12593,21 @@ All other strings containing @samp{$} are reserved; there is no way to quote a @samp{$} character so that @samp{$} represents itself. +Environment variables passed to administrative files are: + +@table @code +@cindex environment variables, passed to administrative files +@c FIXME: should document USER, LOGNAME, and whatever else is +@c available both in internal variables and environment variables. + +@item CVS_USER +The @sc{cvs}-specific username provided by the user, if it +can be provided (currently just for the pserver access +method), and to the empty string otherwise. (CVS_USER +and USER may differ when @file{$CVSROOT/CVSROOT/passwd} +is used to map cvs usernames to system usernames.) +@end table + @node config @appendixsec The CVSROOT/config configuration file @@ -12609,24 +12677,24 @@ storage}). @cindex LockDir, in CVSROOT/config @item LockDir=@var{directory} -Put CVS lock files in @var{directory} rather than +Put @sc{cvs} lock files in @var{directory} rather than directly in the repository. This is useful if you want to let users read from the repository while giving them write access only to @var{directory}, not to the repository. You need to create @var{directory}, but -CVS will create subdirectories of @var{directory} as it -needs them. For information on CVS locks, see +@sc{cvs} will create subdirectories of @var{directory} as it +needs them. For information on @sc{cvs} locks, see @ref{Concurrency}. @c Mention this in Compatibility section? Before enabling the LockDir option, make sure that you -have tracked down and removed any copies of CVS 1.9 or +have tracked down and removed any copies of @sc{cvs} 1.9 or older. Such versions neither support LockDir, nor will give an error indicating that they don't support it. The result, if this is allowed to happen, is that some -CVS users will put the locks one place, and others will +@sc{cvs} users will put the locks one place, and others will put them another place, and therefore the repository -could become corrupted. CVS 1.10 does not support +could become corrupted. @sc{cvs} 1.10 does not support LockDir but it will print a warning if run on a repository with LockDir enabled. @@ -12704,7 +12772,7 @@ programs it uses. @cindex HOMEDRIVE, environment variable @item $HOMEDRIVE Used to locate the directory where the @file{.cvsrc} -file, and other such files, are searched. On Unix, CVS +file, and other such files, are searched. On Unix, @sc{cvs} just checks for @code{HOME}. On Windows NT, the system will set @code{HOMEDRIVE}, for example to @samp{d:} and @code{HOMEPATH}, for example to @file{\joe}. On Windows 95, you'll @@ -12714,7 +12782,7 @@ probably need to set @code{HOMEDRIVE} and @code{HOMEPATH} yourself. @cindex CVS_RSH, environment variable @item $CVS_RSH -Specifies the external program which CVS connects with, +Specifies the external program which @sc{cvs} connects with, when @code{:ext:} access method is specified. @pxref{Connecting via rsh}. @@ -12732,8 +12800,9 @@ login server}. Default value is @file{$HOME/.cvspass}. @item $CVS_CLIENT_PORT Used in client-server mode when accessing the server -via Kerberos. -@pxref{Kerberos authenticated} +via Kerberos, GSSAPI, or @sc{cvs}'s password authentication if the port is not +specified in $CVSROOT. +@pxref{Remote repositories} @cindex CVS_RCMD_PORT, environment variable @item $CVS_RCMD_PORT @@ -13015,7 +13084,7 @@ here for the benefit of @sc{cvs} 1.9 and older. @item cvs [checkout aborted]: cannot rename file @var{file} to CVS/,,@var{file}: Invalid argument This message has been reported as intermittently -happening with CVS 1.9 on Solaris 2.5. The cause is +happening with @sc{cvs} 1.9 on Solaris 2.5. The cause is unknown; if you know more about what causes it, let us know as described in @ref{BUGS}. @@ -13030,7 +13099,7 @@ client at all, you probably forgot to specify @code{:local:}, as described in @ref{Repository}. @item ci: @var{file},v: bad diff output line: Binary files - and /tmp/T2a22651 differ -CVS 1.9 and older will print this message +@sc{cvs} 1.9 and older will print this message when trying to check in a binary file if @sc{rcs} is not correctly installed. Re-read the instructions that came with your @sc{rcs} distribution @@ -13040,13 +13109,13 @@ version of @sc{cvs}, which checks in files itself rather than via @sc{rcs}. @item cvs checkout: could not check out @var{file} -With CVS 1.9, this can mean that the @code{co} program +With @sc{cvs} 1.9, this can mean that the @code{co} program (part of @sc{rcs}) returned a failure. It should be preceded by another error message, however it has been observed without another error message and the cause is -not well-understood. With the current version of CVS, +not well-understood. With the current version of @sc{cvs}, which does not run @code{co}, if this message occurs -without another error message, it is definitely a CVS +without another error message, it is definitely a @sc{cvs} bug (@pxref{BUGS}). @c My current suspicion is that the RCS in the rcs (not @c cvs/winnt/rcs57nt.zip) directory on the _Practical_ @@ -13056,15 +13125,15 @@ bug (@pxref{BUGS}). @item cvs [login aborted]: could not find out home directory This means that you need to set the environment -variables that CVS uses to locate your home directory. +variables that @sc{cvs} uses to locate your home directory. See the discussion of @code{HOME}, @code{HOMEDRIVE}, and @code{HOMEPATH} in @ref{Environment variables}. @item cvs update: could not merge revision @var{rev} of @var{file}: No such file or directory -CVS 1.9 and older will print this message if there was +@sc{cvs} 1.9 and older will print this message if there was a problem finding the @code{rcsmerge} program. Make sure that it is in your @code{PATH}, or upgrade to a -current version of CVS, which does not require +current version of @sc{cvs}, which does not require an external @code{rcsmerge} program. @item cvs [update aborted]: could not patch @var{file}: No such file or directory @@ -13150,7 +13219,7 @@ see @ref{modules}. @c for this message. @item missing author Typically this can happen if you created an RCS file -with your username set to empty. CVS will, bogusly, +with your username set to empty. @sc{cvs} will, bogusly, create an illegal RCS file with no value for the author field. The solution is to make sure your username is set to a non-empty value and re-create the RCS file. @@ -13177,11 +13246,11 @@ this check; see @ref{Common options}. @item *PANIC* administration files missing This typically means that there is a directory named -CVS but it does not contain the administrative files -which CVS puts in a CVS directory. If the problem is +@sc{cvs} but it does not contain the administrative files +which @sc{cvs} puts in a CVS directory. If the problem is that you created a CVS directory via some mechanism -other than CVS, then the answer is simple, use a name -other than CVS. If not, it indicates a CVS bug +other than @sc{cvs}, then the answer is simple, use a name +other than @sc{cvs}. If not, it indicates a @sc{cvs} bug (@pxref{BUGS}). @item rcs error: Unknown option: -x,v/ @@ -13242,7 +13311,7 @@ See @ref{Connection}. This means that someone else has committed a change to that file since the last time that you did a @code{cvs update}. So before proceeding with your @code{cvs -commit} you need to @code{cvs update}. CVS will merge +commit} you need to @code{cvs update}. @sc{cvs} will merge the changes that you made and the changes that the other person made. If it does not detect any conflicts it will report @samp{M @var{file}} and you are ready @@ -13276,9 +13345,9 @@ non-unix rsh versions, which does not by default provide a transparent data stream. In such cases you probably want to try @samp{:server:} instead of @samp{:ext:}. If @var{text} is something else, this -may signify a problem with your CVS server. +may signify a problem with your @sc{cvs} server. Double-check your installation against the instructions -for setting up the CVS server. +for setting up the @sc{cvs} server. @c FIXCVS: should be printing CR as \r or \015 or some @c such, probably. @@ -13338,6 +13407,18 @@ directions given for :ext:. @cindex :pserver:, troubleshooting @item :pserver: +Errors along the lines of "connection refused" typically indicate +that inetd isn't even listening for connections on port 2401 +whereas errors like "connection reset by peer" or "recv() from +server: EOF" typically indicate that inetd is listening for +connections but is unable to start @sc{cvs} (this is frequently +caused by having an incorrect path in @file{inetd.conf}). +"unrecognized auth response" errors are caused by a bad command +line in @file{inetd.conf}, typically an invalid option or forgetting +to put the @samp{pserver} command at the end of the line. +Another less common problem is invisible control characters that +your editor "helpfully" added without you noticing. + One good debugging tool is to "telnet servername 2401". After connecting, send any text (for example "foo" followed by return). If @sc{cvs} is working @@ -13347,7 +13428,32 @@ correctly, it will respond with cvs [pserver aborted]: bad auth protocol start: foo @end example -If this fails to work, then make sure inetd is working +If instead you get: + +@example +Usage: cvs [cvs-options] command [command-options-and-arguments] +... +@end example + +then you're missing the @samp{pserver} command at the end of the +line in @file{inetd.conf}; check to make sure that the entire command +is on one line and that it's complete. + +Likewise, if you get something like: + +@example +Unknown command: `pserved' + +CVS commands are: + add Add a new file/directory to the repository +... +@end example + +then you've misspelled @samp{pserver} in some way. If it isn't +obvious, check for invisible control characters (particularly +carriage returns) in @file{inetd.conf}. + +If it fails to work at all, then make sure inetd is working right. Change the invocation in @file{inetd.conf} to run the echo program instead of cvs. For example: @@ -13379,12 +13485,7 @@ cvs server: cannot open /root/.cvsignore: Permission denied cvs [server aborted]: can't chdir(/root): Permission denied @end example -then either you haven't specified @samp{-f} in @file{inetd.conf} -or your system is setting the @code{HOME} environment variable -for programs being run by inetd. In the latter case, you can either -have inetd run a shell script that unsets @code{HOME} and then runs -@sc{cvs}, or you can use @code{env} to run @sc{cvs} with a pristine -environment. +then you probably haven't specified @samp{-f} in @file{inetd.conf}. If you can connect successfully for a while but then can't, you've probably hit inetd's rate limit. @@ -13408,7 +13509,7 @@ On Windows, if there is a 30 second or so delay when you run a @sc{cvs} command, it may mean that you have your home directory set to @file{C:/}, for example (see @code{HOMEDRIVE} and @code{HOMEPATH} in -@ref{Environment variables}). CVS expects the home +@ref{Environment variables}). @sc{cvs} expects the home directory to not end in a slash, for example @file{C:} or @file{C:\cvs}. @c FIXCVS: CVS should at least detect this and print an @@ -13490,7 +13591,7 @@ something about as well as problems with @sc{cvs} itself. @item If you want someone to help you and fix bugs that you report, there are companies which will do that for a -fee. Two such companies are: +fee. One such company is: @cindex Signum Support @cindex Support, getting CVS support diff --git a/contrib/cvs/doc/cvsclient.texi b/contrib/cvs/doc/cvsclient.texi index 5ba7ed6..b81a773 100644 --- a/contrib/cvs/doc/cvsclient.texi +++ b/contrib/cvs/doc/cvsclient.texi @@ -484,7 +484,8 @@ in use, or sticks to a common subset. The protocol contains times and dates in various places. For the @samp{-D} option to the @code{annotate}, @code{co}, @code{diff}, -@code{export}, @code{history}, @code{rdiff}, @code{rtag}, @code{tag}, +@code{export}, @code{history}, @code{rannotate}, @code{rdiff}, +@code{rtag}, @code{tag}, and @code{update} requests, the server should support two formats: @example @@ -495,7 +496,8 @@ and @code{update} requests, the server should support two formats: The former format is preferred; the latter however is sent by the CVS command line client (versions 1.5 through at least 1.9). -For the @samp{-d} option to the @code{log} request, servers should at +For the @samp{-d} option to the @code{log} and @code{rlog} requests, +servers should at least support RFC 822/1123 format. Clients are encouraged to use this format too (the command line CVS client, version 1.10 and older, just passed along the date format specified by the user, however). @@ -1160,12 +1162,14 @@ and send it in a future @code{Entry} request. Note that the entries line in the @code{Created} response must indicate whether the file is binary or text, so the client can create it correctly. -@item rdiff \n +@item rannotate \n +@itemx rdiff \n +@itemx rlog \n @itemx rtag \n Response expected: yes. Actually do a cvs command. This uses any previous @code{Argument} requests, if they have been sent. The client should not send @code{Directory}, @code{Entry}, or @code{Modified} -requests for this command; they are not used. Arguments to these +requests for these commands; they are not used. Arguments to these commands are module names, as described for @code{co}. @item init @var{root-name} \n |