collaborative software development with versioning

Post on 22-Jan-2018

409 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mirco Franzago

Collaborative software development

with versioning

Global software engineering

Global software

engineering

Collaboration Coordination

Communication Awareness

Global software engineering

Collaboration

When the technology brings improvements to the shared space or to the way

users interact with shared artifacts synchronously or asynchronously

Coordination

When the technology brings improvements to the support offered for people

managing themselves, or themselves within a team

Communication

When the technology brings improvements to the way messages and

information are exchanged among people, reducing gaps, ambiguity, or the

effort needed to understand, establish, or continue a conversation

Awareness

An understanding of the activities of others, which provides a context for

your own activity

Version control

“A system that records changes to a file or set

of files over time so that you can recall specific

versions later”

Files can refer to anything:

• source files

• images

• Powerpoint slides

• documents

more concretely, if you screw things up or lose files, you can easily

recover!

Local version control

Fonte: ”Pro Git” [Chacon,Straub] – Second Edition (Apress)

Centralized version control

CVSFonte: ”Pro Git” [Chacon,Straub] – Second Edition (Apress)

Distributed version control

Fonte: ”Pro Git” [Chacon,Straub] – Second Edition (Apress)

Fonte: http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/

Fonte: https://www.atlassian.com/ja/git/migration#!migration-share

Fonte: http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/

Git• Distributed Source Control system

• Open source, free (GNU GPL V2)

• Came out of Linux development

community

– Linus Torvalds, 2005

• Goals:

– Speed

– Simple design

– Strong support for non-linear development

(thousands of parallel branches)

– Fully distributed

– Able to handle large projects like the Linux

kernel efficiently (speed and data size)

Fonte: https://www.atlassian.com/ja/git/migration#!migration-share

Fonte: https://git-scm.com/book/tr/v2/Distributed-Git-Contributing-to-a-Project

Git: branch-based

Fonte: https://www.atlassian.com/git/tutorials/using-branches/git-branch

Fonte: http://blog.osteele.com/posts/2008/05/my-git-workflow/

Branching workflow

Git ENCOURAGES workflows that branch and merge often, even multiple

times in a day

When you want to add a new feature or fix a bug—no matter how big or

how small—you spawn a new branch to encapsulate your changes

The main code base is

always stable

It is possible to work in

parallel on different

features

Fonte: https://www.atlassian.com/git/tutorials/using-branches/git-branch

GitHub

A site for online storage of Git repositories

– You can get free space for open source projects

– or you can pay for private projects

Adds extra functionalities, like:

– web UI

– documentation

– bug tracking (issues)

– feature requests, pull requests

– social interactions among developers

• following, check activities, discover new repos

It is not mandatory, you can:

• use Git locally

• setup a private Git server

GitHub branch-based flow

Fonte: https://guides.github.com/introduction/flow/

top related