| 1 | .TH SCCS LOCAL |
| 2 | .UC |
| 3 | .SH NAME |
| 4 | sccs \- front end for the |
| 5 | .SM SCCS |
| 6 | subsystem |
| 7 | .SH SYNOPSIS |
| 8 | .B sccs |
| 9 | [ |
| 10 | .B \-r |
| 11 | ] [ |
| 12 | .BI \-d path |
| 13 | ] [ |
| 14 | .BI \-p path |
| 15 | ] command [ flags ] [ args ] |
| 16 | .SH DESCRIPTION |
| 17 | .I Sccs |
| 18 | is a front end |
| 19 | to the |
| 20 | .SM SCCS |
| 21 | programs |
| 22 | that help them mesh more cleanly |
| 23 | with the rest of UNIX. |
| 24 | It also includes the capability to run |
| 25 | ``set user id'' to another user |
| 26 | to provide additional protection. |
| 27 | .PP |
| 28 | Basically, |
| 29 | .I sccs |
| 30 | runs the |
| 31 | .I command |
| 32 | with the specified |
| 33 | .I flags |
| 34 | and |
| 35 | .I args. |
| 36 | Each |
| 37 | argument |
| 38 | is normally modified to be prepended |
| 39 | with ``SCCS/s.''. |
| 40 | .PP |
| 41 | Flags to be interpreted by the |
| 42 | .I sccs |
| 43 | program must be before the |
| 44 | .I command |
| 45 | argument. |
| 46 | Flags to be passed to the actual |
| 47 | .SM SCCS |
| 48 | program |
| 49 | must come after the |
| 50 | .I command |
| 51 | argument. |
| 52 | These flags are specific to the command |
| 53 | and are discussed in the documentation for that command. |
| 54 | .PP |
| 55 | Besides the usual |
| 56 | .SM SCCS |
| 57 | commands, |
| 58 | several ``pseudo-commands'' can be issued. |
| 59 | These are: |
| 60 | .IP edit 1i |
| 61 | Equivalent to ``get \-e''. |
| 62 | .IP delget |
| 63 | Perform a delta on the named files |
| 64 | and then get new versions. |
| 65 | The new versions will have id keywords expanded, |
| 66 | and will not be editable. |
| 67 | The \-m, \-p, \-r, \-s, and \-y flags |
| 68 | will be passed to delta, |
| 69 | and the \-b, \-c, \-e, \-i, \-k, \-l, \-s, and \-x flags |
| 70 | will be passed to get. |
| 71 | .IP deledit |
| 72 | Equivalent to ``delget'' except that the |
| 73 | ``get'' phase includes the ``\-e'' flag. |
| 74 | This option is useful for making a ``checkpoint'' |
| 75 | of your current editing phase. |
| 76 | The same flags will be passed to delta |
| 77 | as described above, |
| 78 | and all the flags listed for ``get'' |
| 79 | above except \-e and \-k |
| 80 | are passed to ``edit''. |
| 81 | .IP create |
| 82 | Creates an |
| 83 | .SM SCCS |
| 84 | file, |
| 85 | taking the initial contents from the file of the same name. |
| 86 | Any flags to ``admin'' are accepted. |
| 87 | If the creation is successful, |
| 88 | the files are renamed with a comma on the front. |
| 89 | These should be removed when you are convinced that |
| 90 | the |
| 91 | .SM SCCS |
| 92 | files have been created successfully. |
| 93 | .IP fix |
| 94 | Must be followed by a |
| 95 | .B \-r |
| 96 | flag. |
| 97 | This command essentially removes the named delta, |
| 98 | but leaves you with a copy of the delta |
| 99 | with the changes that were in it. |
| 100 | It is useful for fixing small compiler bugs, etc. |
| 101 | Since it doesn't leave audit trails, |
| 102 | it should be used carefully. |
| 103 | .IP clean |
| 104 | This routine removes everything from the current directory |
| 105 | that can be recreated from SCCS files. |
| 106 | It will not remove any files being edited. |
| 107 | If the |
| 108 | .B \-b |
| 109 | flag is given, branches are ignored in the determination |
| 110 | of whether they are being edited; |
| 111 | this is dangerous if you are keeping the branches in the |
| 112 | same directory. |
| 113 | .IP unedit |
| 114 | This is the opposite of an ``edit'' |
| 115 | or a ``get \-e''. |
| 116 | It should be used with extreme caution, |
| 117 | since any changes you made since the get |
| 118 | will be irretrievably lost. |
| 119 | .IP info |
| 120 | Gives a listing of all files being edited. |
| 121 | If the |
| 122 | .B \-b |
| 123 | flag is given, |
| 124 | branches (i.e., |
| 125 | \s-1SID\s0's with two or fewer components) |
| 126 | are ignored. |
| 127 | If the |
| 128 | .B \-u |
| 129 | flag is given |
| 130 | (with an optional argument) |
| 131 | then only files being edited by you |
| 132 | (or the named user) |
| 133 | are listed. |
| 134 | .IP check |
| 135 | Like ``info'' |
| 136 | except that nothing is printed if nothing is being edited, |
| 137 | and a non-zero exit status is returned if anything |
| 138 | is being edited. |
| 139 | The intent is to have this included in an ``install'' |
| 140 | entry in a makefile |
| 141 | to insure that everything is included into the |
| 142 | .SM SCCS |
| 143 | file |
| 144 | before a version is installed. |
| 145 | .IP tell |
| 146 | Gives a newline-separated list |
| 147 | of the files being edited |
| 148 | on the standard output. |
| 149 | Takes the |
| 150 | .B \-b |
| 151 | and |
| 152 | .B \-u |
| 153 | flags like |
| 154 | ``info'' and ``check''. |
| 155 | .IP diffs |
| 156 | Gives a ``diff'' listing between the current version of the |
| 157 | program(s) you have out for editing and the versions |
| 158 | in |
| 159 | .SM SCCS |
| 160 | format. |
| 161 | The |
| 162 | .B \-r, |
| 163 | .B \-c, |
| 164 | .B \-i, |
| 165 | .B \-x, |
| 166 | and |
| 167 | .B \-t |
| 168 | flags are passed to |
| 169 | .I get\c |
| 170 | ; the |
| 171 | .B \-l, |
| 172 | .B \-s, |
| 173 | .B \-e, |
| 174 | .B \-f, |
| 175 | .B \-h, |
| 176 | and |
| 177 | .B \-b |
| 178 | options are passed to |
| 179 | .I diff. |
| 180 | The |
| 181 | .B \-C |
| 182 | flag is passed to |
| 183 | .I diff |
| 184 | as |
| 185 | .B \-c. |
| 186 | .IP print |
| 187 | This command prints out verbose information |
| 188 | about the named files. |
| 189 | .PP |
| 190 | The |
| 191 | .B \-r |
| 192 | flag runs |
| 193 | .I sccs |
| 194 | as the real user |
| 195 | rather than as whatever effective user |
| 196 | .I sccs |
| 197 | is ``set user id'' to. |
| 198 | The |
| 199 | .B \-d |
| 200 | flag gives a root directory for the |
| 201 | .SM SCCS |
| 202 | files. |
| 203 | The default is the current directory. |
| 204 | The |
| 205 | .B \-p |
| 206 | flag defines the pathname of the directory |
| 207 | in which the |
| 208 | .SM SCCS |
| 209 | files will be found; |
| 210 | ``SCCS'' is the default. |
| 211 | The |
| 212 | .B \-p |
| 213 | flag differs from the |
| 214 | .B \-d |
| 215 | flag in that the |
| 216 | .B \-d |
| 217 | argument is prepended to the entire pathname |
| 218 | and the |
| 219 | .B \-p |
| 220 | argument is inserted before the final component of the |
| 221 | pathname. |
| 222 | For example, |
| 223 | ``sccs \-d/x \-py get a/b'' |
| 224 | will convert to |
| 225 | ``get /x/a/y/s.b''. |
| 226 | The intent here is to create aliases such as |
| 227 | ``alias syssccs sccs -d/usr/src'' |
| 228 | which will be used as |
| 229 | ``syssccs get cmd/who.c''. |
| 230 | Also, if the environment variable |
| 231 | PROJECT |
| 232 | is set, |
| 233 | its value is used to determine the |
| 234 | .B \-d flag. |
| 235 | If it begins with a slash, |
| 236 | it is taken directly; |
| 237 | otherwise, |
| 238 | the home directory of a user of that name |
| 239 | is examined for a subdirectory ``src'' or ``source''. |
| 240 | If such a directory is found, |
| 241 | it is used. |
| 242 | .PP |
| 243 | Certain commands (such as |
| 244 | .IR admin ) |
| 245 | cannot be run ``set user id'' by all users, |
| 246 | since this would allow anyone to change the authorizations. |
| 247 | These commands are always run as the real user. |
| 248 | .SH EXAMPLES |
| 249 | .de BX |
| 250 | .PP |
| 251 | .nf |
| 252 | .in +0.5i |
| 253 | .. |
| 254 | .de EX |
| 255 | .fi |
| 256 | .PP |
| 257 | .. |
| 258 | To get a file for editing, |
| 259 | edit it, |
| 260 | and produce a new delta: |
| 261 | .BX |
| 262 | sccs get \-e file.c |
| 263 | ex file.c |
| 264 | sccs delta file.c |
| 265 | .EX |
| 266 | To get a file from another directory: |
| 267 | .BX |
| 268 | sccs \-p/usr/src/sccs/s. get cc.c |
| 269 | .EX |
| 270 | or |
| 271 | .BX |
| 272 | sccs get /usr/src/sccs/s.cc.c |
| 273 | .EX |
| 274 | To make a delta of a large number of files |
| 275 | in the current directory: |
| 276 | .BX |
| 277 | sccs delta *.c |
| 278 | .EX |
| 279 | To get a list of files being edited that are not on branches: |
| 280 | .BX |
| 281 | sccs info \-b |
| 282 | .EX |
| 283 | To delta everything being edited by you: |
| 284 | .BX |
| 285 | sccs delta \`sccs tell \-u\` |
| 286 | .EX |
| 287 | In a makefile, to get source files |
| 288 | from an |
| 289 | .SM SCCS |
| 290 | file if it does not already exist: |
| 291 | .BX |
| 292 | SRCS = <list of source files> |
| 293 | $(SRCS): |
| 294 | sccs get $(REL) $@ |
| 295 | .EX |
| 296 | .SH "SEE ALSO" |
| 297 | admin(SCCS), |
| 298 | chghist(SCCS), |
| 299 | comb(SCCS), |
| 300 | delta(SCCS), |
| 301 | get(SCCS), |
| 302 | help(SCCS), |
| 303 | prt(SCCS), |
| 304 | rmdel(SCCS), |
| 305 | sccsdiff(SCCS), |
| 306 | what(SCCS) |
| 307 | .br |
| 308 | Eric Allman, |
| 309 | .ul |
| 310 | An Introduction to the Source Code Control System |
| 311 | .SH BUGS |
| 312 | It should be able to take directory arguments on pseudo-commands |
| 313 | like the |
| 314 | .SM SCCS |
| 315 | commands do. |
| 316 | .SH DISCLAIMER |
| 317 | Since it is not yet clear |
| 318 | what this program should do, |
| 319 | it should not be considered |
| 320 | a stable program product. |
| 321 | Please send any |
| 322 | comments & suggestions |
| 323 | to csvax:eric. |