part 4 - managing your svn repository using jas forge
DESCRIPTION
Managing your SVN repository using JasForge collaborative ProjectTRANSCRIPT
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
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
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
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?
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:
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
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Svn in details
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
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
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 ?
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
Subversion – Principe
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
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
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.“
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
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
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
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
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.
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
JasForge SVN in details
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
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
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0
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 ?
Thank you for your Attention