---
name: "co"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "openbsd"]
url: "https://new.carta.tech/co"
---

# co(1)

check out RCS revisions

## NAME

**co** – check out RCS revisions

## SYNOPSIS

**co** \[**-TV**\] \[**-d***date*\] \[**-f**\[*rev*\]\] \[**-I**\[*rev*\]\] \[**-k***mode*\] \[**-l**\[*rev*\]\] \[**-M**\[*rev*\]\] \[**-p**\[*rev*\]\] \[**-q**\[*rev*\]\] \[**-r**\[*rev*\]\] \[**-s***state*\] \[**-u**\[*rev*\]\] \[**-w**\[*user*\]\] \[**-x***suffixes*\] \[**-z***tz*\] *file ...*

## DESCRIPTION

The **co** program is used to check out revisions from RCS files.

When a file is checked out, a copy is taken from the RCS repository, minus its RCS information, and placed in the current working directory. Files may be checked out as the most recent revision or according to a specific revision, using the **-r** option.

Files are checked out in one of two possible modes: unlocked (the default) or locked (using the **-l** option). In unlocked mode, any user may check out the file for reading. If changes are to be made to a file though, it will have to be locked using the **-l** option. During this time, no other users may check out the file whilst it is locked.

**co** also supports keyword substitution – see the [rcs(1)](/rcs/1.md) man page for more information.

The following options are supported:

- **-d***date*

  Retrieve revision as of the latest revision no later than *date*.

- **-f**\[*rev*\]

  Force the overwriting of the working file.

- **-I**\[*rev*\]

  Interactive mode.

- **-k***mode*

  Specify the keyword substitution mode.

- **-l**\[*rev*\]

  The same as **-r**, but also locks the revision.

- **-M**\[*rev*\]

  Set the modification time of the file to the date of the retrieved revision.

- **-p**\[*rev*\]

  Print the latest revision no later than *rev* to standard output.

- **-q**\[*rev*\]

  Be quiet about reporting.

- **-r**\[*rev*\]

  Retrieve the latest revision no later than *rev*.

- **-s***state*

  Retrieve revision of the specified *state* only.

- **-T**

  Preserve the modification time of RCS files.

- **-u**\[*rev*\]

  The same as **-r**, but also unlocks the retrieved revision if it was locked.

- **-V**

  Print RCS's version number.

- **-w**\[*user*\]

  Retrieve the latest revision which was checked in by the specified *user*. If the *user* argument is omitted, the login of the user issuing the command is assumed.

- **-x***suffixes*

  Specifies the suffixes for RCS files. Suffixes should be separated by the ‘/’ character.

- **-z***tz*

  Specify the date output format in keyword substitution, and the default time zone for *date* used in the **-d** option.

## ENVIRONMENT

- RCSINIT

  If set, this variable should contain a list of space-delimited options that are prepended to the argument list.

## EXIT STATUS

The **co** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Retrieve the latest revision of file *foo.c* and lock it for further editing:

```
$ co -l foo.c
```

Retrieve revision 1.5 of file *foo.c*:

```
$ co -r1.5 foo.c
```

## SEE ALSO

[ci(1)](/ci/1.md), [ident(1)](/ident/1.md), [rcs(1)](/rcs/1.md), [rcsclean(1)](/rcsclean/1.md), [rcsdiff(1)](/rcsdiff/1.md), [rcsmerge(1)](/rcsmerge/1.md), [rlog(1)](/rlog/1.md)
