4. VERSION CONTROL
Version Control
A version control system is simply a system that
catalogs your changes and keeps them in an orderly
fashion which also allows others to collaborate on the
same project
Allow you to track changes (who, when, how it affected
your project)
It helps you to simply picking a backup at some point,
restoring it
5. VERSION CONTROL (CONT’D)
Concurrent Versions System (CVS)
Also known as Concurrent Versioning System
Uses client server architecture –this means that a server stores a current
version (or versions) of a particular project as well as saving its history
The client then connects to the server as means to “check out” a copy of
the project
Can maintain different branches of a project
Different aspects or permutations of the same project may branch off
from the source project and CVS will maintain all versions
A released version of the project forms one branch for bug fixes, while a
different version that is currently being developed may contain new
features and major changes and form a branch of the same project
6. VERSION CONTROL (CONT’D)
Subversion (SVN)
Is a version control system used to maintain the current and preceding
versions of files (like source code, web pages, and documentation)
It is a direct upgrade of CVS and its most compatible successor
It is also an open source technology and has been widely used in multiple
projects (Apache, Free Pascal, Google code)
Creates a set of tentative changes and makes them permanent– as true
atomic
Subversion also allows users to rename, copy, move, and/or remove files;
however, those files will retain their full revision history
Subversion also costs according to the change size and not the size of
the data
7. CVS SVN
Maintains the current and preceding
Maintain different branches of a project
versions of files
Commits as true atomic operations.
Based on RCS files of versions control
Each file is an ordinary file containing some
Uses parsable output
info So the tree of these files repeats
You should not be worry about data loss The basis of SVN is a relational database
Works slowly Works faster than CVS
Allows to "attach" to a file any number of all
Allows to store of only files and nothing else
possible named attributes
The storage (binary, Unicode) is not trivial
Manipulates all the file types
and requires special information
Allows to rollback any commit in the
SVN does not allow rollback of commit
repository
No Transaction Support Transaction Support
8. VCSs DVCSs
One repository is as good as any other, and that
There is One True Source, All developers work
merges from one repository to another are just
from that source, and then ad their changes
another form of communication
If your project or organization wants centralized If your developers are expected to work all over
control the world
Takes a client server approach Takes a peer-to-peer approach
Common operations (commits,…) are fast,
The repository must be available every time you
because there is no need to communicate with a
want to commit your changes
central server
Only accessed by anyone having write access to Communication is only necessary when pushing or
the repository directories pulling changes to or from other peers
Conflicts may arise, if someone commit change in Allows users to work productively even when not
the same file and program can’t handle it connected to a network
Participation in projects without requiring
permissions from project authorities
9. VERSION CONTROL (CONT’D)
Version Control
Client-server model
Open source
Concurrent Versions System (CVS)
Subversion (SVN)
VisualSVN
Proprietary
RocketSVN
Autodesk Vault
Clear Case
Visual SourceSafe
10. VERSION CONTROL (CONT’D)
Version Control
Client-server model
Open source
Concurrent Versions System (CVS)
Subversion (SVN)
VisualSVN
Can’t provide Demo
Proprietary
RocketSVN
Autodesk Vault
Clear Case
Visual SourceSafe
No trail download
11. VERSION CONTROL (CONT’D)
Version Control
Distributed model
Open source
Bazaar
Git
Mercurial
Monotone
LibreSource
Proprietary
Bit Keeper
13. BUG TRACKING
Bug Tracking
Is a software application that is designed to help quality
assurance and programmers keep track of reported
software bugs in their work
15. BUG TRACKING (CONT’D)
Bug Tracking
Trac
Jira
Bugzilla
Both are web based on an external
Bug Traker.NET server so we will not make Demo
FogBugz for them
Assembla
16. Features Input interfaces
• Workflow with triggers, timers, and conditions • Web
• Dashboard with reporting widgets • Email
• Customizable fields for each project • CLI
• HTML, XML, RSS, PDF, Excel, Word, customizable • GUI
charts • REST
• Enterprise wiki • SOAP
• Test planning integration • Mylyn
• Customizable workflow • Visual Studio
• Unicode support
• SLA
• Plugin API
• Multiple Project
Notification Revision control integration
• Email • Git
• RSS • Mercurial
• XMPP • CVS
• Subversion
• Perforce
• AccuRev
• ClearCase
17. Features Input interfaces
•Integrated wiki •Web
•Test planning integration •Mylyn
•Customizable workflow
•Unicode support
•Custom Fields
•Plugin API
Notification Revision control integration
•Email •Git
•RSS •Mercurial
•Bazaar
•Monotone
•Darcs
•CVS
•Subversion
•Perforce
•AccuRev
18. Features Input interfaces
• Integrated wiki • Web
• Customizable workflow • Email
• Unicode support • CLI
• Custom Fields • REST
• Plugin API • Mylyn
• Visual Studio
• Multiple Project
• XML
Notification Revision control
• Email integration
• RSS • Mercurial
• CVS
• Subversion
• Perforce
19. Features Input interfaces
• Integrated reports and charts • Web
• Scheduled reports by mail • Email
• Test planning integration • CLI
• Customizable workflow • GUI
• Unicode support • REST
• Custom Fields • SOAP
• Plugin API • Mylyn
• Multiple Project
Notification Revision control integration
• Email • Git
• RSS • Mercurial
• Bazaar
• CVS
• Subversion
• Perforce
• AccuRev
20. Features Input interfaces
• Wiki syntax • Web
• Email notification • Email
• Linking to Subversion commits • CLI
• Document manager • REST
• Charts • Mylyn
• Reports
• Unicode Support
• Custom Fields
• Plugin API
• Multiple Project
Notification Revision control integration
• Email • Git
• RSS • Mercurial
• Twitter • Subversion
21. Features Input interfaces
• Integrated charts and reports • Web
• Customizable workflow • Email
• Unicode support
• Custom Fields
Notification Revision control integration
• Email • Git
• Mercurial
• Darcs
• Subversion