FeaturesPluginsDocs & SupportCommunityPartners
Excerpt from internal document.

II. Requirements

This chapter briefly summarizes the known set of both general and specific requirements on the VCS support in the IDE that are fundamental for analyzing the current state and proposing future improvements.

General requirements

The most general requirement on VCS integration could be stated as: "provide IDE support for effective work on shared sources in a team of developers that uses version control systems". "Sources" are understood as any data put under version control, like project files, source files, resources, etc, used in the IDE during the development. It also can be called "project data".

By using further decomposition based on typical user's goals, tasks and use cases, this primary requirement could be split into the following more detailed
list:

Set-up versioning environment

  • specify connection parameters, remote repository location, working directory, etc.

Get versioned sources

  • get selected sources from VCS repository or take over an existing local copy

Put sources under version control

  • make selected local sources versioned and add them to VCS repository

Create versioned sources

  • create new sources as versioned from the beginning

Synchronize local copy of versioned data with repository

  • accept changes from repository
  • apply local changes (content changes, creation, removal, moves)
  • merge local and remote changes, resolve conflicts
  • prevent user errors and data losses

Fork development to branches

  • support tagging, branching, merge branches, etc.

Provide version control information for files

  • present clearly what data is under version control, what is the revision and status, allow inspection of diffs, history, etc.

Support versioning of logical units (e.g. projects) in a single step

  • allow to version-control all related data as a single unit, as well as separately

Subversion Related Requirements

Repository Access Methods

All common access methods should be supported:
  • file: for local access (single seat developers)
  • http(s): for WebDAV/DeltaV access (big public projects)
  • svn(+ssh): simple TCP/IP access (intranets)
including proxy access.

Command-line svn Interoperability

Keep .svn metadata compatability with svn client so it can be used as fallback for missing functionality (rare uncovered usecases).
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by