Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SCCS(1)			  BSD General Commands Manual		       SCCS(1)

NAME
     sccs -- front end for the SCCS subsystem

SYNOPSIS
     sccs [-r] [-d path] [-T] [-V] [--version] [-p path] [--prefix=path]
	  [--cssc] command [flags] [file ...]

DESCRIPTION
     Sccs is a front end to the	SCCS programs that helps them mesh more
     cleanly with the rest of UNIX.  It	also includes the capability to	run
     "set user id" to another user to provide additional protection (but see
     the section entitled BUGS).

     Basically,	sccs runs the command with the specified flags and args.  Each
     argument is normally modified to be prepended with	"SCCS/s.".

     Flags to be interpreted by	the sccs program must be before	the command
     argument.	Flags to be passed to the actual SCCS program must come	after
     the command argument.  These flags	are specific to	the command and	are
     discussed in the documentation for	that command.

     Besides the usual SCCS commands, several "pseudo-commands"	can be issued.
     These are:

     edit     Equivalent to "get -e".

     delget   Perform a	delta on the named files and then get new versions.
	      The new versions will have id keywords expanded, and will	not be
	      editable.	 The -m, -p, -r, -s, and -y flags will be passed to
	      delta, and the -b, -c, -e, -i, -k, -l, -s, and -x	flags will be
	      passed to	get.

     deledit  Equivalent to delget except that the get phase includes the -e
	      flag.  This option is useful for making a	checkpoint of your
	      current editing phase.  The same flags will be passed to delta
	      as described above, and all the flags listed for get above ex-
	      cept -e and -k are passed	to edit.

     create   Creates an SCCS file , taking the	initial	contents from the file
	      of the same name.	 Any flags to admin are	accepted.  If the cre-
	      ation is successful, the files are renamed with a	comma on the
	      front.  These should be removed when you are convinced that the
	      SCCS files have been created successfully.

     fix      Must be followed by a -r flag.  This command essentially removes
	      the named	delta, but leaves you with a copy of the delta with
	      the changes that were in it.  It is useful for fixing small com-
	      piler bugs, etc.	Since it doesn't leave audit trails, it	should
	      be used carefully.

     clean    This routine removes everything from the current directory that
	      can be recreated from SCCS files.	 It will not remove any	files
	      being edited.  If	the -b flag is given, branches are ignored in
	      the determination	of whether they	are being edited; this is dan-
	      gerous if	you are	keeping	the branches in	the same directory.

     unedit   This is the opposite of an edit or a "get	-e".  It should	be
	      used with	extreme	caution, since any changes you made since the
	      get will be irretrievably	lost.

     info     Gives a listing of all files being edited.  If the -b flag is
	      given, branches (i.e., SID's with	two or fewer components) are
	      ignored.	If the -u flag is given	(with an optional argument)
	      then only	files being edited by you (or the named	user) are
	      listed.

     check    Like info	except that nothing is printed if nothing is being
	      edited, and a non-zero exit status is returned if	anything is
	      being edited.  The intent	is to have this	included in an install
	      entry in a makefile to insure that everything is included	into
	      the SCCS file before a version is	installed.

     tell     Gives a newline-separated	list of	the files being	edited on the
	      standard output.	Takes the -b and -u flags like info and	check.

     diffs    Gives a diff listing between the current version of the pro-
	      gram(s) you have out for editing and the versions	in SCCS	for-
	      mat.  The	-r, -c,	-i, -x,	and -t flags are passed	to
	      get; the -l, -s, -e, -f, -h, -u, -n, -w, and -b options are
	      passed to	diff.  The -a, -B, -d, -H, -p, -q, -s, -v, and -y op-
	      tions are	passed to diff but these options are (usually) spe-
	      cific to GNU diff, and so	may not	be supported on	systems	other
	      than GNU.	 The -C	flag is	passed to diff as -c.

     print    This command prints out verbose information about	the named
	      files.

     Certain commands (such as admin) cannot be	run "set user id" by all
     users, since this would allow anyone to change the	authorizations.	 These
     commands are always run as	the real user.

     --cssc	   Returns a zero exit value (for the GNU version only).  No
		   other operation is performed.  This flag is used by the
		   test	suite to determine if it needs to use the --prefix
		   flag	in order to find the correct subprograms (non-GNU ver-
		   sions of sccs have the full pathnames for the subprograms
		   hard-coded).	 In this way, the CSSC test suite can be com-
		   piled ready for installation	in a particular	directory, but
		   the test suite can still be run before the suite has	been
		   installed in	its final position.  This option is supported
		   only	by the GNU version of sccs.

     --prefix=foo  Uses	foo as the prefix for SCCS sub-commands.   The default
		   prefix is compiled into the program and is usually
		   "/usr/sccs".	 You can discover the prefix setting with the
		   -V flag.  This prefix is used without a final slash being
		   appended, so	values like "/usr/local/bin/cssc-" can be
		   used.  This option is disallowed if the program is in-
		   stalled setuid, and it is supported only by the GNU version
		   of sccs.  This option is not	equivalent to the -p flag.

     --version	   Show	version	information; synonymous	with the -V flag.

     -r		   Runs	sccs as	the real user rather than as whatever effec-
		   tive	user sccs is "set user id" to.

     -d		   Specifies a root directory for the SCCS files.  The default
		   is the current directory.  If environment variable
		   PROJECTDIR is set, it will be used to determine the -d
		   flag.

     -p		   Defines the pathname	of the directory in which the SCCS
		   files will be found;	"SCCS" is the default.	The -p flag
		   differs from	the -d flag in that the	-d argument is
		   prepended to	the entire pathname and	the -p argument	is in-
		   serted before the final component of	the pathname.  For ex-
		   ample, "sccs	-d/x -py get a/b" will convert to "get
		   /x/a/y/s.b".	 The intent here is to create aliases such as
		   "alias syssccs sccs -d/usr/src" which will be used as
		   "syssccs get	cmd/who.c".  Please note that the -p flag is
		   (very) different in purpose from the	--prefix option.

     -T		   This	flag causes the	program	to emit	a debugging trace on
		   stdout.  This flag may be disabled at compile time.

     -V		   Shows the version information for the sccs program, and the
		   subcommand prefix being used.  This option is supported
		   only	by the GNU version of sccs.

EXAMPLES
     To	get a file for editing,	edit it, and produce a new delta:

	   sccs	get -e file.c
	   ex file.c
	   sccs	delta file.c

     To	get a file from	another	directory:

	   sccs	-p/usr/src/sccs/s. get cc.c

     or

	   sccs	get /usr/src/sccs/s.cc.c

     To	make a delta of	a large	number of files	in the current directory:

	   sccs	delta *.c

     To	get a list of files being edited that are not on branches:

	   sccs	info -b

     To	delta everything being edited by you:

	   sccs	delta `sccs tell -u`

     In	a makefile, to get source files	from an	SCCS file if it	does not al-
     ready exist:

	   SRCS	= <list	of source files>
	   $(SRCS):
		sccs get $(REL)	$@

MAINTAINER
     This version of sccs is maintained	by James Youngman, <jay@gnu.org>.

ENVIRONMENT
     PROJECTDIR

		   The PROJECTDIR environment variable is checked by the -d
		   flag.  If it	begins with a slash, it	is taken directly;
		   otherwise, the home directory of a user of that name	is ex-
		   amined for a	subdirectory "src" or "source".	 If such a di-
		   rectory is found, it	is used.

DIAGNOSTICS
     There are many error messages, mostly brief but fairly obvious.  If all
     goes acording to plan, the	program's exit status is zero.	Otherwise, it
     will be one of the	following values:-

     0	   No error; everything	proceeded according to plan.

     64	   Command line	usage error

     69	   Could not exec program

     70	   Internal software error.  This should not happen.

     71	   System error	(e.g., can't fork)

     75	   Temporary failure; retry later.  This error is returned when	the
	   system runs out of memory.

     77	   Permission denied.  This error occurs when the program has been in-
	   stalled setuid, but SCCSDIR was not configured in at	compile	time.
	   This	can also happen	if something goes wrong	when the program tries
	   to drop its setuid or setgid	privileges.  When a program exits due
	   to a	fatal signal, the shell	usually	adds 128 to the	signal number
	   and uses that as the	return value.	Some systems also produce val-
	   ues in this range if	there was a problem with the dynamic linker.

SEE ALSO
     what(1), sccs-admin(1), sccs-cdc(1), sccs-comb(1),	sccs-delta(1),
     sccs-get(1), sccs-help(1),	sccs-prs(1), sccs-prt(1), sccs-rmchg(1),
     sccs-rmdel(1), sccs-sact(1), sccsdiff(1), sccs-unget(1), sccs-val(1),
     make(1), rcsintro(1), cvs(1), sccsfile(5).

     Eric Allman, An Introduction to the Source	Code Control System.

     James Youngman, CSSC: Compatibly Stupid Source Control.

COPYING
     Copyright (C) 1998
     Free Software Foundation, Inc.  All rights	reserved.

     Copyright (C) 1983, 1990, 1993
     The Regents of the	University of California.  All rights reserved.

     Redistribution and	use in source and binary forms,	with or	without	modi-
     fication, are permitted provided that the following conditions are	met:

     1.	  Redistributions of source code must retain the above copyright no-
	  tice,	this list of conditions	and the	following disclaimer.

     2.	  Redistributions in binary form must reproduce	the above copyright
	  notice, this list of conditions and the following disclaimer in the
	  documentation	and/or other materials provided	with the distribution.

     3.	  All advertising materials mentioning features	or use of this soft-
	  ware must display the	following acknowledgement:

	  This product includes	software developed by the University of	Cali-
	  fornia, Berkeley and its contributors.

     4.	  Neither the name of the University nor the names of its contributors
	  may be used to endorse or promote products derived from this soft-
	  ware without specific	prior written permission.

     THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     ANY EXPRESS OR IMPLIED WARRANTIES,	INCLUDING, BUT NOT LIMITED TO, THE IM-
     PLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     ARE DISCLAIMED.  IN NO EVENT SHALL	THE REGENTS OR CONTRIBUTORS BE LIABLE
     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUEN-
     TIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     GOODS OR SERVICES;	LOSS OF	USE, DATA, OR PROFITS; OR BUSINESS INTERRUP-
     TION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR	OTHERWISE) ARISING IN
     ANY WAY OUT OF THE	USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBIL-
     ITY OF SUCH DAMAGE.

HISTORY
     The sccs command appeared in 4.3BSD.

     This version of sccs has been slightly modified to	support	GNU Autoconf,
     and several new options (those beginning with two dashes and also -V) and
     to	make it	somewhat more portable.	 The program otherwise remains largely
     unchanged.

BUGS
     It	should be able to take directory arguments on pseudo-commands like the
     SCCS commands do.

     Though this program is mostly derived from	the original BSD code, the
     subprograms accompanying it in the	CSSC suite (admin, get,	delta and so
     on) are not the original AT&T code.  Please do not	count on these pro-
     grams being secure.

     Other known bugs are listed in the	file BUGS, which accompanies GNU CSSC.

GNU				 June 3, 1998				   GNU

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | MAINTAINER | ENVIRONMENT | DIAGNOSTICS | SEE ALSO | COPYING | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sccs&sektion=1&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help