Page 1
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0Managing your SVN repository using JasForge Project | K. DJAAFAR 2011 EclipseConf2011
Part 4 Managing your SVN repository using JasForge Project
,
March 2011Santa Clara
Karim DJAAFAR
CO of Jasmine Conseil
Page 2
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
OBJECTIVESManaging your SVN repository using JasForge
Automated testing
Build Tool
SCM
Page 3
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
1
2
Introduction
What is a SCM ?
Presentation Plan
Page 3
3 SVN fundamentals
4 SVN and JasForge integration
5 Demo
Page 4
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Software projects with multiple developers need to coordinate and synchronize the source code
Why use version control?
Page 5
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Version Control Repository
• Simply put, you must use a version control repository in order to perform CI
• Even if you don’t use CI, a version control repository should be standard for your project
• The purpose of a version control repository is to manage changes to source code and other software assets (such as documentation) using a controlled access repository
• There are different types of version control systems you can use too:
Page 6
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
• Manage file sharing(Specifically: Prevent people from erasing each other’s modifications)
• Keep past versions of files/directories
• A list of exact changes made can be generated quickly and easily
• We use Subversion for most of the examples in this seminar
Version Control Repository
Page 7
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Svn in details
Page 8
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
• Subversion is a leading Open Source version control system,
• tracks the history of file and directory changes over time.
• SVNKit is a pure Java Subversion toolkit that implements all Subversion features and provides APIs to work with Subversion working copies, access and manipulate Subversion repositories.
Subversion && SVNKit
Page 9
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
SVNKit features
• Repository access over http(s), svn, svn(+ssh) and file protocols
• Repository administration • Does not require additional binaries • Turns contents of a repository to a portable dump
format stream
Page 10
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
SubversionSubversion
CR 12
Distributed
Development
Backing up data
Configuration
Management
Documentation
What can Subversion Do For You ?
Page 11
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Subversion – Principe
Page 12
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.012
Subversion – Architecture Overview
Berkley DB
FSFS
SubversionRepository
Client
Interface
Repository
Interface
GUI client apps
Commandline
client apps
ClientLibrary
Working Copy Management
Library
Repository
access
DAV
SVN
Local
Apache
mod_dav
mod_dav_svn
svnserve
Internet(Any TCP/IP Network)
Single Sign On
LDAP High Secure
SSL
Office Integration WebDAV
UNIX, LINUXWINDOWS
Offline Support
Page 13
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.013
The Working Cycle
svn checkoutsvn update
get content
svn addsvn movesvn delete
Make changes
svn status -u
See what was changed in the repository in the meantime
svn update
Update your local copy
svn diffsvn resolved
Merge your changesResolve conflicts
svn commit
Submit your changes
10
5
10
0
10
6
Subversion
Repository
Page 14
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.014
Subversion – Branches, Tags
• Branching and tagging are cheap (constant time) operationsBranches and tags are both implemented in terms of
an underlying "copy" operation. A copy takes up a small, constant amount of space.
BRANCH 1
Extremely fastbranching and
Tagging
„before using Subversion we waited in some projects 15 min. until a branch was created.“
Page 15
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.015
branches
trunk
Calc
Root
Paint
my-calc branch
branches
trunk
Easy to Understand
Branching is Cheap
Can be deletedand reanimated
Branches Creating Branches
Page 16
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.016
Subversion – Staging
• Staging can be managed via folder structures
tags
Project 1
Root
trunk
Dev
QA
Rel
Development stage
Releases for QA
Final Releases
Page 17
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.017
Subversion – Architecture The revision numbers
0 1 2 3
Each revision isa complete
configuration
Not just file management but
management of changes
Page 18
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.018
Subversion - Concepts• Atomic Commits
No part of a commit takes effect until the entire commit has succeeded.
Revision numbers are per-commit, not per-file; log messages are attached to the revision, not stored redundantly as in CVS.
No inconsistence in repository because large commits happened at the same time
Files within a commit are grouped automatically so it is effident what files have been part of a change set without extra labels
Page 19
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.019
Suberversion – Binary Files
• Efficient handling of binary files Subversion is equally efficient on
binary as on text files, because it uses a binary diffing algorithm to transmit and store successive revisions.
After Migration to Subversion a repository is usually between 30% smaller
Update and commit operations on binaries are much faster with subversion.
Page 20
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
JasForge SVN in details
Page 21
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
SVN synchronization
SubversionSubversionSynchronization with SVN operations (checkin, ..)Synchronization with SVN operations (checkin, ..)
SVN ConnectorSVN Connector
Page 24
Page 22
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Full SCM support with Subversion
SubversionSubversion
SVN Managment using Access RightSVN Managment using Access Right
AgentAgent
JNDIManager
JNDIManager
Svnserve
Svnserve.conf
Stratégie d’auth
passwd
Users & pwd
Authz
Groupes & Accès
Page 25
Page 23
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Page 24
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.027
Jasforge: A Jasmine Conseil concept
http://www.jasmineconseil.com
Need More information ?
[email protected]
Thank you for your Attention