Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence

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