# Source Control

If you use CVS, you can check code in and out without leaving the IDE.

Related information:

- the Source Control movie (recommended)
- the following links in the Eclipse Workbench User Guide: Tasks-->Working in the team environment-->Working with a CVS repository (recommended)

Suggested prior reading:

- the IDE Concepts chapter

In this chapter:

- Introduction

# Introduction

The CVS Repository Exploring perspective lets you bring code from CVS into your workspace. While you're working on your code, the IDE automatically keeps track of the changes you make; it lets you roll back to an earlier version of a file that you saved but didn't commit to CVS. If another developer changes the source in CVS while you're working on it, the IDE helps you synchronize with CVS and resolve any conflicts. Finally, the CVS Repository Exploring perspective lets you check the modified code back into CVS.

| The IDE stores project information in `.project` and `.cdtproject` files; you must include them with your project when you commit it to CVS. Otherwise, you must manually set the nature of the project (e.g. Standard C Project). For more information about setting project natures, see the Common Wizards chapter.

Unlike many other components of the IDE, the CVS Repository Exploring perspective doesn't connect to a utility. Instead of connecting via the `cvs` utility, the IDE uses its own engine to connect directly to your CVS repository.

Because the CVS Repository Exploring perspective is a core Eclipse feature, we've covered the perspective only lightly in this book. For more information, follow these links the Eclipse Workbench User Guide: Tasks-->Working in the team environment.

This table may help you find information more easily:

If you want to: | See:
--- | ---
Connect to a CVS repository | Tasks-->Working in the team environment-->Working with a CVS repository-->Creating a CVS repository location
Check code out of a CVS repository | Tasks-->Working in the team environment-->Working with projects shared with CVS-->Checking out a project from a CVS repository
Synchronize with a CVS repository | Tasks-->Working in the team environment-->Synchronizing with the repository, especially the Updating section
Resolve CVS conflicts | Tasks-->Working in the team environment-->Synchronizing with the repository-->Resolving conflicts
Prevent certain files from being committed to CVS | Tasks-->Working in the team environment-->Synchronizing with the repository-->Version control life cycle: adding and ignoring resources
Create and apply a patch | Tasks-->Working in the team environment-->Working with patches
Track code changes that haven't been committed to CVS | Tasks-->Working with local history, especially the Comparing resources with the local history section
View an online FAQ about the CVS Repository Exploring perspective | Reference-->Team Support-->CVS