|
|
1.1 root 1: .\" Copyright (c) 1983, 1990 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)sccs.1 2.8 (Berkeley) 7/24/90
19: .\"
20: .Dd July 24, 1990
21: .Os BSD 4.4
22: .Dt SCCS 1
23: .Os BSD 4.2
24: .Sh NAME
25: .Nm sccs
26: .Nd front end for the
27: .Li SCCS
28: subsystem
29: .Sh SYNOPSIS
30: .Nm sccs
31: .Op Fl r
32: .Op Fl d Ar path
33: .Op Fl p Ar path
34: .Ar command
35: .Op flags
36: .Ar
37: .Sh DESCRIPTION
38: .Nm Sccs
39: is a front end to the
40: .Li SCCS
41: programs
42: that
43: helps them mesh more cleanly
44: with
45: the rest of UNIX.
46: It
47: also includes the capability to run
48: .Dq set user id
49: to another user
50: to
51: provide additional protection.
52: .Pp
53: Basically,
54: .Nm sccs
55: runs the command with the specified
56: .Ar flags
57: and
58: .Ar args .
59: Each argument is normally modified to be prepended with
60: .Dq Li SCCS/s. .
61: .Pp
62: Flags to be interpreted by the
63: .Nm sccs
64: program must be before the
65: .Ar command
66: argument.
67: Flags to be passed to the actual
68: .Li SCCS
69: program must come after the
70: .Ar command
71: argument.
72: These flags are specific to the command and
73: are discussed in the documentation for that command.
74: .Pp
75: Besides the usual
76: .Li SCCS
77: commands,
78: several
79: .Dq pseudo-commands
80: can be issued.
81: These are:
82: .Tw Fl
83: .Tp Ic edit
84: Equivalent
85: to
86: .Dq Li get \-e .
87: .Tp Ic delget
88: Perform a delta on the named files and
89: then get new versions.
90: The new versions will have id keywords expanded, and
91: will not be editable.
92: The
93: .Fl m ,
94: .Fl p ,
95: .Fl r ,
96: .Fl s ,
97: and
98: .Fl y
99: flags will be passed to
100: .Nm delta ,
101: and the
102: .Fl b,
103: .Fl c ,
104: .Fl e ,
105: .Fl i ,
106: .Fl k ,
107: .Fl l ,
108: .Fl s ,
109: .\" anybody who has a bad xterm which is almost anyone
110: .if n \{\
111: . br
112: .\}
113: and
114: .Fl x
115: flags will be passed to get.
116: .Tp Ic deledit
117: Equivalent
118: to
119: .Nm delget
120: except that the
121: .Nm get
122: phase includes the
123: .Fl e
124: flag.
125: This
126: option is useful for making a
127: .Em checkpoint
128: of your current editing phase. The same flags will be passed to delta
129: as described above, and
130: all the flags listed for
131: .om get
132: above except
133: .Fl e
134: and
135: .Fl k
136: are
137: passed to
138: .Nm edit .
139: .Tp Ic create
140: Creates
141: an
142: .Li SCCS
143: file ,
144: taking
145: the initial contents from the file of the same name.
146: Any
147: flags to
148: .Nm admin
149: are accepted. If the creation is successful,
150: the files are renamed with a comma on the front.
151: These should be removed when you are convinced that the
152: .Li SCCS
153: files
154: have been created successfully.
155: .Tp Ic fix
156: Must
157: be followed by a
158: .Fl r
159: flag.
160: This command essentially removes the named delta, but
161: leaves you with a copy of the delta
162: with the changes that were in it. It
163: is useful for fixing small compiler bugs, etc.
164: Since it doesn't leave audit trails, it should be used carefully.
165: .Tp Ic clean
166: This routine removes everything from the current directory
167: that can be recreated from SCCS files.
168: It will not remove any files being edited.
169: If the
170: .Fl b
171: flag is given, branches are ignored in the determination of
172: whether they are being edited; this
173: is dangerous if you are keeping the branches in the
174: same directory.
175: .Tp Ic unedit
176: This
177: is the opposite of an
178: .Nm edit
179: or
180: a
181: .Dq Li get \-e .
182: It should be used with extreme caution, since
183: any changes you made since the get will be irretrievably lost.
184: .Tp Ic info
185: Gives a listing of all files being edited.
186: If the
187: .Fl b
188: flag
189: is given, branches (i.e.,
190: .Cx Li SID
191: .Cx \&\'s
192: .Cx
193: with two or fewer components)
194: are ignored. If the
195: .Fl u
196: flag is given (with an optional argument) then
197: only files being edited by you (or the named user) are listed.
198: .Tp Ic check
199: Like
200: .Nm info
201: except that nothing is printed if nothing is being edited, and
202: a non-zero exit status is returned if anything is being edited.
203: The intent is to have this included in an
204: .Em install
205: entry in a makefile to insure that everything is included into the
206: .Li SCCS
207: file before a version is installed.
208: .Tp Ic tell
209: Gives a newline-separated list of the files being edited
210: on the standard output. Takes the
211: .Fl b
212: and
213: .Fl u
214: flags like
215: .Nm info
216: and
217: .Nm check .
218: .Tp Ic diffs
219: Gives a
220: .Nm diff
221: listing between the current version of the
222: program(s) you have out for editing and the versions in
223: .Li SCCS
224: format.
225: The
226: .Fl r ,
227: .Fl c ,
228: .Fl i ,
229: .Fl x ,
230: and
231: .Fl t
232: flags are passed to
233: .if n \{\
234: . br
235: .\}
236: .Nm get ;
237: the
238: .Fl l ,
239: .Fl s ,
240: .Fl e ,
241: .Fl f ,
242: .Fl h ,
243: and
244: .Fl b
245: options are passed to
246: .if n \{\
247: . br
248: .\}
249: .Nm diff .
250: The
251: .Fl C
252: flag is passed to
253: .Nm diff
254: as
255: .Fl c .
256: .Tp Ic print
257: This command prints out verbose information
258: about the named files.
259: .Pp
260: .Tp Fl r
261: Runs
262: .Nm sccs
263: as the real user rather than as whatever effective user
264: .Nm sccs
265: is
266: .Dq Li set user id
267: to.
268: .Tp Fl d
269: Specifies a root directory for the
270: .Li SCCS
271: files.
272: The default is the current directory.
273: If environment variable
274: .Ev PROJECT
275: is set,
276: it will be used to determine the
277: .Fl d
278: flag.
279: .Tp Fl p
280: flag defines the pathname of the directory in which the
281: .Li SCCS
282: files will be found;
283: .Dq Li SCCS
284: is the default.
285: The
286: .Fl p
287: flag
288: differs from the
289: .Fl d
290: flag
291: in that the
292: .Fl d
293: argument is prepended to the entire pathname and the
294: .Fl p
295: argument is inserted before the final component of the pathname.
296: For example,
297: .Dq Li sccs \-d/x \-py get a/b
298: will convert to
299: .Dq Li get /x/a/y/s.b .
300: The intent here is to create aliases such as
301: .Dq Li alias syssccs sccs -d/usr/src
302: which
303: will be used as
304: .Dq Li syssccs get cmd/who.c .
305: .Pp
306: Certain
307: commands (such as
308: .Nm admin )
309: cannot be run
310: .Dq Li set user id
311: by all users, since this would allow anyone to change the authorizations.
312: These commands are always run as the real user.
313: .Sh EXAMPLES
314: To get a file for editing,
315: edit it,
316: and produce a new delta:
317: .Pp
318: .Dl sccs get \-e file.c
319: .Dl ex file.c
320: .Dl sccs delta file.c
321: .Pp
322: To get a file from another directory:
323: .Pp
324: .Dl sccs \-p/usr/src/sccs/s. get cc.c
325: .Pp
326: or
327: .Pp
328: .Dl sccs get /usr/src/sccs/s.cc.c
329: .Pp
330: To make a delta of a large number of files
331: in the current directory:
332: .Pp
333: .Dl sccs delta *.c
334: .Pp
335: To get a list of files being edited that are not on branches:
336: .Pp
337: .Dl sccs info \-b
338: .Pp
339: To delta everything being edited by you:
340: .Pp
341: .Dl sccs delta \`sccs tell \-u\`
342: .Pp
343: In a makefile, to get source files
344: from an
345: .Li SCCS
346: file if it does not already exist:
347: .Pp
348: .Dl SRCS = <list of source files>
349: .Dl $(SRCS):
350: .Dl \&\tsccs get $(REL) $@
351: .Sh ENVIRONMENT
352: .Tw Ar
353: .Tp Ev PROJECT
354: The PROJECT environment variable is checked by the
355: .Fl d
356: flag. If
357: it begins with a slash, it is taken directly; otherwise,
358: the home directory of a user of that name is
359: examined for a subdirectory
360: .Dq Li src
361: or
362: .Dq Li source .
363: If such a directory is found, it is used.
364: .Tp
365: .Sh SEE ALSO
366: .Xr what 1
367: .Xr admin SCCS ,
368: .Xr chghist SCCS ,
369: .Xr comb SCCS ,
370: .Xr delta SCCS ,
371: .Xr get SCCS ,
372: .Xr help SCCS ,
373: .Xr prt SCCS ,
374: .Xr rmdel SCCS ,
375: .Xr sccsdiff SCCS ,
376: .br
377: Eric Allman,
378: .Em An Introduction to the Source Code Control System
379: .Sh HISTORY
380: .Nm Sccs
381: appeared in 4.3 BSD.
382: .Sh BUGS
383: It should be able to take directory arguments on pseudo-commands
384: like the
385: .Li SCCS
386: commands do.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.