Vous êtes sur la page 1sur 15

Version Control Systems (VCSs)

and VCSs Hosting Review


Phong V. Cao
Stony Brook University
CSE-300 Final Presentation

In these slides, we will...


I. Define Version Control Systems (VCSs)
1. What is VCSs?
2. Different types of VCSs
II. Compare Open-source VCSs software
1. Mercurial vs Git
2. Subversion (SVN) vs Git
III. Compare VCSs Hosting Services
1. Bitbucket
2. GitHub
3. Google Code
4. SourceForge

I. Define Version Control Systems (VCSs)


I.1. What is Version Control
Systems (VCSs)?
a. At the very basic:
- a repository of files, usually
program source code
- changes are recorded and can
be reverted back later
b. Additional features:
- branching to create new features
- push to remotes
- collaboration through
forking/clients

I.2. Different types of VCSs


1. Local Version Control Systems
(LVCSs):
- first type of VCSs
- contain simple database that
keeps all the changes to files
- backup files into time-stamped
directories
=> Drawbacks:
- requires the server to be on to
backup files
- error prones during copying
- doesn't allow collaboration

I.2. Different types of VCSs


2. Centralized Version Control
Systems (CVCSs):
- one server, many clients
- record only changes made to
files, not the files themselves.
- allow collaboration
=> Drawbacks:
- requires the server to be on to
backup files
- difficult to collaborate in
subteams (hierarchical model)

I.2. Different types of VCSs


3. Distributed Version Control
Systems (DVCSs):
- one repositories, many fork
repositories
- allow collaboration in subteams,
(hierarchical model)
- independent of server availability
(can record changes locally)
=> Drawbacks:
- more complicated to use than
LVCSs or CVCSs

II. Compare Open-source VCSs software


II.1. Git vs Mercurial
Git

Mercurial

- Every commit is stored as a hashed


document

- Commits are stored as normal text


files containing changes

- New commit object must be created


to record changes

- No need to create new commit


objects

- Allow history modification & rewrite

- Allow modifications only before


commits

- Branches are snapshots

- Branches are new clones

- Staging area through git add

- Staging only exists in Record ext.

- Show commits that last touched each


line of a file

- N/A

II. Compare Open-source VCSs software


II.2. Git vs Subversion (SVN)
Git

Subversion (SVN)

- Distributed each repository has


many client repos

- Centralized one server repository


connected with many clients

- master branch: latest stable


release; other branches: new features

- trunk directory: latest stable release;


branches directory: new features;
tags: copies of trunk

- Subprojects (Git submodules) don't


update automatically

- Subprojects (SVN externals) update


automatically

- Staging allows users to modify


commits

- N/A

- Allows projects history to be modified

- N/A

- Support for SVN

- Don't support Git

III. Compare VCSs Hosting Services


III.1. Bitbucket
- Web-based VCSs hosting service
- Backed by Atlassian leading player in
DevOps
- Supports both Mercurial and Git
- Free Plan:
+ Unlimited public & private repos
+ 5 people per private repo
- Paid Plan:
+ Unlimited public repos
+ Prices increase as members of private
repos increase

III. Compare VCSs Hosting Services


III.2. GitHub
- Web-based VCSs hosting service
- Most popular VCSs & DVCSs with
17.9 million repos
- Supports both SVN and Git
- Free Plan:
+ Unlimited public repos
+ No private repos
- Paid Plan:
+ Unlimited public repos
+ Prices increase as number of private
repos increases

III. Compare VCSs Hosting Services


III.3. Google Code
- Complete, fully-fledged project hosting
service
- Only allows open-source projects
- Supports Git, Mercurial and SVN
- Restriction per member:
+ At most 25 repos,
+ At most 200MB upload file size,
+ At most 5GB total project size.
- Free Plan:
+ Only public repos. No private repos
- Paid Plan: None

III. Compare VCSs Hosting Services


III.4. SourceForge
- Supports the most amount of major
VCSs:
+ Git, Mercurial, SVN, CVS and Bazaar
- Additional features:
+ Download metrics & analysis,
+ Unique subdomain URLs,
+ Documentation wikis,
+ Access to MySQL database.
- Free Plan:
+ Only public repos. No private repos
- Paid Plan: None

Thank you for listening!

References

References (continued)

Vous aimerez peut-être aussi