# Putting a Project under Perforce Control

Important: Keep the Eclipse workspace and the Perforce client workspaces separate, and do not place the Eclipse metadata files under Perforce control.

To put a project under Perforce control:

1. In the Java perspective's Package or Navigator pane, right-click the project and choose Team>Share Project… The Share Project dialog is displayed.
2. From the Repository Type list, choose Perforce and click Next. The Enter Perforce Server Connection Information dialog is displayed.
3. Choose Server connection for the Perforce server where you want the project to reside, and set the correct Target Perforce workspace location.
4. Check Move to Target for the projects which will be moved from Current Location to Target Perforce Workspace Location. Uncheck those projects which will stay at Current Location.
5. Click Finish.
6. For projects that already exist in the depot, you are done.
7. For projects that do not exist in the depot, in the Package or Navigator view, right-click the project folder, choose Team>Mark for Add.... In the Package Explorer view, the files to be added are (by default) decorated with red plus signs. In the Perforce perspective, the files are listed in the P4 Pending Changelists view.
8. To move files to a different changelist, click . On the Change Specification form, check the files that you want the changelist to include and click OK.
9. To submit the changelist, right-click it in the P4 Pending Changelists pane and choose Submit... The Perforce Change Specification dialog is displayed.
10. Enter a description and click OK. The project files are added to the depot according to the settings you specified.

If you subsequently add files to the project, you must also add them to Perforce as described above or using the line item created under the Infos heading in the Problems View.

To add a file to the depot:

1. Right-click the problem line item.
2. Choose Quick Fix…
3. Choose the Mark for Add fix. (To exclude the file from Perforce control and remove the task, choose Add to .p4ignore.)

NOTE: P4Eclipse does not support deleting, moving, renaming, or refactoring linked resources (files and folders that are stored in locations in the file system outside of the project's location).

# Excluding Files from Source Control

To conserve space in the repository and to keep changelists small, you can exclude individual files or file types (for example, build or release artifacts) from source control. Eclipse excludes a standard set of such files if you use the default Eclipse build output folder setup and global file type ignore features. If you need to go beyond the default—for example if you use a different builder or build output setup, or you intersperse temporary or other non-essential files with Perforce-managed files in your workspace—you can customize file exclusions using the approaches described in this section. Note that the different exclusion approaches operate independently. For example, if you exclude a file type using a .p4ignore file, you cannot override the exclusion by modifying the list of ignored resources in Preferences.

You can also exclude files from being submitted to the depot by modifying your Perforce client view to exclude the files. For details, refer to the discussion of "tight" client views in the Perforce System Administrator's Guide.

In general:

- To exclude on a per-filetype basis, use Preferences > Team > Ignored Resources
- To exclude build/test artifacts, set the Derived property
- To exclude specific files and folders, use Team >Add to .p4ignore or manually-maintained .p4ignore files

Important: you cannot exclude files after you have placed them under Perforce control. If you have files opened in a changelist and you want to exclude them from Perforce control, revert them from the changelist before excluding them.

Following are details:

- To exclude files in a project based on file type (for example, to exclude all ".bak" or ".jar" files in a project from Perforce management), choose Preferences. On the Preferences dialog, choose Team > Ignored Resources and check the file types you want to exclude. For more details, refer to Eclipse online help.

- To exclude a specific set of folders or files, right-click the files or folders, choose Properties, and check "Derived." P4Eclipse ignores derived files and folders, including (recursively) subfolders in derived folders.
  Note that the Derived property is intended to mark temporary or volatile folders and files that are derived from or created by a build or test process. This mechanism is not the best choice for the general case of exclusion. By default, Eclipse marks compiled .class files and associated output folders as derived, if you use the standard Eclipse layout and build features to define the output folders. However, if you're using non-standard build paths, mechanisms, folders, etc., you might need to manually enable the derived property for these objects.

- For temporary exclusion or exclusions that are not addressed by the preceding approaches, right-click the file or folder and choose Team > Add to .p4ignore.
  The P4Eclipse Add to .p4ignore feature stores exclusions in a .p4ignore file, similar to CVS's .cvsignore feature. The .p4ignore file is a text file that specifies excluded files and folders that reside in its containing folder and any subfolders (recursively). P4Eclipse searches up the project folder hierarchy looking for .p4ignore files, and stops at the first .p4ignore file entry that matches a specific file or folder. You can create .p4ignore files manually, and you can edit .p4ignore files that were created by P4Eclipse. The .p4ignore file itself is typically under source control control, but you can exclude it.
  To create a .p4ignore file manually, right-click in the Navigator pane and choose New > File. Enter exclusions and save the file as ".p4ignore" in the folder where you want the exclusions applied. Each entry must be on a separate line in the same format used in .cvsignore files. You can use the * and ? (match any single character) wildcards in .p4ignore files.

To display text label decorations for ignored files in the Navigator, choose Window > Preferences. On the Preferences dialog, go to Team > Perforce > Label Decorations , select Text Decorations tab and check Decorate ignored resources.