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).