Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
– "Ok, we've all been working hard for the last week. Now
let's integrate everyone's work together."
Working folder
Working directory
Sandbox
View
Enlistment
Revision
Revision Numbers
Revision Keywords
The repository's HEAD
filesystem BASE, COMMITTED, PREV
Revisions
Revision Dates
{2009-03-19}
{“2008-02-17 15:30”}
Forward Deltas
Reverse Deltas
CheckOut/Update
To get a resource from the repository with the
purpose of making changes to it
Automatic merge
Manual merge
Branch
A branch is a line of
development that exists
independently of another line.
A tag (label) is
just a snapshot of
a project in time.
Exclusive Development
The version control system permits only one user at a time to work on any individual
file.
Simultaneous Development
Multiple users can work on the same file and the version control system attempts
to merge the respective changes seamlessly.
Central Repository
Central repository – The historic data about project changes is
stored in a single place.
Data export – An
exported set of data User
should not contain
administrative files or
data for the version
control system.
Central
User User
Repository
User
Distributed Repositories
Distributed Repositories – Each developer has a personal repository, and the
repositories update from their peers.
User Repository
User Proxy
Repository
Proxy
Repository
User
Remote Access To The Repository
Benefits
Any stored revision of a file can be retrieved,
viewed, and changed.
The differences between any two revisions can Any version control
be displayed. is better than no
Patches can be created automatically. version control.
Multiple developers can work simultaneously on
the same project or file without overwriting one
another's changes.
The project can be branched to allow
simultaneous development along varied tracks.
These branches can be merged back into the main
line of development.
Distributed development is supported across
large or small networks.
Tools
• VSS (http://msdn.microsoft.com/en-us/vs2005/aa718670.aspx)
• CVS (http://www.nongnu.org/cvs/)
• SVN (http://subversion.tigris.org/)
• Perforce (http://www.perforce.com/perforce/products.html)
• BitKeeper (http://www.bitkeeper.com/Products.html)
• Accurev (http://www.accurev.com/accurev.html)
• ClearCase (http://www-306.ibm.com/software/awdtools/clearcase/)
• CM Synergy (http://www.telelogic.com/corp/products/synergy/index.cfm)
• StarTeam (http://www.borland.com/us/products/starteam/index.html)
• MKS Integrity (http://www.mks.com/products/index.jsp)
• Vault (http://www.sourcegear.com/vault/)
Comparing Version Control
Systems
VCS Development model Repository type Atomic commits
Simultaneous or
CVS Central and proxied No
exclusive
Bitkeeper Simultaneous Distributed Yes
Simultaneous or
ClearCase Central or distributed N/A
exclusive
Git Simultaneous Distributed Yes
GNU Arch Simultaneous Distributed Yes
Simultaneous or
Perforce Central Yes
exclusive
Simultaneous or
Subversion Central Yes
exclusive
Visual Source Safe Exclusive Central No
http://www.open.collab.net/downloads/subversion/
CollabNet Subversion Installation
CollabNet Subversion Installation
(cont.)
Creating Repository
Creating Repository (cont.)
Commit
Update
Controlling Access To The
Repository
httpd.conf
Lock
Add/Delete
Revision
Diff/Revert/CleanUp
Resolving Conflicts
Resolved
Create Tag/Branch
Working With Branch
Merging A Branch Into Trunk
Merging A Branch Into Trunk
(cont.)
GUI Client
Using GUI Client
Using GUI Client (cont.)
Tips
...XYZ "is not a working copy directory” error
1."externally" remove XYZ from system
2.svn cleanup (to unlock parent directory)
3.svn revert XYZ (to remove "missing tag")
Thank you for your time