neulab/tldr huggingface dataset:
Second, any time a connection asks to own a name, the bus daemon will check permissions with the security context of the connection as source, the security context specified for the name in the config file as target, object class "dbus" and requested permission "acquire_svc".
The security context for a bus name is specified with the <associate> element described earlier in this document. If a name has no security context associated in the configuration file, the security context of the bus daemon itself will be used.
The AppArmor confinement context is stored when applications connect to the bus. The confinement context consists of a label and a confinement mode. When a security decision is required, the daemon uses the confinement context to query the AppArmor policy to determine if the action should be allowed or denied and if the action should be audited.
The daemon performs AppArmor security checks in three places.
First, any time a message is routed from one connection to another connection, the bus daemon will check permissions with the label of the first connection as source, label and/or connection name of the second connection as target, along with the bus name, the path name, the interface name, and the member name. Reply messages, such as method_return and error messages, are implicitly allowed if they are in response to a message that has already been allowed.
Second, any time a connection asks to own a name, the bus daemon will check permissions with the label of the connection as source, the requested name as target, along with the bus name.
Third, any time a connection attempts to eavesdrop, the bus daemon will check permissions with the label of the connection as the source, along with the bus name.
AppArmor rules for bus mediation are not stored in the bus configuration files. They are stored in the application's AppArmor profile. Please see apparmor.d(5) for more details.
If you're trying to figure out where your messages are going or why you aren't getting messages, there are several things you can try.
Remember that the system bus is heavily locked down and if you haven't installed a security policy file to allow your message through, it won't work. For the session bus, this is not a concern.
The simplest way to figure out what's happening on the bus is to run the dbus-monitor program, which comes with the D-Bus package. You can also send test messages with dbus-send. These programs have their own man pages.
If you want to know what the daemon itself is doing, you might consider running a separate copy of the daemon to test against. This will allow you to put the daemon under a debugger, or run it with verbose output, without messing up your real session and system daemons.
To run a separate test copy of the daemon, for example you might open a terminal and type:
DBUS_VERBOSE=1 dbus-daemon --session --print-address
The test daemon address will be printed when the daemon starts. You will need to copy-and-paste this address and use it as the value of the DBUS_SESSION_BUS_ADDRESS environment variable when you launch the applications you want to test. This will cause those applications to connect to your test bus instead of the DBUS_SESSION_BUS_ADDRESS of your real session bus.
DBUS_VERBOSE=1 will have NO EFFECT unless your copy of D-Bus was compiled with verbose mode enabled. This is not recommended in production builds due to performance impact. You may need to rebuild D-Bus if your copy was not built with debugging in mind. (DBUS_VERBOSE also affects the D-Bus library and thus applications using D-Bus; it may be useful to see verbose output on both the client side and from the daemon.)
If you want to get fancy, you can create a custom bus configuration for your test bus (see the session.conf and system.conf files that define the two default configurations for example). This would allow you to specify a different directory for .service files, for example.
See http://www.freedesktop.org/software/dbus/doc/AUTHORS
Please send bug reports to the D-Bus mailing list or bug tracker, see http://www.freedesktop.org/software/dbus/
1. relay connections via Secure Shell or a similar protocol https://lists.freedesktop.org/archives/dbus/2018-April/017447.html
X0VNCSERVER(1)                   TigerVNC Manual                  X0VNCSERVER(1)
x0vncserver - TigerVNC Server for X displays
x0vncserver [options] x0vncserver -version
x0vncserver is a TigerVNC Server which makes any X display remotely accessible via VNC, TigerVNC or compatible viewers.  Unlike Xvnc(1), it does not create a virtual display.  Instead, it just shares an existing X server (typically, that one connected to the physical screen).
XDamage will be used if the existing X server supports it. Otherwise x0vncserver will fall back to polling the screen for changes.
x0vncserver interprets the command line as a list of parameters with optional values.  Running x0vncserver -h will show a list of all valid parameters with short descriptions.  All parameters are optional, but normally you would have to use the PasswordFile parameter (see its description below).
There are several forms of specifying parameters in the command line (here we use `SomeParameter' as an example parameter name):
-SomeParameter Enable the parameter, turn the feature on.  This form can be used with parameters that simply enable or disable some feature.
-SomeParameter=0 Disable the parameter, turn the feature off.
-SomeParameter=value Assign the specified value to the parameter.  The leading dash can be omitted, or it can be doubled if desired (like in GNU-style long options).
Parameter names are case-insensitive, their order in the command line can be arbitrary.
-desktop desktop-name Each desktop has a name which may be displayed by the viewer. It defaults to "<user>@<hostname>".
-display display The X display name.  If not specified, it defaults to the value of the DISPLAY environment variable.
-rfbport port Specifies the TCP port on which x0vncserver listens for connections from viewers (the protocol used in VNC is called RFB - "remote framebuffer").  The default port is 5900. Listening on TCP port can be disabled with -fbport=-1.
-UseIPv4 Use IPv4 for incoming and outgoing connections. Default is on.
-UseIPv6 Use IPv6 for incoming and outgoing connections. Default is on.
-rfbunixpath path Specifies the path of a Unix domain socket on which x0vncserver listens for connections from viewers.
-rfbunixmode mode Specifies the mode of the Unix domain socket.  The default is 0600.
-Log logname:dest:level Configures the debug log settings.  dest can currently be stderr, stdout or syslog, and level is between 0 and 100, 100 meaning most verbose output.  logname is usually * meaning all, but you can target a specific source file if you know the name of its "LogWriter".  Default is *:stderr:30.
-HostsFile filename This parameter allows to specify a file name with IP access control rules.  The file should include one rule per line, and the rule format is one of the following: +address/prefix (accept connections from the specified address group), -address/prefix (reject connections) or ?address/prefix (query the local user). The first rule matching the IP address determines the action to be performed.  Rules that include only an action sign (+, - or ?) will match any IP address.  Prefix is optional and is specified as a number of bits (e.g. /24).  Default is to accept connections from any IP address.
-SecurityTypes sec-types Specify which security scheme to use for incoming connections. Valid values are a comma separated list of None, VncAuth, Plain, TLSNone, TLSVnc, TLSPlain, X509None, X509Vnc and X509Plain. Default is VncAuth,TLSVnc.
-rfbauth passwd-file, -PasswordFile passwd-file Password file for VNC authentication.  There is no default, you should specify the password file explicitly.  Password file should be created with the vncpasswd(1) utility.  The file is accessed each time a connection comes in, so it can be changed on the fly.
-Password password Obfuscated binary encoding of the password which clients must supply to access the server.  Using this parameter is insecure, use PasswordFile parameter instead.
-PlainUsers user-list A comma separated list of user names that are allowed to authenticate via any of the "Plain" security types (Plain, TLSPlain, etc.). Specify * to allow any user to authenticate using this security type. Default is to deny all users.
-pam_service name, -PAMService name PAM service name to use when authentication users using any of the "Plain" security types. Default is vnc.
-X509Cert path Path to a X509 certificate in PEM format to be used for all X509 based security types (X509None, X509Vnc, etc.).
-X509Key path Private key counter part to the certificate given in X509Cert. Must also be in PEM format.
-GnuTLSPriority priority GnuTLS priority string that controls the TLS sessionâ€™s handshake algorithms.  See the GnuTLS manual for possible values. Default is NORMAL.
-UseBlacklist Temporarily reject connections from a host if it repeatedly fails to authenticate. Default is on.
-BlacklistThreshold count The number of unauthenticated connection attempts allowed from any individual host before that host is black-listed.  Default is 5.
-BlacklistTimeout seconds The initial timeout applied when a host is first black-listed. The host cannot re-attempt a connection until the timeout expires. Default is 10.
-QueryConnect Prompts the user of the desktop to explicitly accept or reject incoming connections. Default is off.
-QueryConnectTimeout seconds Number of seconds to show the Accept Connection dialog before rejecting the connection.  Default is 10.
-localhost Only allow connections from the same machine. Useful if you use SSH and want to stop non-SSH connections from any other hosts.
-interface IP address Listen on interface. By default x0vncserver listens on all available interfaces.
-AlwaysShared Always treat incoming connections as shared, regardless of the client-specified setting. Default is off.
-NeverShared Never treat incoming connections as shared, regardless of the client-specified setting. Default is off.
-DisconnectClients Disconnect existing clients if an incoming connection is non- shared. Default is on. If DisconnectClients is false, then a new non-shared connection will be refused while there is a client active.  When combined with NeverShared this means only one client is allowed at a time.
-AcceptKeyEvents Accept key press and release events from clients. Default is on.
-AcceptPointerEvents Accept pointer press and release events from clients. Default is on.
-AcceptSetDesktopSize Accept requests to resize the size of the desktop. Default is on.
-RemapKeys mapping Sets up a keyboard mapping.  mapping is a comma-separated string of character mappings, each of the form char->char, or char<>char, where char is a hexadecimal keysym. For example, to exchange the " and @ symbols you would specify the following:
RemapKeys=0x22<>0x40
-RawKeyboard Send keyboard events straight through and avoid mapping them to the current keyboard layout. This effectively makes the keyboard behave according to the layout configured on the server instead of the layout configured on the client. Default is off.
-Protocol3.3 Always use protocol version 3.3 for backwards compatibility with badly-behaved clients. Default is off.
-Geometry geometry This option specifies the screen area that will be shown to VNC clients.  The format is widthxheight+xoffset+yoffset , where `+' signs can be replaced with `-' signs to specify offsets from the right and/or from the bottom of the screen.  Offsets are optional, +0+0 is assumed by default (top left corner).  If the argument is empty, full screen is shown to VNC clients (this is the default).
-MaxProcessorUsage percent Maximum percentage of CPU time to be consumed when polling the screen.  Default is 35.
-PollingCycle milliseconds Milliseconds per one polling cycle.  Actual interval may be dynamically adjusted to satisfy MaxProcessorUsage setting. Default is 30.
-FrameRate fps The maximum number of updates per second sent to each client. If the screen updates any faster then those changes will be aggregated and sent in a single update to the client. Note that this only controls the maximum rate and a client may get a lower rate when resources are limited. Default is 60.
-CompareFB mode Perform pixel comparison on framebuffer to reduce unnecessary updates. Can be either 0 (off), 1 (always) or 2 (auto). Default is 2.
-UseSHM Use MIT-SHM extension if available.  Using that extension accelerates reading the screen.  Default is on.
-ZlibLevel level Zlib compression level for ZRLE encoding (it does not affect Tight encoding).  Acceptable values are between 0 and 9.  Default is to use the standard compression level provided by the zlib(3) compression library.
-ImprovedHextile Use improved compression algorithm for Hextile encoding which achieves better compression ratios by the cost of using slightly more CPU time.  Default is on.
-IdleTimeout seconds The number of seconds after which an idle VNC connection will be dropped.  Default is 0, which means that idle connections will never be dropped.
-MaxDisconnectionTime seconds Terminate when no client has been connected for N seconds. Default is 0.
-MaxConnectionTime seconds Terminate when a client has been connected for N seconds.  Default is 0.
-MaxIdleTime seconds Terminate after N seconds of user inactivity.  Default is 0.
Xvnc(1), vncpasswd(1), https://www.tigervnc.org/
Constantin Kaplinsky and others.
pasuspender(1)               General Commands Manual              pasuspender(1)
pasuspender - Temporarily suspend PulseAudio
pasuspender [options] -- PROGRAM [ARGUMENTS ...]
pasuspender --help
pasuspender --version
pasuspender is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications access them directly. pasuspender will suspend access to the audio devices, fork a child process, and when the child process terminates, resume access again.
Make sure to include -- in your pasuspender command line before passing the subprocess command line (as shown above). Otherwise pasuspender itself might end up interpreting the command line switches and options you intended to pass to the subprocess.
-s | --server=SERVER Specify the sound server to connect to.
pulseaudio(1), padsp(1), pacmd(1), pactl(1)
gh-extension - Manage gh extensions
gh extension [flags]
GitHub CLI extensions are repositories that provide additional gh commands.
The name of the extension repository must start with "gh-" and it must contain an executable of the same name. All arguments passed to the gh <extname> invocation will be forwarded to the gh-<extname> executable of the extension.
An extension cannot override any of the core gh commands.
See the list of available extensions at https://github.com/topics/gh- extension ⟨https://github.com/topics/gh-extension⟩
gh(1), gh-extension-create(1), gh-extension-install(1), gh-extension- list(1), gh-extension-remove(1), gh-extension-upgrade(1)
NINJA(1)                          User Commands                         NINJA(1)
ninja - small build system closest in spirit to Make
usage: ninja [options] [targets...]
if targets are unspecified, builds the 'default' target (see manual).
options: --version print ninja version ("1.10.1")
-v, --verbose show all command lines while building
-C DIR change to DIR before doing anything else
-f FILE specify input build file [default=build.ninja]
-j N   run N jobs in parallel (0 means infinity) [default=#CPUs]
-k N   keep going until N jobs fail (0 means infinity) [default=1]
-l N   do not start new jobs if the load average is greater than N
-n     dry run (don't run commands but act like they succeeded)
-d MODE enable debugging (use '-d list' to list modes)
-t TOOL run a subtool (use '-t list' to list subtools)
terminates toplevel options; further flags are passed to the tool
-w FLAG adjust warnings (use '-w list' to list warnings)
This manual page was written by Gary Kramlich <grim@reaperworld.com> for the Debian GNU/Linux system (but may be used by others).
ffuf(1)                           User Commands                          ffuf(1)
ffuf - Fast web fuzzer written in Go
ffuf [options]
ffuf is a fest web fuzzer written in Go that allows typical directory discovery, virtual host discovery (without DNS records) and GET and POST parameter fuzzing.
HTTP OPTIONS:
-H     Header "Name: Value", separated by colon. Multiple -H flags are accepted.
-X     HTTP method to use (default: GET)
-b     Cookie data "NAME1=VALUE1; NAME2=VALUE2" for copy as curl functionality.
-d     POST data
-r     Follow redirects (default: false)
-recursion Scan recursively. Only FUZZ keyword is supported, and URL (-u) has to end in it. (default: false) -recursion-depth Maximum recursion depth. (default: 0)
-replay-proxy Replay matched requests using this proxy.
-timeout HTTP request timeout in seconds. (default: 10)
-u     Target URL
-x     HTTP Proxy URL
GENERAL OPTIONS:
-V     Show version information. (default: false)
-ac    Automatically calibrate filtering options (default: false)
-acc   Custom auto-calibration string. Can be used multiple times. Implies -ac
-c     Colorize output. (default: false)
-maxtime Maximum running time in seconds. (default: 0)
-p     Seconds of 'delay' between requests, or a range of random delay. For example "0.1" or "0.1-2.0"
-s     Do not print additional information (silent mode) (default: false)
-sa    Stop on all error cases. Implies -sf and -se. (default: false)
-se    Stop on spurious errors (default: false)
-sf    Stop when > 95% of responses return 403 Forbidden (default: false)
-t     Number of concurrent threads. (default: 40)
-v     Verbose output, printing full URL and redirect location (if any) with the results. (default: false)
MATCHER OPTIONS:
-mc    Match HTTP status codes, or "all" for everything. (default: 200,204,301,302,307,401,403)
-ml    Match amount of lines in response
-mr    Match regexp
-ms    Match HTTP response size
-mw    Match amount of words in response
FILTER OPTIONS:
-fc    Filter HTTP status codes from response. Comma separated list of codes and ranges
-fl    Filter by amount of lines in response. Comma separated list of line counts and ranges
-fr    Filter regexp
-fs    Filter HTTP response size. Comma separated list of sizes and ranges
-fw    Filter by amount of words in response. Comma separated list of word counts and ranges
INPUT OPTIONS:
-D     DirSearch wordlist compatibility mode. Used in conjunction with -e flag. (default: false)
-e     Comma separated list of extensions. Extends FUZZ keyword.
-ic    Ignore wordlist comments (default: false)
-input-cmd Command producing the input. --input-num is required when using this input method. Overrides -w.
-input-num Number of inputs to test. Used in conjunction with --input- cmd. (default: 100)
-mode  Multi-wordlist operation mode. Available modes: clusterbomb, pitchfork (default: clusterbomb)
-request File containing the raw http request
-request-proto Protocol to use along with raw request (default: https)
-w     Wordlist file path and (optional) keyword separated by colon. eg. '/path/to/wordlist:KEYWORD'
OUTPUT OPTIONS:
-debug-log Write all of the internal logging to the specified file.
-o     Write output to file
-od    Directory path to store matched results to.
-of    Output file format. Available formats: json, ejson, html, md, csv, ecsv (default: json)
EXAMPLE USAGE: Fuzz file paths from wordlist.txt, match all responses but filter out those with content-size 42.  Colored, verbose output.  ffuf -w wordlist.txt -u https://example.org/FUZZ -mc all -fs 42 -c -v
Fuzz Host-header, match HTTP 200 responses.  ffuf -w hosts.txt -u https://example.org/ -H "Host: FUZZ" -mc 200
Fuzz POST JSON data. Match all responses not containing text "error".  ffuf -w entries.txt -u https://example.org/ -X POST -H "Content-Type: application/json" -d '{"name": "FUZZ", "anotherkey": "anothervalue"}' -fr "error"
Fuzz multiple locations. Match only responses reflecting the value of "VAL" keyword. Colored.  ffuf -w params.txt:PARAM -w values.txt:VAL -u https://example.org/?PARAM=VAL -mr "VAL" -c
More information and examples: https://github.com/ffuf/ffuf
This manual page was written based on the author's README by Pedro Loami Barbosa dos Santos <pedro@loami.eng.br> for the Debian project (but may be used by others).
CVS(1)                       General Commands Manual                      CVS(1)
cvs - Concurrent Versions System
cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
This manpage is a summary of some of the features of cvs.  It is auto- generated from an appendix of the CVS manual.  For more in-depth documentation, please consult the Cederqvist manual (via the info CVS command or otherwise, as described in the SEE ALSO section of this manpage).  Cross-references in this man page refer to nodes in the same.
CVS commands Guide to CVS commands This appendix describes the overall structure of cvs commands, and describes some commands in detail (others are described elsewhere; for a quick reference to cvs commands, see node `Invoking CVS' in the CVS manual).
Structure Overall structure of CVS commands The overall format of all cvs commands is:
The name of the cvs program.
cvs_options
Some options that affect all sub-commands of cvs.  These are described below.
cvs_command
One of several different sub-commands.  Some of the commands have aliases that can be used instead; those aliases are noted in the reference manual for that command.  There are only two situations where you may omit cvs_command: cvs -H elicits a list of available commands, and cvs -v displays version information on cvs itself.
command_options
Options that are specific for the command.
command_args
Arguments to the commands.
There is unfortunately some confusion between cvs_options and command_options.  When given as a cvs_option, some options only affect some of the commands.  When given as a command_option it may have a different meaning, and be accepted by more commands.  In other words, do not take the above categorization too seriously.  Look at the documentation instead.
Exit status CVS's exit status cvs can indicate to the calling environment whether it succeeded or failed by setting its exit status.  The exact way of testing the exit status will vary from one operating system to another.  For example in a unix shell script the $? 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 there is an error, it prints an error message and returns a failure status.  The one exception to this is the cvs diff command.  It will return a successful status if it found no differences, or a failure status if there were differences or if there was an error.  Because this behavior provides no good way to detect errors, in the future it is possible that cvs diff will be changed to behave like the other cvs commands.
~/.cvsrc Default options and the ~/.cvsrc file There are some command_options that are used so often that you might have set up an alias or some other means to make sure you always specify that option.  One example (the one that drove the implementation of the .cvsrc support, actually) is that many people find the default output of the diff command to be very hard to read, and that either context diffs or unidiffs are much easier to understand.
The ~/.cvsrc file is a way that you can add default options to cvs_commands within cvs, instead of relying on aliases or other shell scripts.
The format of the ~/.cvsrc file is simple.  The file is searched for a line that begins with the same name as the cvs_command being executed. If a match is found, then the remainder of the line is split up (at whitespace characters) into separate options and added to the command arguments before any options from the command line.
If a command has two names (e.g., checkout and co), the official name, not necessarily the one used on the command line, will be used to match against the file.  So if this is the contents of the user's ~/.cvsrc file:
log -N diff -uN rdiff -u update -Pd checkout -P release -d
the command cvs checkout foo would have the -P option added to the arguments, as well as cvs co foo.
With the example file above, the output from cvs diff foobar will be in unidiff format.  cvs diff -c foobar will provide context diffs, as usual. Getting "old" format diffs would be slightly more complicated, because diff doesn't have an option to specify use of the "old" format, so you would need cvs -f diff foobar.
In place of the command name you can use cvs to specify global options (see node `Global options' in the CVS manual).  For example the following line in .cvsrc
cvs -z6
causes cvs to use compression level 6.
Global options The available cvs_options (that are given to the left of cvs_command) are:
--allow-root=rootdir
Specify legal cvsroot directory.  See `Password authentication server' in the CVS manual.
Authenticate all communication between the client and the server.  Only has an effect on the cvs client.  As of this writing, this is only implemented when using a GSSAPI connection (see node `GSSAPI authenticated' in the CVS manual).  Authentication prevents certain sorts of attacks involving hijacking the active tcp connection. Enabling authentication does not enable encryption.
-b bindir
In cvs 1.9.18 and older, this specified that rcs programs are in the bindir directory.  Current versions of cvs do not run rcs programs; for compatibility this option is accepted, but it does nothing.
-T tempdir
Use tempdir as the directory where temporary files are located. Overrides the setting of the $TMPDIR environment variable and any precompiled directory.  This parameter should be specified as an absolute pathname.  (When running client/server, -T affects only the local process; specifying -T for the client has no effect on the server and vice versa.)
-d cvs_root_directory
Use cvs_root_directory as the root directory pathname of the repository.  Overrides the setting of the $CVSROOT environment variable.  See `Repository' in the CVS manual.
-e editor
Use editor to enter revision log information.  Overrides the setting of the $CVSEDITOR and $EDITOR environment variables.  For more information, see `Committing your changes' in the CVS manual.
Do not read the ~/.cvsrc file.  This option is most often used because of the non-orthogonality of the cvs option set.  For example, the cvs log option -N (turn off display of tag names) does not have a corresponding option to turn the display on.  So if you have -N in the ~/.cvsrc entry for log, you may need to use -f to show the tag names.
Display usage information about the specified cvs_command (but do not actually execute the command).  If you don't specify a command name, cvs -H displays overall help for cvs, including a list of other help options.
Do not change any files.  Attempt to execute the cvs_command, but only to issue reports; do not remove, update, or merge any existing files, or create any new files.
Note that cvs will not necessarily produce exactly the same output as without -n.  In some cases the output will be the same, but in other cases cvs will skip some of the processing that would have been required to produce the exact same output.
Cause the command to be really quiet; the command will only generate output for serious problems.
Cause the command to be somewhat quiet; informational messages, such as reports of recursion through subdirectories, are suppressed.
Make new working files read-only.  Same effect as if the $CVSREAD environment variable is set (see node `Environment variables' in the CVS manual).  The default is to make working files writable, unless watches are on (see node `Watches' in the CVS manual).
-s variable=value
Set a user variable (see node `Variables' in the CVS manual).
Trace program execution; display messages showing the steps of cvs activity.  Particularly useful with -n to explore the potential impact of an unfamiliar command.
Display version and copyright information for cvs.
Make new working files read-write.  Overrides the setting of the $CVSREAD environment variable.  Files are created read-write by default, unless $CVSREAD is set or -r is given.
Encrypt all communication between the client and the server.  Only has an effect on the cvs client.  As of this writing, this is only implemented when using a GSSAPI connection (see node `GSSAPI authenticated' in the CVS manual) or a Kerberos connection (see node `Kerberos authenticated' in the CVS manual).  Enabling encryption implies that message traffic is also authenticated.  Encryption support is not available by default; it must be enabled using a special configure option, --enable-encryption, when you build cvs.
-z gzip-level
Set the compression level.  Valid levels are 1 (high speed, low compression) to 9 (low speed, high compression), or 0 to disable compression (the default).  Only has an effect on the cvs client.
Common options Common command options This section describes the command_options that are available across several cvs commands.  These options are always given to the right of cvs_command. Not all commands support all of these options; each option is only supported for commands where it makes sense.  However, when a command has one of these options you can almost always count on the same behavior of the option as in other commands.  (Other command options, which are listed with the individual commands, may have different behavior from one cvs command to the other).
The history command is an exception; it supports many options that conflict even with these standard options.
-D date_spec
Use the most recent revision no later than date_spec.  date_spec is a single argument, a date description specifying a date in the past.
The specification is sticky when you use it to make a private copy of a source file; that is, when you get a working file using -D, cvs records the date you specified, so that further updates in the same directory will use the same date (for more information on sticky tags/dates, see node `Sticky tags' in the CVS manual).
-D is available with the annotate, checkout, diff, export, history, rdiff, rtag, and update commands.  (The history command uses this option in a slightly different way; see node `history options' in the CVS manual).
A wide variety of date formats are supported by cvs.  The most standard ones are ISO8601 (from the International Standards Organization) and the Internet e-mail standard (specified in RFC822 as amended by RFC1123).
ISO8601 dates have many variants but a few examples are:
1972-09-24 1972-09-24 20:05
There are a lot more ISO8601 date formats, and cvs accepts many of them, but you probably don't want to hear the whole long story :-).
In addition to the dates allowed in Internet e-mail itself, cvs also allows some of the fields to be omitted.  For example:
24 Sep 1972 20:05 24 Sep
The date is interpreted as being in the local timezone, unless a specific timezone is specified.
These two date formats are preferred.  However, cvs currently accepts a wide variety of other date formats.  They are intentionally not documented here in any detail, and future versions of cvs might not accept all of them.
One such format is month/day/year.  This may confuse people who are accustomed to having the month and day in the other order; 1/4/96 is January 4, not April 1.
Remember to quote the argument to the -D flag so that your shell doesn't interpret spaces as argument separators.  A command using the -D flag can look like this:
$ cvs diff -D "1 hour ago" cvs.texinfo
When you specify a particular date or tag to cvs commands, they normally ignore files that do not contain the tag (or did not exist prior to the date) that you specified.  Use the -f option if you want files retrieved even when there is no match for the tag or date.  (The most recent revision of the file will be used).
Note that even with -f, a tag that you specify must exist (that is, in some file, not necessary in every file).  This is so that cvs will continue to give an error if you mistype a tag name.
-f is available with these commands: annotate, checkout, export, rdiff, rtag, and update.
WARNING:  The commit and remove commands also have a -f option, but it has a different behavior for those commands.  See `commit options' in the CVS manual, and `Removing files' in the CVS manual.
-k kflag
Alter the default processing of keywords.  See `Keyword substitution' in the CVS manual, for the meaning of kflag.  Your kflag specification is sticky when you use it to create a private copy of a source file; that is, when you use this option with the checkout or update commands, cvs associates your selected kflag with the file, and continues to use it with future update commands on the same file until you specify otherwise.
The -k option is available with the add, checkout, diff, rdiff, import and update commands.
Local; run only in current working directory, rather than recursing through subdirectories.
Available with the following commands: annotate, checkout, commit, diff, edit, editors, export, log, rdiff, remove, rtag, status, tag, unedit, update, watch, and watchers.
-m message
Use message as log information, instead of invoking an editor.
Available with the following commands: add, commit and import.
Do not run any tag program.  (A program can be specified to run in the modules database (see node `modules' in the CVS manual); this option bypasses it).
This is not the same as the cvs -n program option, which you can specify to the left of a cvs command!
Available with the checkout, export, and rtag commands.
Prune empty directories.  See `Removing directories' in the CVS manual.
Pipe the files retrieved from the repository to standard output, rather than writing them in the current directory.  Available with the checkout and update commands.
Process directories recursively.  This is on by default.
Available with the following commands: annotate, checkout, commit, diff, edit, editors, export, rdiff, remove, rtag, status, tag, unedit, update, watch, and watchers.
-r tag
Use the revision specified by the tag argument instead of the default head revision.  As well as arbitrary tags defined with the tag or rtag command, two special tags are always available: HEAD refers to the most recent version available in the repository, and BASE refers to the revision you last checked out into the current working directory.
The tag specification is sticky when you use this with checkout or update to make your own copy of a file: cvs remembers the tag and continues to use it on future update commands, until you specify otherwise (for more information on sticky tags/dates, see node `Sticky tags' in the CVS manual).
The tag can be either a symbolic or numeric tag, as described in `Tags' in the CVS manual, or the name of a branch, as described in `Branching and merging' in the CVS manual.  When a command expects a specific revision, the name of a branch is interpreted as the most recent revision on that branch.
Specifying the -q global option along with the -r command option is often useful, to suppress the warning messages when the rcs file does not contain the specified tag.
This is not the same as the overall cvs -r option, which you can specify to the left of a cvs command!
-r is available with the annotate, checkout, commit, diff, history, export, rdiff, rtag, and update commands.
Specify file names that should be filtered.  You can use this option repeatedly.  The spec can be a file name pattern of the same type that you can specify in the .cvswrappers file.  Available with the following commands: import, and update.
add Add files and directories to the repository • Synopsis: add [-k rcs-kflag] [-m message] files...
• Requires: repository, working directory.
• Changes: repository, working directory.
The add command is used to present new files and directories for addition into the cvs repository.  When add is used on a directory, a new directory is created in the repository immediately.  When used on a file, only the working directory is updated.  Changes to the repository are not made until the commit command is used on the newly added file.
The add command also resurrects files that have been previously removed.  This can be done before or after the commit command is used to finalize the removal of files.  Resurrected files are restored into the working directory at the time the add command is executed.
add options These standard options are supported by add (see node `Common options' in the CVS manual, for a complete description of them):
Process keywords according to kflag.  See `Keyword substitution' in the CVS manual.  This option is sticky; future updates of this file in this working directory will use the same kflag.  The status command can be viewed to see the sticky options.  For more information on the status command, see node `Invoking CVS' in the CVS manual.
Use message as the log message, instead of invoking an editor.
add examples Adding a directory $ mkdir doc $ cvs add doc Directory /path/to/repository/doc added to the repository
Adding a file $ >TODO $ cvs add TODO cvs add: scheduling file `TODO' for addition cvs add: use 'cvs commit' to add this file permanently
Undoing a remove command $ rm -f makefile $ cvs remove makefile cvs remove: scheduling `makefile' for removal cvs remove: use 'cvs commit' to remove this file permanently $ cvs add makefile U makefile cvs add: makefile, version 1.2, resurrected
admin Administration • Requires: repository, working directory.
• Changes: repository.
• Synonym: rcs
This is the cvs interface to assorted administrative facilities.  Some of them have questionable usefulness for cvs but exist for historical purposes.  Some of the questionable options are likely to disappear in the future.  This command does work recursively, so extreme care should be used.
On unix, if there is a group named cvsadmin, only members of that group can run cvs admin (except for the cvs admin -k command, which can be run by anybody).  This group should exist on the server, or any system running the non-client/server cvs.  To disallow cvs admin for all users, create a group with no users in it.  On NT, the cvsadmin feature does not exist and all users can run cvs admin.
admin options Some of these options have questionable usefulness for cvs but exist for historical purposes.  Some even make it impossible to use cvs until you undo the effect!
-Aoldfile
Might not work together with cvs.  Append the access list of oldfile to the access list of the rcs file.
-alogins
Might not work together with cvs.  Append the login names appearing in the comma-separated list logins to the access list of the rcs file.
-b[rev]
Set the default branch to rev.  In cvs, you normally do not manipulate default branches; sticky tags (see node `Sticky tags' in the CVS manual) are a better way to decide which branch you want to work on. There is one reason to run cvs admin -b: to revert to the vendor's version when using vendor branches (see node `Reverting local changes' in the CVS manual).  There can be no space between -b and its argument.
-cstring
Sets the comment leader to string.  The comment leader is not used by current versions of cvs or rcs 5.7.  Therefore, you can almost surely not worry about it.  See `Keyword substitution' in the CVS manual.
-e[logins]
Might not work together with cvs.  Erase the login names appearing in the comma-separated list logins from the access list of the RCS file. If logins is omitted, erase the entire access list.  There can be no space between -e and its argument.
Run interactively, even if the standard input is not a terminal.  This option does not work with the client/server cvs and is likely to disappear in a future release of cvs.
Useless with cvs.  This creates and initializes a new rcs file, without depositing a revision.  With cvs, add files with the cvs add command (see node `Adding files' in the CVS manual).
-ksubst
Set the default keyword substitution to subst.  See `Keyword substitution' in the CVS manual.  Giving an explicit -k option to cvs update, cvs export, or cvs checkout overrides this default.
-l[rev]
Lock the revision with number rev.  If a branch is given, lock the latest revision on that branch.  If rev is omitted, lock the latest revision on the default branch.  There can be no space between -l and its argument.
This can be used in conjunction with the rcslock.pl script in the contrib directory of the cvs source distribution to provide reserved checkouts (where only one user can be editing a given file at a time). See the comments in that file for details (and see the README file in that directory for disclaimers about the unsupported nature of contrib).  According to comments in that file, locking must set to strict (which is the default).
Set locking to strict.  Strict locking means that the owner of an RCS file is not exempt from locking for checkin.  For use with cvs, strict locking must be set; see the discussion under the -l option above.
-mrev:msg
Replace the log message of revision rev with msg.
-Nname[:[rev]]
Act like -n, except override any previous assignment of name.  For use with magic branches, see `Magic branch numbers' in the CVS manual.
-nname[:[rev]]
Associate the symbolic name name with the branch or revision rev.  It is normally better to use cvs tag or cvs rtag instead.  Delete the symbolic name if both : and rev are omitted; otherwise, print an error message if name is already associated with another number.  If rev is symbolic, it is expanded before association.  A rev consisting of a branch number followed by a . stands for the current latest revision in the branch.  A : with an empty rev stands for the current latest revision on the default branch, normally the trunk.  For example, cvs admin -nname: associates name with the current latest revision of all the RCS files; this contrasts with cvs admin -nname:$ which associates name with the revision numbers extracted from keyword strings in the corresponding working files.
-orange
Deletes (outdates) the revisions given by range.
Note that this command can be quite dangerous unless you know exactly what you are doing (for example see the warnings below about how the rev1:rev2 syntax is confusing).
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 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 first.
Specify range in one of the following ways:
rev1::rev2
Collapse all revisions between rev1 and rev2, so that cvs only stores the differences associated with going from rev1 to rev2, not intermediate steps.  For example, after -o 1.3::1.5 one can retrieve revision 1.3, revision 1.5, or the differences to get from 1.3 to 1.5, but not the revision 1.4, or the differences between 1.3 and 1.4.  Other examples: -o 1.3::1.4 and -o 1.3::1.3 have no effect, because there are no intermediate revisions to remove.
::rev
Collapse revisions between the beginning of the branch containing rev and rev itself.  The branchpoint and rev are left intact.  For example, -o ::1.3.2.6 deletes revision 1.3.2.1, revision 1.3.2.5, and everything in between, but leaves 1.3 and 1.3.2.6 intact.
rev::
Collapse revisions between rev and the end of the branch containing rev.  Revision rev is left intact but the head revision is deleted.
Delete the revision rev.  For example, -o 1.3 is equivalent to -o 1.2::1.4.
rev1:rev2
Delete the revisions from rev1 to rev2, inclusive, on the same branch.  One will not be able to retrieve rev1 or rev2 or any of the revisions in between.  For example, the command cvs admin -oR_1_01:R_1_02 . is rarely useful.  It means to delete revisions up to, and including, the tag R_1_02.  But beware!  If there are files that have not changed between R_1_02 and R_1_03 the file will have the same numerical revision number assigned to the tags R_1_02 and R_1_03.  So not only will it be impossible to retrieve R_1_02; R_1_03 will also have to be restored from the tapes!  In most cases you want to specify rev1::rev2 instead.
:rev
Delete revisions from the beginning of the branch containing rev up to and including rev.
rev:
Delete revisions from revision rev, including rev itself, to the end of the branch containing rev.
None of the revisions to be deleted may have branches or locks.
If any of the revisions to be deleted have symbolic names, and one specifies one of the :: syntaxes, then cvs will give an error and not delete any revisions.  If you really want to delete both the symbolic names and the revisions, first delete the symbolic names with cvs tag -d, then run cvs admin -o.  If one specifies the non-:: syntaxes, then cvs will delete the revisions but leave the symbolic names pointing to nonexistent revisions.  This behavior is preserved for compatibility with previous versions of cvs, but because it isn't very useful, in the future it may change to be like the :: case.
Due to the way cvs handles branches rev cannot be specified symbolically if it is a branch.  See `Magic branch numbers' in the CVS manual for an explanation.
Make sure that no-one has checked out a copy of the revision you outdate.  Strange things will happen if he starts to edit it and tries to check it back in.  For this reason, this option is not a good way to take back a bogus commit; commit a new revision undoing the bogus change instead (see node `Merging two revisions' in the CVS manual).
Run quietly; do not print diagnostics.
-sstate[:rev]
Useful with cvs.  Set the state attribute of the revision rev to state. If rev is a branch number, assume the latest revision on that branch. If rev is omitted, assume the latest revision on the default branch. Any identifier is acceptable for state.  A useful set of states is Exp (for experimental), Stab (for stable), and Rel (for released).  By default, the state of a new revision is set to Exp when it is created. The state is visible in the output from cvs log (see node `log' in the CVS manual), and in the $Log$ and $State$ keywords (see node `Keyword substitution' in the CVS manual).  Note that cvs uses the dead state for its own purposes (see node `Attic' in the CVS manual); to take a file to or from the dead state use commands like cvs remove and cvs add (see node `Adding and removing' in the CVS manual), not cvs admin -s.
-t[file]
Useful with cvs.  Write descriptive text from the contents of the named file into the RCS file, deleting the existing text.  The file pathname may not begin with -.  The descriptive text can be seen in the output from cvs log (see node `log' in the CVS manual).  There can be no space between -t and its argument.
If file is omitted, obtain the text from standard input, terminated by end-of-file or by a line containing . by itself.  Prompt for the text if interaction is possible; see -I.
-t-string
Similar to -tfile. Write descriptive text from the string into the rcs file, deleting the existing text.  There can be no space between -t and its argument.
Set locking to non-strict.  Non-strict locking means that the owner of a file need not lock a revision for checkin.  For use with cvs, strict locking must be set; see the discussion under the -l option above.
-u[rev]
See the option -l above, for a discussion of using this option with cvs.  Unlock the revision with number rev.  If a branch is given, unlock the latest revision on that branch.  If 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 the original locker to be sent a commit notification (see node `Getting Notified' in the CVS manual).  There can be no space between -u and its argument.
-Vn
In previous versions of cvs, this option meant to write an rcs file which would be acceptable to rcs version n, but it is now obsolete and specifying it will produce an error.
-xsuffixes
In previous versions of cvs, this was documented as a way of specifying the names of the rcs files.  However, cvs has always required that the rcs files used by cvs end in ,v, so this option has never done anything useful.
annotate What revision modified each line of a file? • Synopsis: annotate [options] files...
• Requires: repository.
• Synonym: blame
• Changes: nothing.
For each file in files, print the head revision of the trunk, together with information on the last modification for each line.