Distributed Source Code Management tools



Similar documents
Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Introduction to Version Control

Version Control with Git. Kate Hedstrom ARSC, UAF

Intro etckeeper bup ikiwiki git-annex vcsh mr Zsh Outro. Gitify your life. web, blog, configs, data, and backups

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Software configuration management

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

CS 2112 Lab: Version Control

Version Uncontrolled! : How to Manage Your Version Control

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Developing tests for the KVM autotest framework

Content. Development Tools 2(63)

Source Code Control & Bugtracking

Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software

Software Development Process

Version Control with Git. Dylan Nugent

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es

Developing Embedded Linux Devices Using the Yocto Project

Continuous Integration. CSC 440: Software Engineering Slide #1

Version Control with Subversion

Software Engineering I (02161)

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Streamline your drupal development workflow in a 3-tier-environment - A story about drush make and drush aliases

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Surround SCM Best Practices

Software Development. Overview.

Version Control. Version Control

SA4 Software Developer Survey Survey Specification v2.2

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DESKTOP COMPUTER SKILLS

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces

Using Git for Project Management with µvision

Valgrind BoF Ideas, new features and directions

Indefero Source Code Management

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

CIT 470: Advanced Network and System Administration. Topics. Change Management. Change and Configuration Management

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control with Git

Integrated version control with Fossil SCM

Source Control Systems

Developing Embedded Linux Devices Using the Yocto Project

Best Practices for Deploying and Managing Linux with Red Hat Network

Beginning with SubclipseSVN

Embedded Linux development with Buildroot training 3-day session

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under

Source code management systems

Version Control for Computational Economists: An Introduction

Version control with GIT

The Data Quality Monitoring Software for the CMS experiment at the LHC

MDSplus Automated Build and Distribution System

JBoss Developer Studio 6.0

An Introduction to Mercurial Version Control Software

Promotion Model. CVS SUITE QUICK GUIDE 2009 Build 3701 February March Hare Software Ltd

Report of the LHC Computing Grid Project. Software Management Process RTAG CERN

Oracle Database 10g: Backup and Recovery 1-2

How To Manage Source Code With Git

Continuous Integration and Delivery at NSIDC

Version Control with Subversion and Xcode

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

Version Control! Scenarios, Working with Git!

Version Control Systems

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Distributed Version Control with Mercurial and git

Software Development Processes For Embedded Development A checklist for efficient development using open-source tools

Distributed Version Control

OpenSAF A Standardized HA Solution

Accelerating Zope applications with Squid and ESI

The Automatic HTTP Requests Logging and Replaying Subsystem for CMS Plone

Continuous Integration and Delivery. manage development build deploy / release

Introduction to Gluster. Versions 3.0.x

How to Set Up Outlook 2007 and Outlook 2010 for Hosted Microsoft Exchange if the Program is Already Installed

Practical Online Filesystem Checking and Repair

Open Source Software Project Management A Case Study Red Hat Enterprise Linux. Bob Johnson, Red Hat

Theme 1 Software Processes. Software Configuration Management

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

NEESit Software Configuration Management Process

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

MailStore Server 5.0 Documentation

Source Code Management/Version Control

RCL: Software Prototype

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Case Study: Plone in Local Government

Transcription:

Distributed Source Code Management tools Itaapy working experience Luis Belmar-Letelier luis@itaapy.com Itaapy

Content Leaving CVS Distributed source control (DSC) Arch/tla Git/Cogito Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.1

Leaving CVS in 2002: Context What open source project localizer, itools customer projects: quality agent process full Unix environment How XP: pair programming XP: code review XP: test driven code... more than two developers on each piece of code Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.2

Leaving CVS in 2002: Context Using and making version control system Using version control to make software. Making for our customers CMS applications with versionning using Zope using Plone using CPS using ikaaro So ok let s go out of CVS Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.3

Leaving CVS in 2002 Centralized Version Control? Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.4

Leaving CVS in 2002 Centralized Version Control? No thanks Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.5

Leaving CVS in 2002 Centralized Version Control? No thanks Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.5

Why do we need DSC? To work offline, with no mass commit back from: the train, the sea, the beach, Montmartre We don t need to give write access to the archive useful for itools contributors useful in customer projects (each developer is the only responsible for the state of his tree lower infrastructure cost, no root access to set up a CVS repository, no +w on group, with umask funky config. Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.6

In 2002 we went to Arch/tla In 2002 Arch/tla provide real Distributed Source Control: Documentation 100 pages of real documentation Tools tla tla-tools archzoom tla-cvs-sync Our first real-life experience with DSC. Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.7

Two years after... in 2004 The target was reached Big improvement of the QA process fine control of the business projects releases easying the simultaneous work of many developers at the same time on the same code. precise and reproductible state of each release of code. fine control on the customer releases each developer version of the code old production server pre-production server customer preview server Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.8

Arch/tla: Distributed working Ken working_copy tla get tla commit Ken archive tla tag tla star-merge Barbie mirror archive read only Barbie working copy tla archive-mirror tla get tla commit Barbie archive archives Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.9

Target reached but we left arch/tla learning it is hard mastering it is very long programming interface is hard persistence layer is slow improving it with caching adds complexity mirror based sharing is good for customer projects but mail patch submit should be better for Open Source project developpement. bad feadback from the itools community Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.10

Target reached but we left arch/tla Barbie mirror archive (read only) Barbie working copy tla archive-mirror tla get tla commit Barbie archive tla tag tla star-merge tla tag tla star-merge Ken mirror archive (read only) Ken working_copy tla archive-mirror tla get tla commit Ken archive archives Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.11

Target reached but we left arch/tla The hiden idea... itools goes to a VirtualFileSystem layer, the persistance layer given by Zope, then ZODB, then File System files itools.cms aka ikaaro implement versionning for hight level CMS objects. In itools next releases we expect to use DSC for the direct persistant layer. For this we need: Solid File Sysem backend speed, speed, speed Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.12

Candidates to replace arch/tla Candidates to repleace arch/tla Monotone the paranoid one (strong cryptography) own network protocol Mercurial written in Python still beta at the time of choosing Codeville best merge algorithm, own network protocol Darcs stable and simple scales not very well Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.13

Candidates to replace arch/tla Candidates to repleace arch/tla Monotone the paranoid one (strong cryptography) own network protocol Mercurial written in Python still beta at the time of choosing Codeville best merge algorithm, own network protocol Darcs stable and simple scales not very well Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.14

Candidates to replace arch/tla Candidates "La finale" Bazaar-NG (bzr) written in Python, supported by Canonical still alpha at the time of choosing git/cogito stable, many tools around, scales very well, strong community best evidence: the Linux kernel Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.15

3 programming interfaces Cogito Very low learning cost (10 min) full power of Git with a set of 15 commands natural set of commands Git Controling the internal index structure made in Bash, C, Perl, Python and soon available as C library The File System archive.git/ The persistant layer is dam robust it s fast, fast, fast Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.16

Cogito A natural cmd Set cg-add, cg-mv, cg-rm, cg-restore cg-status, cg-diff, cg-commit, cg-log cg-clone, cg-update, cg-merge cg-switch Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.17

Git/Cogito tools Full migration tools SVN, CSV, arch Web Navigation gitweb Rich-client revision tree visualizer: gitk, qgit Leaving CVS, DSC, Arch/tla in, Arch/tla out, Git/Cogito p.18

References This slides http://doc.ikaaro.org/dsc_management.pdf A day to day use of git/cogito documentation is available on the itools documentation, (11 pages). http://doc.ikaaro.org/itools-doc.pdf chapter "Keeping track of itools with Git/Cogito" chapter "Contributing to itools with Bugzilla and Git/Cogito" The itools mailling list itools@ikaaro.org References p.19