Go to the first, previous, next, last section, table of contents.

# Adding files to a directory

To add a new file to a directory, follow these steps.

- You must have a working copy of the directory. See section Getting the source.
- Create the new file inside your working copy of the directory.
- Use ``cvs add filename'` to tell CVS that you want to version control the file. If the file contains binary data, specify ``-kb'` (see section Handling binary files).
- Use ``cvs commit filename'` to actually check in the file into the repository. Other developers cannot see the file until you perform this step.

You can also use the `add` command to add a new directory.

Unlike most other commands, the `add` command is not recursive. You cannot even type ``cvs add foo/bar'`! Instead, you have to

    $ cd foo
    $ cvs add bar

Command: cvs add [`-k` kflag] [`-m` message] files ...

  Schedule files to be added to the repository. The files or directories specified with `add` must already exist in the current directory. To add a whole new directory hierarchy to the source repository (for example, files received from a third-party vendor), use the `import` command instead. See section import--Import sources into CVS, using vendor branches.

  The added files are not placed in the source repository until you use `commit` to make the change permanent. Doing an `add` on a file that was removed with the `remove` command will undo the effect of the `remove`, unless a `commit` command intervened. See section Removing files from a module, for an example.

  The ``-k'` option specifies the default way that this file will be checked out; for more information see section Substitution modes.

  The ``-m'` option specifies a description for the file. This description appears in the history log (if it is enabled, see section The history file). It will also be saved in the version history inside the repository when the file is committed. The `log` command displays this description. The description can be changed using ``admin -t'`. See section admin--Administration front end for rcs. If you omit the ``-m description'` flag, an empty string will be used. You will not be prompted for a description.

For example, the following commands add the file ``backend.c'` to the repository:

    $ cvs add backend.c
    $ cvs commit -m "Early version. Not yet compilable." backend.c

When you add a file it is added only on the branch which you are working on (see section Branches). You can later merge the additions to another branch if you want (see section Merging can add or remove files).

Go to the first, previous, next, last section, table of contents.