SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Bazaar Version Control
Stuart Colville and Andrew Phillipo
X
Version Control Software
A way to keep a multiple revisions of a single
resource without creating copies

Undo either short or long term

Audit-trail of who did what and when

Access to details of why a change was made

Tools to help teams of developers work on a single
code base
History of Version Control Systems



 “Those who cannot remember the past are
 condemned to repeat it.” - George Santanya
SCCS - Source Code Control System
The first Version Control System, built during the
70s

Was dominant until RCS was released

SCCS had no concept of branching

Internal file format is still used today by Bitkeeper
and TeamWare

Tools still available to access the SCCS format
RCS - Revision Control System


Built During the 80s as “a better SCCS”

Only knows about revisions of single files

Supports branching, badly

“RCS automates the storing, retrieval, logging,
identification, and merging of revisions.”
- GNU RCS homepage
CVS - Concurrent Versioning System

Originally based upon RCS (for managing sets of files/projects) in
the late 80s, by Dick Grune and later rewritten by Brian Berliner

Only files are versioned, no symlinks or directories

No direct moving/renaming capability

Branching and merging can be a world of pain

Allows control over who can commit

Stable, well supported infrastructure and tools
HTTP://FLICKR.COM/PHOTOS/EECUE/91518838/
SVN - Subversion
Project start by collab.net in 2000

Built to improve on CVS

Atomic commits

Allows renaming/moving of assets

Language bindings for all common programming
languages
What do you look for in a
revision control system?
Stability

Easy to use

Doesn’t get in the way of me developing my stuff

Flexibility

Extensible
Introduction to Bazaar
Easy to branch and smarter merging

First-class renaming capabilities

No server software needed - “Batteries included”

Designed with usability, ease of use in mind

Cross platform: Linux, BSD, OSX, Windows

Flexible and extensible, with a full plug-in system
BAZAAR DOESN’T
GET IN THE WAY
Bazaar Workflows
Workflows: Solo
As simple as pick a directory and tell bazaar to
start versioning it

No server/database setup

Sharing with other developers is easy, should it be
needed

Let’s look at an example...
Set-up a versioned dir
   $ cd ~/bazaar/demo
   $ bzr init


~/bazaar/demo is now set-up to be
versioned
Let’s add a file
$ vim test.css
$ bzr add
Let’s add a file
$ vim test.css
$ bzr add
added test.css
First commit
$ bzr commit -m “my first
commit”
First commit
$ bzr commit -m “my first
commit”
added test.css
Committed revision 1.
Workflows: Partner
Workflows: Centralised
Workflows: Local Commit
Workflows: Shared
Workflows: Gatekeeper
Workflows: PQM
Why use Distributed VCS in tandem
with Centralised Version Control?

Company policy requires the use of a centralised
system

Development with centralised VCS is harder

A modern VCS brings more advanced merging

Reduction in developer suicide rate
Using Distributed VCS in tandem
with Centralised Version Control
Keeping history:

  Tailor is a tool that can convert between many
  different rcs http://progetti.arstecnica.it/tailor

  CVSPSImport converts directly from CVS
  http://bazaar-vcs.org/CVSPSImport

Ignore history and take current set of files

  Faster but obviously you lose access to older
  history
Launchpad.net

 Similar to sourceforge with 100% less CVS

 Tightly integrated with Bazaar - though import
 from other VCS is possible

 Removes the barriers to contributing open-
 source development

 Bug tracking, FAQ, Documentation and
 translation management
Launchpad Example

 Bazaar-email is a simple plug-in that uses the
 post-commit hooks in bazaar to mail diffs

 To contribute back to the project I raised bugs
 for trivial issues found using the plug-in

 A developer fixed one of these issues and
 submitted a branch linked to the bug

 To add this to trunk the maintainer can simply
 carry out a merge
Launchpad Bug fix process

Branch the trunk/main branch

Make + test the fix

Push the fix back to launchpad and associate it
with the bug number
bzr push sftp://user@bazaar.launchpad.net/~user/project/branch


The maintainer can then merge the fix into the
trunk
Adding a feature to a project

 Branch the trunk/main branch

 Merged pending bugfixes

 Develop the feature

 Push to launchpad
 bzr push sftp://user@bazaar.launchpad.net/~user/project/branch


 Raise merge request
Let’s hack on something
Conclusion

 Version control has come a long way

 De-centralisation is the future!

 First-class merging makes this all possible

 Development should never be constrained by
 the version control system you use
Questions?



That’s all folks!
http://bazaar-vcs.org/

Mais conteúdo relacionado

Mais procurados

「採用基準」読んでみた
「採用基準」読んでみた「採用基準」読んでみた
「採用基準」読んでみたまこっちゃん
 
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)Cubes - Lightweight Python OLAP (EuroPython 2012 talk)
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)Stefan Urbanek
 
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfire
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfireデータでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfire
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfireYahoo!デベロッパーネットワーク
 
IP電話交換機ソフト Asterisk について
IP電話交換機ソフト Asterisk についてIP電話交換機ソフト Asterisk について
IP電話交換機ソフト Asterisk についてRetrieva inc.
 
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)将 高野
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...ScyllaDB
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence SpracklenSpark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence SpracklenSpark Summit
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまでHiroshi Tokumaru
 
テスト計画セッション
テスト計画セッションテスト計画セッション
テスト計画セッションTomoaki Fukura
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Akio Ishida
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴Takuya Utsunomiya
 
Xeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdkXeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdkMasaru Oki
 
UTアンチパターン
UTアンチパターンUTアンチパターン
UTアンチパターンryoheiseki1
 

Mais procurados (20)

From IA-32 to avx-512
From IA-32 to avx-512From IA-32 to avx-512
From IA-32 to avx-512
 
「採用基準」読んでみた
「採用基準」読んでみた「採用基準」読んでみた
「採用基準」読んでみた
 
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)Cubes - Lightweight Python OLAP (EuroPython 2012 talk)
Cubes - Lightweight Python OLAP (EuroPython 2012 talk)
 
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfire
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfireデータでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfire
データでまちのにぎわいを可視化する〜自治体様とヤフーの取り組み〜 #yjbonfire
 
IP電話交換機ソフト Asterisk について
IP電話交換機ソフト Asterisk についてIP電話交換機ソフト Asterisk について
IP電話交換機ソフト Asterisk について
 
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...
How We Reduced Performance Tuning Time by Orders of Magnitude with Database O...
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence SpracklenSpark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまで
 
テスト計画セッション
テスト計画セッションテスト計画セッション
テスト計画セッション
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴
 
Xeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdkXeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdk
 
UTアンチパターン
UTアンチパターンUTアンチパターン
UTアンチパターン
 

Semelhante a De-centralised Version Control with Bazaar

JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemGilad Garon
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Controlceardach
 
Version Control for mere and freelance mortals
Version Control for mere and freelance mortalsVersion Control for mere and freelance mortals
Version Control for mere and freelance mortalsEmma Jane Hogbin Westby
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notesPerrin Harkins
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld PresentationDan Hinojosa
 
Care and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsCare and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsPerrin Harkins
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipseMike Slinn
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialTed Naleid
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated DeploymentMichael Peacock
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deploymentphpne
 
Professional deployment
Professional deploymentProfessional deployment
Professional deploymentIvelina Dimova
 
A glance at the Rust SWC
A glance at the Rust SWCA glance at the Rust SWC
A glance at the Rust SWCThien Ly
 
PVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIPVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIAndrey Karpov
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementPhilip Johnson
 

Semelhante a De-centralised Version Control with Bazaar (20)

JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
 
Version Control for mere and freelance mortals
Version Control for mere and freelance mortalsVersion Control for mere and freelance mortals
Version Control for mere and freelance mortals
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
Care and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsCare and Feeding of Large Web Applications
Care and Feeding of Large Web Applications
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipse
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deployment
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
A glance at the Rust SWC
A glance at the Rust SWCA glance at the Rust SWC
A glance at the Rust SWC
 
PVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIPVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CI
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 

Último

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

De-centralised Version Control with Bazaar

  • 1. Bazaar Version Control Stuart Colville and Andrew Phillipo
  • 2. X Version Control Software A way to keep a multiple revisions of a single resource without creating copies Undo either short or long term Audit-trail of who did what and when Access to details of why a change was made Tools to help teams of developers work on a single code base
  • 3. History of Version Control Systems “Those who cannot remember the past are condemned to repeat it.” - George Santanya
  • 4. SCCS - Source Code Control System The first Version Control System, built during the 70s Was dominant until RCS was released SCCS had no concept of branching Internal file format is still used today by Bitkeeper and TeamWare Tools still available to access the SCCS format
  • 5. RCS - Revision Control System Built During the 80s as “a better SCCS” Only knows about revisions of single files Supports branching, badly “RCS automates the storing, retrieval, logging, identification, and merging of revisions.” - GNU RCS homepage
  • 6. CVS - Concurrent Versioning System Originally based upon RCS (for managing sets of files/projects) in the late 80s, by Dick Grune and later rewritten by Brian Berliner Only files are versioned, no symlinks or directories No direct moving/renaming capability Branching and merging can be a world of pain Allows control over who can commit Stable, well supported infrastructure and tools
  • 8. SVN - Subversion Project start by collab.net in 2000 Built to improve on CVS Atomic commits Allows renaming/moving of assets Language bindings for all common programming languages
  • 9. What do you look for in a revision control system? Stability Easy to use Doesn’t get in the way of me developing my stuff Flexibility Extensible
  • 10. Introduction to Bazaar Easy to branch and smarter merging First-class renaming capabilities No server software needed - “Batteries included” Designed with usability, ease of use in mind Cross platform: Linux, BSD, OSX, Windows Flexible and extensible, with a full plug-in system
  • 13. Workflows: Solo As simple as pick a directory and tell bazaar to start versioning it No server/database setup Sharing with other developers is easy, should it be needed Let’s look at an example...
  • 14. Set-up a versioned dir $ cd ~/bazaar/demo $ bzr init ~/bazaar/demo is now set-up to be versioned
  • 15. Let’s add a file $ vim test.css $ bzr add
  • 16. Let’s add a file $ vim test.css $ bzr add added test.css
  • 17. First commit $ bzr commit -m “my first commit”
  • 18. First commit $ bzr commit -m “my first commit” added test.css Committed revision 1.
  • 25. Why use Distributed VCS in tandem with Centralised Version Control? Company policy requires the use of a centralised system Development with centralised VCS is harder A modern VCS brings more advanced merging Reduction in developer suicide rate
  • 26. Using Distributed VCS in tandem with Centralised Version Control Keeping history: Tailor is a tool that can convert between many different rcs http://progetti.arstecnica.it/tailor CVSPSImport converts directly from CVS http://bazaar-vcs.org/CVSPSImport Ignore history and take current set of files Faster but obviously you lose access to older history
  • 27.
  • 28. Launchpad.net Similar to sourceforge with 100% less CVS Tightly integrated with Bazaar - though import from other VCS is possible Removes the barriers to contributing open- source development Bug tracking, FAQ, Documentation and translation management
  • 29. Launchpad Example Bazaar-email is a simple plug-in that uses the post-commit hooks in bazaar to mail diffs To contribute back to the project I raised bugs for trivial issues found using the plug-in A developer fixed one of these issues and submitted a branch linked to the bug To add this to trunk the maintainer can simply carry out a merge
  • 30. Launchpad Bug fix process Branch the trunk/main branch Make + test the fix Push the fix back to launchpad and associate it with the bug number bzr push sftp://user@bazaar.launchpad.net/~user/project/branch The maintainer can then merge the fix into the trunk
  • 31. Adding a feature to a project Branch the trunk/main branch Merged pending bugfixes Develop the feature Push to launchpad bzr push sftp://user@bazaar.launchpad.net/~user/project/branch Raise merge request
  • 32.
  • 33. Let’s hack on something
  • 34. Conclusion Version control has come a long way De-centralisation is the future! First-class merging makes this all possible Development should never be constrained by the version control system you use