part 4 - managing your svn repository using jas forge

24
Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0 Managing your SVN repository using JasForge Project | K. DJAAFAR 2011 EclipseConf2011 Part 4 Managing your SVN repository using JasForge Project , March 2011 Santa Clara Karim DJAAFAR CO of Jasmine Conseil

Upload: jasmine-conseil

Post on 13-May-2015

1.490 views

Category:

Technology


2 download

DESCRIPTION

Managing your SVN repository using JasForge collaborative Project

TRANSCRIPT

Page 1: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Svn in details

Page 8: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Subversion – Principe

Page 12: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge SVN in details

Page 21: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

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: Part 4  - Managing your svn repository using jas forge

Managing your SVN repository using JasForge | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Page 24: Part 4  - Managing your svn repository using jas forge

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