Integrated version control with Fossil SCM



Similar documents
Version Control Systems

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Version Control with Git. Dylan Nugent

Continuous Integration. CSC 440: Software Engineering Slide #1

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

Introduction to the Git Version Control System

Version Control! Scenarios, Working with Git!

Version control with GIT

Distributed Version Control with Mercurial and git

Version Control Tools

Fossil Version Control A Users Guide. Jim Schimpf

LDAPCON Sébastien Bahloul

Introduction to Version Control

Using Git for Project Management with µvision

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

Version Control with Subversion

An Introduction to Mercurial Version Control Software

Software configuration management

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control with Git. Kate Hedstrom ARSC, UAF

Using Toaster in a Production Environment

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Revision control systems (RCS) and

Administering Team Foundation Server 2013

Source Control Systems

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

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

Continuous Integration

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Two Best Practices for Scientific Computing

bup: the git-based backup system Avery Pennarun

Introducing Xcode Source Control

Fossil Version Control A Users Guide

Version Uncontrolled! : How to Manage Your Version Control

Source code management systems

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

Version Control with. Ben Morgan

Continuous Integration and Delivery at NSIDC

Content. Development Tools 2(63)

Software Delivery Integration and Source Code Management. for Suppliers

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.

Software Configuration Management and Continuous Integration

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

MATLAB & Git Versioning: The Very Basics

Version Control with Git

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Work. MATLAB Source Control Using Git

Using GitHub for Rally Apps (Mac Version)

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

An Introduction to Mercurial Version Control Software

Managing Software Projects Like a Boss with Subversion and Trac

System Administrator s Guide Version 2.4.2

Gitflow process. Adapt Learning: Gitflow process. Document control

Version Devolutions inc.

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer GIT

Source Code Control & Bugtracking

Version Control Your Jenkins Jobs with Jenkins Job Builder

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

Derived from Chris Cannam's original at, an.

SOFTWARE DEVELOPMENT BASICS SED

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Source Code Management/Version Control

New Features in XE8. Marco Cantù RAD Studio Product Manager

Zero-Touch Drupal Deployment

GitLab as an Alternative Development Platform for Github.com

Continuous Integration (CI)

Version Control with Mercurial and SSH

Data management on HPC platforms

Version Control Script

How To Integrate An Ipm With Airwatch With Big Ip On A Server With A Network (F5) On A Network With A Pb (Fiv) On An Ip Server On A Cloud (Fv) On Your Computer Or Ip

Using Oracle Cloud to Power Your Application Development Lifecycle

Git, Quilt and Other Kernel Maintenance Tools

Best Practices for Deploying and Managing Linux with Red Hat Network

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

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

ALERT installation setup

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

Version Control using Git and Github. Joseph Rivera

MOOSE-Based Application Development on GitLab

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

Dry Dock Documentation

Version Control for Computational Economists: An Introduction

Review Quiz 1. What is the stateful firewall that is built into Mac OS X and Mac OS X Server?

W3Perl A free logfile analyzer

How to Create a Free Private GitHub Repository Educational Account

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Version control with Subversion

Software Development. Overview.

Transcription:

Integrated version control with Fossil SCM Tech Talk 2009-12-01 Arne Bachmann Folie 1

Overview Web address www.fossil-scm.org Author Dr. D.R. Hipp - Author of License GPL v2 Motto No information shall ever get lost Folie 2

Fossil principles In Fossil, a revision is called check-in Every file, branch and check-in is an immutable artifact with an artifact identifier (AID), which is a SHA-1 hash E.g. f3859e6842b68349fe52128767e64c4329e4a4 But it suffices to use prefixes (e.g. f385, usually 8 letters) Folie 3

Fossil principles Fossil is leightweight Compilation is a matter of seconds, including SQLite code One executable 787kB including self-tests & documentation No dependency whatsoever on external libs or tools: gzip, diff, rsync, Python, Perl, Tcl, Java, Apache, Dbs, patch, Fossil is self-hosted The website fossil-scm.org runs on fossil as CGI Folie 5

Usability: Command line interface Comfortable command-line interface Prefixes suffice for commands & AIDs fossil commit fossil rebuild fossil reconstruct fossil co = checkout fossil com fossil reb fossil rec fossil che Symbolic names for check-ins instead of an AID Simple tags on a check-in, starting with symfossil update my_feature_branch Folie 6

Usability: Web interface Fossil runs as a web server, provides a comfortable interface fossil ui or fossil server Folie 7

Usability: Desktop interface not yet available Folie 8

Features Distributed version control system Similar to Mercurial & Bazaar (Python), Git (C), BitKeeper Very fast (pure C code) Data-efficient (stores and syncs (binary) deltas, zlib'ed) Fossil is safe: SQLite manages all data + BLOBs, transactional Extensive self-testing upon each action (zlib-(de)compress), checksumming for every artifact and every action Folie 9

Features Very simple and persistent data structures for deltas, tables and file formats No need to dump data off a repository, because each repository is always exactly one file Migration very easy: close, <move>, open No need to import dumped data, because upgrading a repository to a younger fossil executable is that easy: fossil all rebuild Folie 10

Fossil: Main building blocks (SCM) Fossil is a VCS, but additionally each repository contains A ticket system (bugtracker) History independent of check-in history A simple Wiki Each wiki page has its own history, independent of check-ins Pages can theoretically be branched and merged But currently no UI or ABI for that Embedded documentation linked with check-ins Reachable by <server>/doc/<dir>/<page>.wiki CSS can be changed via admin options from the UI Folie 11

Tags can be attached to any leaf Can have a value (= property), but mostly need none Can be symbolic (starting with sym-) Are passed on to descendants Unless cancelled (fossil tag cancel <name>) Unless merging with another branch There are two default tags: branch=trunk represents the current branch sym-trunk (= NULL) symbolic name of branch After branching sym-trunk: cancelled Folie 12

Branching Forking vs. Branching? Fork defined as an "accidental" split of the check-in tree Branch defined as deliberate e.g. a test branch is often merged into the main development branch, point of branch = branch point Merging No integrated conflict editor (but the usual in-file notation) Folie 13

Configuration Local configuration state Not shared when pushing, pulling, (auto) syncing Contains settings regarding Used tools commit message editor Web browser (Graphical) diff tool Encryption Proxy Sync options Behaviour (autosync ) Folie 14

Configuration fossil help settings Shows integrated help Folie 15

Server mode Fossil allows to quickly sync with other developers' repositories fossil server or fossil ui (opens local web browser) fossil push offers changes to remote fossil instance fossil pull loads changes from a remote fossil instance But doesn't change current check-in state (use update) fossil sync pulls and pushes As above Autosync mode offers operation similar to working with a central subversion repository fossil is very flexible Folie 16

Server mode Comprehensive web interface allows easy administration Of users and user rights (+ inherited group rights) Settings Appearance Logs Statistics CGI integration Serving multiple repositories Folie 17

Additional advantages of Fossil User rights management Uses current login name under Windows/Linux Separate rights for check-ins and web interface users Integrated check-in signing Via PGP/GPG keys or similar Or use --nosign upon commit and branch Robust and reliable Several years of experience in multi-project, multi-gb source trees with thousands of files and check-ins Folie 18

Drawbacks Commercial support from a very small company (only 2 persons?) No graphical Windows client available yet Especially no conflict editor and explorer integration Folie 19

Thanks for your attention! Questions? http://www.walle-derfilm.de/ Folie 20