If you can't read please download the document
Upload
parag-gajbhiye
View
4.201
Download
4
Embed Size (px)
Citation preview
Introduction to
Git(BitBucket) , Continuous Integration (Bamboo) &
Confluence
By,Parag Gajbhiye
(Our software helps your team track, collaborate, code, and ship products smarter and faster : Atlassian)
Git
A distributed version control systemVersion control (or revision control, or source control) is all about managing multiple versions of documents, programs, web sites, etc.
Bitbucket : Git and Mercurial Hosting For Teams
Bitbucket
Unlimited Private Repositories
Work as a Team
JIRA Integration : Link every commit to a JIRA
Fork, Code, Pull
Key Integrations : JIRA, Crucible, Bamboo, Jenkins, and more!
Why version control?
For working by yourself:
Gives you a time machine for going back to earlier versions
Gives you great support for different versions (standalone, web app, etc.) of the same basic project
For working with others:
Greatly simplifies concurrent work, merging changes
The repository
Your top-level working directory contains everything about your project
The working directory probably contains many subdirectoriessource code, binaries, documentation, data files, etc.
One of these subdirectories, named .git, is your repository
At any time, you can take a snapshot of everything (or selected things) in your project directory, and put it in your repository
This snapshot is called a commit object
Commit objects do not require huge amounts of memoryYou can work as much as you like in your working directory, but the repository isnt updated until you commit something
Working with others
All repositories are equal, but it is convenient to have one central repository in the cloud
Heres what you normally do:
Download the current HEAD from the central repository
Make your changes
Commit your changes to your local repository
Check to make sure someone else on your team hasnt updated the central repository since you got it
Upload your changes to the central repository
If the central repository has changed since you got it:
It is your responsibility to merge your two versions
This is a strong incentive to commit and upload often!Git can often do this for you, if there arent incompatible changes
Multiple versions
Initial commit
Second commit
Third commit
Bob gets a copy
Fourth commit
Merge
Bobs commit
Keeping it simple
If you:Make sure you are current with the central repository
Make some improvements to your code
Update the central repository before anyone else does
Then you dont have to worry about resolving conflicts or working with multiple branches
All the complexity in git comes from dealing with these
Therefore:Make sure you are up-to-date before starting to
workCommit and update the central repository frequently
If you need help: https://help.github.com/
Continuous Integration (Bamboo)
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.
What is integration ?
At a minimum:
Gather latest source together
Compile
Execute tests
Verify success
How often is continuously?
As frequently as possible
More like once per hour than once per day
Before leaving at the end of the day
When to integrate?
Implement just enough, then integrate
If using Test Driven Development, it forms a natural break in the cycle
Taking small steps
Code
Refactor
Integrate
Test
Why?
Increased automation
Dont repeat yourself - automate to increase speed and to make less mistakes
Regular feedback
For the integrator : Did that work?
For the rest of the team : Is the build OK?
Reduces Risk overall
Automated CI
Automated Continuous Integration Server
CruiseControl, CruiseControl.NET, TeamCity, Bamboo, etc.
Detects changes in source control
Launches integration build
Publishes results
How does Automated CI Work?
Why use Automated CI?
Makes integration easy
Guarantees integration happens
Better feedback options
Encourages test automation
Immediate Feedback is Key
Bamboo
Confluence
Give your team one place to share, find, and collaborate on information they need to get work done.
Centralize
Organize
Discuss
Jira Integration