SlideShare a Scribd company logo
1 of 20
Download to read offline
The Force.com Migration tool, GIT
and You
ANT and GIT: an offensive and defensive strategy for
Source Control Management
Kyle Bowerman, Appirio/Cloudspokes, Technical Architect
@kylebowerman
Kyle Bowerman
Appirio / Cloudspokes TA
@kylebowerman
Just four commands can change you life!

ant
git
git
git

fetchmyorg
add .
commit –a –m ’auto commit’
push origin
Topics we will cover today
▪ANT (Force.com migration tool)

▪GIT

• Basic deploy
• Basic Fetch

• Git Concepts
• Bug fix example

▪ Defensive SCM strategy
• Monitor changes daily
• Forensics tool

▪ Offensive SCM strategy
• Release packages
• Directory structures
• Cloud repositories and Tools
Ant for retrieve,

still just three files (defensive)

build.properties = login, password and serverurl
build.xml = what to do
Unpackge-all.xml = what to get (supports * wildcards)

Ant fetchdev3
Ant for deployment,

same three files (offensive)

build.properties = login, password and serverurl
package.xml = the manifest (what to deploy)
build.xml = the instructions of what to do <target>
What is GIT and why use it
▪ 3rd Generation
▪ Ubiquitous standard
▪ Highly distributed and easy
▪ Easy to branch, merge and audit
▪ Cloud repos offer additional services like issue tracking and wiki

git clone https://github.com/forcedotcom/aura.git
Git concepts and commands
clone
remote
branch
fetch
pull
push

checkout
merge
add
commit
log
tag

pull:
brings down
push:
latest src

repo

fetch:
brings down
latest src
from repo to
HEAD

puts latest
and merges
commit into
it into current
repo
branch

branch:

Local

copies the master branch

clone: gets the code from
the remote, do once
Daily snapshots: defensive example
ant
git
git
git

fetchmyorg
add .
commit –a –m ’auto commit’
push origin
Classic bug fix: offensive example
git clone http://github/user/reponame
git checkout –b issue49
change code and test
git commit –a –m ‘fixed issue #49’
git checkout master
git merge issue49
git push origin
What you git
What you git
detail of a commit

• link to issue (github)
• commit message
• author and date
• summary of change
• diff of each change
• detail of each file
Two options for directory structures for salesforce.
com orgs
Use 1 branch per org
▪ SRC

Use a sub dir per org
▪ Orgs

▪ packages

• Prod/SRC

▪ docs

• Dev/SRC

▪ data
▪ scripts
▪ readme.md
▪ build.xml
▪ unpackage-all.xml

• Testing/SRC

▪ docs
▪ packages
▪ data
▪ readme.md
▪ build.xml
Options for version numbering your release
Major.Minor.release#
Project.Feature.Sprint#.Hotfix#
Project.ApiVersion.model.release#

1.2.31
1.0.6.1
2.29.14.27

You can use any versioning schema you want or create you own.
The important thing is that everyone understands what each digit
means, and you have a release note for each release.
Git Cloud Repositories
▪ Github
• No free repos
• Industry standard for open source
• Wiki and Issue tracker
• Smart Commits

▪ Bitbucket
• Unlimited private repos (but only 5 users)
• From Atlassian
• Side by side diffs
Git GUIs:
All About Appirio and Cloudspokes
Appirio is a global service company that uses traditional
consulting, crowd sourcing and cloud, social and mobile
technology to help enterprises dramatically improve the way
they do business.

Cloudspokes is Appirio’s crowd sourcing business unit.
With it’s recent acquisition of TopCoder.com, it provides a
resource of nearly 600k developers world wide to provide
customer solutions
Kyle Bowerman
Technical Architect
@kylebowerman
We want to hear
from YOU!
Please take a moment to complete our
session survey
Surveys can be found in the “My Agenda”
portion of the Dreamforce app
Manage Org Changes Using the Force.com Migration Tool and Git

More Related Content

What's hot

Release Management for Large Enterprises
Release Management for Large EnterprisesRelease Management for Large Enterprises
Release Management for Large Enterprises
Salesforce Developers
 
CI-solutions-Versus-AutoRABIT
CI-solutions-Versus-AutoRABITCI-solutions-Versus-AutoRABIT
CI-solutions-Versus-AutoRABIT
alkhan50
 

What's hot (20)

Automating Deployment Between Orgs Using Git & Continuous Integration
Automating Deployment Between Orgs Using Git & Continuous IntegrationAutomating Deployment Between Orgs Using Git & Continuous Integration
Automating Deployment Between Orgs Using Git & Continuous Integration
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development Cycle
 
5 Essentials for Simplifiied Release Management and Continuous Delivery
5 Essentials for Simplifiied Release Management and Continuous Delivery5 Essentials for Simplifiied Release Management and Continuous Delivery
5 Essentials for Simplifiied Release Management and Continuous Delivery
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for Puppet
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
 
Release Management for Large Enterprises
Release Management for Large EnterprisesRelease Management for Large Enterprises
Release Management for Large Enterprises
 
Best practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceBest practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on Salesforce
 
Continuous Integration and Testing with Branch Orgs
Continuous Integration and Testing with Branch OrgsContinuous Integration and Testing with Branch Orgs
Continuous Integration and Testing with Branch Orgs
 
Salesforce Release Management and Continuous Integration with AutoRABIT
Salesforce Release Management and Continuous Integration with AutoRABITSalesforce Release Management and Continuous Integration with AutoRABIT
Salesforce Release Management and Continuous Integration with AutoRABIT
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloud
 
The definitive guide to salesforce sandbox flosum
The definitive guide to salesforce sandbox flosumThe definitive guide to salesforce sandbox flosum
The definitive guide to salesforce sandbox flosum
 
Continuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 PlatformContinuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 Platform
 
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
A Story of Continuous Integration
A Story of Continuous IntegrationA Story of Continuous Integration
A Story of Continuous Integration
 
CI-solutions-Versus-AutoRABIT
CI-solutions-Versus-AutoRABITCI-solutions-Versus-AutoRABIT
CI-solutions-Versus-AutoRABIT
 
Triggers for Admins: A Five-step Framework for Creating Triggers
Triggers for Admins: A Five-step Framework for Creating TriggersTriggers for Admins: A Five-step Framework for Creating Triggers
Triggers for Admins: A Five-step Framework for Creating Triggers
 
Branching and Merging Practices
Branching and Merging Practices Branching and Merging Practices
Branching and Merging Practices
 

Similar to Manage Org Changes Using the Force.com Migration Tool and Git

3 Git
3 Git3 Git
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
CollabNet
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
Pedro Melo
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 

Similar to Manage Org Changes Using the Force.com Migration Tool and Git (20)

Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git
GitGit
Git
 
Git workshop
Git workshopGit workshop
Git workshop
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
3 Git
3 Git3 Git
3 Git
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Demo
DemoDemo
Demo
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
finall_(1).pptx
finall_(1).pptxfinall_(1).pptx
finall_(1).pptx
 
Git for Windows
Git for WindowsGit for Windows
Git for Windows
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
Git Basics
Git BasicsGit Basics
Git Basics
 
Git hub
Git hubGit hub
Git hub
 

More from Salesforce Developers

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Recently uploaded

Recently uploaded (20)

Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 

Manage Org Changes Using the Force.com Migration Tool and Git

  • 1. The Force.com Migration tool, GIT and You ANT and GIT: an offensive and defensive strategy for Source Control Management Kyle Bowerman, Appirio/Cloudspokes, Technical Architect @kylebowerman
  • 2. Kyle Bowerman Appirio / Cloudspokes TA @kylebowerman
  • 3. Just four commands can change you life! ant git git git fetchmyorg add . commit –a –m ’auto commit’ push origin
  • 4. Topics we will cover today ▪ANT (Force.com migration tool) ▪GIT • Basic deploy • Basic Fetch • Git Concepts • Bug fix example ▪ Defensive SCM strategy • Monitor changes daily • Forensics tool ▪ Offensive SCM strategy • Release packages • Directory structures • Cloud repositories and Tools
  • 5. Ant for retrieve, still just three files (defensive) build.properties = login, password and serverurl build.xml = what to do Unpackge-all.xml = what to get (supports * wildcards) Ant fetchdev3
  • 6. Ant for deployment, same three files (offensive) build.properties = login, password and serverurl package.xml = the manifest (what to deploy) build.xml = the instructions of what to do <target>
  • 7. What is GIT and why use it ▪ 3rd Generation ▪ Ubiquitous standard ▪ Highly distributed and easy ▪ Easy to branch, merge and audit ▪ Cloud repos offer additional services like issue tracking and wiki git clone https://github.com/forcedotcom/aura.git
  • 8. Git concepts and commands clone remote branch fetch pull push checkout merge add commit log tag pull: brings down push: latest src repo fetch: brings down latest src from repo to HEAD puts latest and merges commit into it into current repo branch branch: Local copies the master branch clone: gets the code from the remote, do once
  • 9. Daily snapshots: defensive example ant git git git fetchmyorg add . commit –a –m ’auto commit’ push origin
  • 10. Classic bug fix: offensive example git clone http://github/user/reponame git checkout –b issue49 change code and test git commit –a –m ‘fixed issue #49’ git checkout master git merge issue49 git push origin
  • 12. What you git detail of a commit • link to issue (github) • commit message • author and date • summary of change • diff of each change • detail of each file
  • 13. Two options for directory structures for salesforce. com orgs Use 1 branch per org ▪ SRC Use a sub dir per org ▪ Orgs ▪ packages • Prod/SRC ▪ docs • Dev/SRC ▪ data ▪ scripts ▪ readme.md ▪ build.xml ▪ unpackage-all.xml • Testing/SRC ▪ docs ▪ packages ▪ data ▪ readme.md ▪ build.xml
  • 14. Options for version numbering your release Major.Minor.release# Project.Feature.Sprint#.Hotfix# Project.ApiVersion.model.release# 1.2.31 1.0.6.1 2.29.14.27 You can use any versioning schema you want or create you own. The important thing is that everyone understands what each digit means, and you have a release note for each release.
  • 15. Git Cloud Repositories ▪ Github • No free repos • Industry standard for open source • Wiki and Issue tracker • Smart Commits ▪ Bitbucket • Unlimited private repos (but only 5 users) • From Atlassian • Side by side diffs
  • 17. All About Appirio and Cloudspokes Appirio is a global service company that uses traditional consulting, crowd sourcing and cloud, social and mobile technology to help enterprises dramatically improve the way they do business. Cloudspokes is Appirio’s crowd sourcing business unit. With it’s recent acquisition of TopCoder.com, it provides a resource of nearly 600k developers world wide to provide customer solutions
  • 19. We want to hear from YOU! Please take a moment to complete our session survey Surveys can be found in the “My Agenda” portion of the Dreamforce app