SlideShare ist ein Scribd-Unternehmen logo
1 von 56
1 Your next Version Control System Gilad Garon December 18th 2008
Agenda Introduction Branching Merging Subversion 1.5  Distributed Version Control 2
Introduction What’s every VCS user worst nightmare? Nope. It’s… 3
Agenda Introduction Branching Merging Subversion 1.5  Distributed Version Control 4
Development Cycle	 Our repository layout should behave like our development cycle: Development Phase Testing Phase Release Final Product Our VCS should accommodate us and not the other way, no matter what’s our development process. 5
Single Development Line One branch holds all phases of the develop cycle. 6
Development Line with Support Line 7 Pros Cons
Development Line with Support Line One branch holds our development code. A second branch holds our production code for continued support. 8
Development Line with Support Line 9 Pros Cons
Three Level Build A classic layout for a three phase development cycle. Release candidates are for the testing phase and support phase.  The production branch is sterile. 10
Development Line with Support Line 11 Pros Cons
Multiple Feature Support Build #1 Feature branches allow for even more code separation on complex projects 12
Multiple Feature Support Build #2 13 ,[object Object],[object Object]
Branching is good for you Branches are great for code separation. Branches are cheap Branches are easy to createSo, what’s the catch? 15
Agenda Introduction Branching Merging Subversion 1.5  Distributed Version Control 16
Merging What the?! Override everything! Seems Familiar? 17
Why merges are hard? Requires knowledge of the code Resolving conflicts by hand takes time Large projects require some planning Can cause logical bugs which aren’t easily detected 18
Making merges easier Merge daily! Let the VCS do the merge for you Don’t merge at the last minute, allocate merging time in your time table. Keep tabs on your code, keep notes on your changes. 19
Merge Tracking ,[object Object]
No more revision calculations
Cherry Pick your changes
See incoming changes
Refactor code without fear My Hero! 20
Common Myths ,[object Object]
Merges are hard?
Daily merges helps?
Automatic merges are dangerous?
Merging takes days of preparation?21
Agenda Introduction Branching Merging Subversion 1.5 Distributed Version Control 22
What’s New? Merge tracking Sparse checkouts Interactive conflict resolution Changelist support Speed improvements, cancellation response improvements Bug Fixes 23
Merge Tracking Create a branch Work on your branch Update your branch with trunk’s changes svn copy http://yourserver.com/svn/project-x/trunk       http://yourserver.com/svn/project-x/branches/feature-z       -m "Creating a feature branch of /project-x/trunk." svn checkout http://yourserver.com/svn/project-x/branches/feature-z… work …svn commit - m “committing my work."  svn merge http://yourserver.com/svn/project-x/trunk --- Merging r20 through r45 into '.': U GridView.java  24
Merge Tracking What has been merged so far? Which changes are available from trunk?  svn propget svn:mergeinfo . /trunk:20-45 # or  svn mergeinfo http://yourserver.com/svn/project-x/trunk r20r21…r44r45 svn mergeinfo http://yourserver.com/svn/project-x/trunk --show-revs eligible r46r47 25
Merge Tracking Merging back your branch: What’s the catch?  No support for renames moves Mergeinfo is sometimes generated when no merge was done $ cd /workspace/project-x/trunk$ svn merge --reintegrate http://yourserver.com/svn/project-x/branches/feature-z--- Merging differences between repository URLs into '.': … changes list …# build, test, verify, ... $ svn commit -m “Merging feature-z back into trunk!"  26
More New Features Sparse checkouts Interactive conflict resolution Changelist support $ svn checkout URI --depth=[empty,files,immediates,infinity]# command support - checkout, switch, update, status, info $ svn up U project-x/trunk/GridView.javaConflict discovered in 'project-x/trunk/GridView.java'.Select: (p) postpone, (df) diff-full, (e) edit, (s) show all options: $ svn changelist bug-fix-1 GridView.javaPath 'GridView.java' is now a member of changelist 'bug-fix-1'.$ svn status --- Changelist ‘bug-fix-1': M GridView.java 27
Upgrading to Subversion 1.5 Server	 Backup everything  Install Subversion 1.5 Server Upgrade existing repositories with: Populate indexes (Optional): Upgrade clients Pray to god 28 $ svnadmin upgrade REPOS_PATH $ svn-populate-node-origins-index REPOS-PATH
TortoiseSVN 1.5 29 TortoiseSVN is upgraded to support Subversion 1.5 The Merge process is simplified and merge tracking is supported The repository now more resembles the Windows explorer Changelist support is supported Hook Scripts and Issue Trackers are supported
TortoiseSVN 1.5 Merge 30
New Feature Compatibility Table 31
Agenda Introduction Branching Merging Subversion 1.5  DistributedVersion Control 32
What is DVCS? Distributed VCS does NOT mean the physical distribution of the repository over several machines. Distributed VCS means the repository is located on your machine. 33
Terminology In DVCS we… Do not check out from the repository, we clonethe repository. Do not update our working copy, we pullchanges from other repositories. Do not check in our changes,we pushchanges to other repositories. 34
Advantages You are the repository Performance, no network overhead. Work offline, work where ever you want. Experiment, no commit rights required. Local Commits, the repository is in your workspace. Flexible repository topology 35
Disadvantages But… Sparse checkouts are not fully supported if at all. Most vendors do not support branching, you must clone. Merge Tracking needs to mature a bit. More suited to Open Source projects than commercial. 36
Centralized Workflow 37
Decentralized Workflow 38
Decentralized with shared mainlineWorkflow 39
Decentralized with GatekeeperWorkflow 40
Git ,[object Object]
Invented by Linus Torvalds to replace BitKeeper
Toolkit design
Used in - Linux Kernel, VLC, Ruby On Rails, Fedora, Android
IDE Support - Eclipse, NetBeansIntelliJ (Native)Subversion is the devil, use Git. 41
Git Shell 42
Gitk 43
Git Pros & Cons 44 Pros Cons
Bazaar ,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...Josef Adersberger
 
DockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDocker, Inc.
 
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas Hoppe
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas HoppeOSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas Hoppe
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas HoppeNETWAYS
 
Automation CI CD with Gitlab, Java, docker on Hidora - Jelastic
Automation CI CD with Gitlab, Java, docker on Hidora - JelasticAutomation CI CD with Gitlab, Java, docker on Hidora - Jelastic
Automation CI CD with Gitlab, Java, docker on Hidora - JelasticHidora
 
Microcontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingMicrocontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingOracle Developers
 
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...DynamicInfraDays
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipelineMichel Schildmeijer
 
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...All Things Open
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupRudy De Busscher
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Docker, Inc.
 
DCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any InfrastructureDCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any InfrastructureDocker, Inc.
 
A microservice architecture based on golang
A microservice architecture based on golangA microservice architecture based on golang
A microservice architecture based on golangGianfranco Reppucci
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...Docker, Inc.
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...E. Camden Fisher
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-finalMichel Schildmeijer
 
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole Lang
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole LangOSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole Lang
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole LangNETWAYS
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Amrita Prasad
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydrationMichel Schildmeijer
 

Was ist angesagt? (20)

The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 
DockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTR
 
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas Hoppe
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas HoppeOSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas Hoppe
OSDC 2018 | Self Hosted bare Metal Kubernetes for SMEs by Thomas Hoppe
 
Automation CI CD with Gitlab, Java, docker on Hidora - Jelastic
Automation CI CD with Gitlab, Java, docker on Hidora - JelasticAutomation CI CD with Gitlab, Java, docker on Hidora - Jelastic
Automation CI CD with Gitlab, Java, docker on Hidora - Jelastic
 
Microcontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingMicrocontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container Debugging
 
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...
ContainerDays NYC 2015: "Container Orchestration Compared: Kubernetes and Doc...
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline
 
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...Introduction to GitHub Actions - How to easily automate and integrate with Gi...
Introduction to GitHub Actions - How to easily automate and integrate with Gi...
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
 
DCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any InfrastructureDCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any Infrastructure
 
Openshift presentation
Openshift presentationOpenshift presentation
Openshift presentation
 
A microservice architecture based on golang
A microservice architecture based on golangA microservice architecture based on golang
A microservice architecture based on golang
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
WebLogic and GraalVM
WebLogic and GraalVMWebLogic and GraalVM
WebLogic and GraalVM
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-final
 
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole Lang
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole LangOSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole Lang
OSDC 2018 | Git things done with GitLab by Gabriel Hartmann and Nicole Lang
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
 

Andere mochten auch

Version Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an exampleVersion Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an exampleGaurav Kumar Garg
 
Git the fast version control system
Git the fast version control systemGit the fast version control system
Git the fast version control systemJeroen Rosenberg
 
Version Control System
Version Control SystemVersion Control System
Version Control Systemguptaanil
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitE Carter
 
Version Control System
Version Control SystemVersion Control System
Version Control SystemTechAhead
 
HotSpot JVM Tuning
HotSpot JVM TuningHotSpot JVM Tuning
HotSpot JVM TuningGilad Garon
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Andere mochten auch (9)

Version Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an exampleVersion Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an example
 
Git the fast version control system
Git the fast version control systemGit the fast version control system
Git the fast version control system
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
HotSpot JVM Tuning
HotSpot JVM TuningHotSpot JVM Tuning
HotSpot JVM Tuning
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Ähnlich wie JavaEdge 2008: Your next version control system

Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel developmentshalom938
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with BazaarStuart Colville
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld PresentationDan Hinojosa
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Vishnu Kannan
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version ControlNowell Strite
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...Puppet
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneyAbhinav Gupta
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows AzureIdo Flatow
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseEmanuele Quinto
 
Migration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsMigration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsStefan Kolb
 

Ähnlich wie JavaEdge 2008: Your next version control system (20)

Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel development
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase 
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
Migration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsMigration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud Platforms
 

Kürzlich hochgeladen

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Kürzlich hochgeladen (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

JavaEdge 2008: Your next version control system

  • 1. 1 Your next Version Control System Gilad Garon December 18th 2008
  • 2. Agenda Introduction Branching Merging Subversion 1.5 Distributed Version Control 2
  • 3. Introduction What’s every VCS user worst nightmare? Nope. It’s… 3
  • 4. Agenda Introduction Branching Merging Subversion 1.5 Distributed Version Control 4
  • 5. Development Cycle Our repository layout should behave like our development cycle: Development Phase Testing Phase Release Final Product Our VCS should accommodate us and not the other way, no matter what’s our development process. 5
  • 6. Single Development Line One branch holds all phases of the develop cycle. 6
  • 7. Development Line with Support Line 7 Pros Cons
  • 8. Development Line with Support Line One branch holds our development code. A second branch holds our production code for continued support. 8
  • 9. Development Line with Support Line 9 Pros Cons
  • 10. Three Level Build A classic layout for a three phase development cycle. Release candidates are for the testing phase and support phase. The production branch is sterile. 10
  • 11. Development Line with Support Line 11 Pros Cons
  • 12. Multiple Feature Support Build #1 Feature branches allow for even more code separation on complex projects 12
  • 13.
  • 14. Branching is good for you Branches are great for code separation. Branches are cheap Branches are easy to createSo, what’s the catch? 15
  • 15. Agenda Introduction Branching Merging Subversion 1.5 Distributed Version Control 16
  • 16. Merging What the?! Override everything! Seems Familiar? 17
  • 17. Why merges are hard? Requires knowledge of the code Resolving conflicts by hand takes time Large projects require some planning Can cause logical bugs which aren’t easily detected 18
  • 18. Making merges easier Merge daily! Let the VCS do the merge for you Don’t merge at the last minute, allocate merging time in your time table. Keep tabs on your code, keep notes on your changes. 19
  • 19.
  • 20. No more revision calculations
  • 23. Refactor code without fear My Hero! 20
  • 24.
  • 27. Automatic merges are dangerous?
  • 28. Merging takes days of preparation?21
  • 29. Agenda Introduction Branching Merging Subversion 1.5 Distributed Version Control 22
  • 30. What’s New? Merge tracking Sparse checkouts Interactive conflict resolution Changelist support Speed improvements, cancellation response improvements Bug Fixes 23
  • 31. Merge Tracking Create a branch Work on your branch Update your branch with trunk’s changes svn copy http://yourserver.com/svn/project-x/trunk http://yourserver.com/svn/project-x/branches/feature-z -m "Creating a feature branch of /project-x/trunk." svn checkout http://yourserver.com/svn/project-x/branches/feature-z… work …svn commit - m “committing my work." svn merge http://yourserver.com/svn/project-x/trunk --- Merging r20 through r45 into '.': U GridView.java 24
  • 32. Merge Tracking What has been merged so far? Which changes are available from trunk? svn propget svn:mergeinfo . /trunk:20-45 # or svn mergeinfo http://yourserver.com/svn/project-x/trunk r20r21…r44r45 svn mergeinfo http://yourserver.com/svn/project-x/trunk --show-revs eligible r46r47 25
  • 33. Merge Tracking Merging back your branch: What’s the catch? No support for renames moves Mergeinfo is sometimes generated when no merge was done $ cd /workspace/project-x/trunk$ svn merge --reintegrate http://yourserver.com/svn/project-x/branches/feature-z--- Merging differences between repository URLs into '.': … changes list …# build, test, verify, ... $ svn commit -m “Merging feature-z back into trunk!" 26
  • 34. More New Features Sparse checkouts Interactive conflict resolution Changelist support $ svn checkout URI --depth=[empty,files,immediates,infinity]# command support - checkout, switch, update, status, info $ svn up U project-x/trunk/GridView.javaConflict discovered in 'project-x/trunk/GridView.java'.Select: (p) postpone, (df) diff-full, (e) edit, (s) show all options: $ svn changelist bug-fix-1 GridView.javaPath 'GridView.java' is now a member of changelist 'bug-fix-1'.$ svn status --- Changelist ‘bug-fix-1': M GridView.java 27
  • 35. Upgrading to Subversion 1.5 Server Backup everything Install Subversion 1.5 Server Upgrade existing repositories with: Populate indexes (Optional): Upgrade clients Pray to god 28 $ svnadmin upgrade REPOS_PATH $ svn-populate-node-origins-index REPOS-PATH
  • 36. TortoiseSVN 1.5 29 TortoiseSVN is upgraded to support Subversion 1.5 The Merge process is simplified and merge tracking is supported The repository now more resembles the Windows explorer Changelist support is supported Hook Scripts and Issue Trackers are supported
  • 39. Agenda Introduction Branching Merging Subversion 1.5 DistributedVersion Control 32
  • 40. What is DVCS? Distributed VCS does NOT mean the physical distribution of the repository over several machines. Distributed VCS means the repository is located on your machine. 33
  • 41. Terminology In DVCS we… Do not check out from the repository, we clonethe repository. Do not update our working copy, we pullchanges from other repositories. Do not check in our changes,we pushchanges to other repositories. 34
  • 42. Advantages You are the repository Performance, no network overhead. Work offline, work where ever you want. Experiment, no commit rights required. Local Commits, the repository is in your workspace. Flexible repository topology 35
  • 43. Disadvantages But… Sparse checkouts are not fully supported if at all. Most vendors do not support branching, you must clone. Merge Tracking needs to mature a bit. More suited to Open Source projects than commercial. 36
  • 46. Decentralized with shared mainlineWorkflow 39
  • 48.
  • 49. Invented by Linus Torvalds to replace BitKeeper
  • 51. Used in - Linux Kernel, VLC, Ruby On Rails, Fedora, Android
  • 52. IDE Support - Eclipse, NetBeansIntelliJ (Native)Subversion is the devil, use Git. 41
  • 55. Git Pros & Cons 44 Pros Cons
  • 56.
  • 57. Started as a branch of Arch
  • 59. Used in - Ubuntu, MySQL, Drupal, APT, Linux Foundation
  • 60. IDE Support - Eclipse, IntelliJ (Native)45
  • 62. Bazaar Pros & Cons 47 Pros Cons
  • 63.
  • 64. Very Similar to Subversion
  • 65. Adopted by Sun Microsystems
  • 66. Used in - Mozilla, NetBeans, OpenJDK, OpenSolaris
  • 67. IDE Support - Eclipse, NetBeans,IntelliJ48
  • 70. Mercurial Pros & Cons 51 Pros Cons
  • 72. Conclusion And the Winner is? Experiment with the tools Choose the tool which works with your workflow 53
  • 73. References Subversion Home Page: http://subversion.tigris.org/ Tortoise: http://tortoisesvn.tigris.org/ SVNKit: http://svnkit.com/ Eclipse Plug-in: http://subclipse.tigris.org/ NetBeans Plug-in: http://subversion.netbeans.org/ Git Home Page: http://git.or.cz/ msysgit (Git Windows) : http://code.google.com/p/msysgit/ Eclipse Plug-in: http://git.or.cz/gitwiki/EclipsePlugin NetBeans Plug-in: http://code.google.com/p/nbgit/ 54
  • 74. References Mercurial Home Page: http://www.selenic.com/mercurial/wiki/ TortoiseHG: http://www.selenic.com/mercurial/wiki/index.cgi/TortoiseHg Eclipse Plug-in: http://www.vectrace.com/mercurialeclipse Bazaar Home Page: http://bazaar-vcs.org/ IDE Plug-ins: http://bazaar-vcs.org/IDEIntegration 55
  • 75. Thank You ! 56