sofiadev l9 source control management

24
Работа със системи за управление на сорс код Мартин Кулов Microsoft Regional Director Microsoft Most Valuable Professional

Upload: martin-kulov

Post on 17-May-2015

868 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: SofiaDev L9 Source Control Management

Работа със системи за управление на сорс код

Мартин КуловMicrosoft Regional DirectorMicrosoft Most Valuable Professional

Page 2: SofiaDev L9 Source Control Management

Application Lifecycle Management

• Requirements Management• Architecture• Coding• Testing• Tracking• Release Management

* Source: Wikipedia

Page 3: SofiaDev L9 Source Control Management

One system to rule them all

Page 4: SofiaDev L9 Source Control Management

Source Control

Version Control

a.k.a.

a.k.a.Revision Control

Page 5: SofiaDev L9 Source Control Management

Items

Page 6: SofiaDev L9 Source Control Management

Repository

• Archived folder• Email• File Share• Proprietary• SQL Server

Page 7: SofiaDev L9 Source Control Management

Revision Tools

• Microsoft Word• Open Office• Word Press• Drupal• SharePoint

Page 8: SofiaDev L9 Source Control Management

Software Tools

Client\Server• CVS\SVN• IBM ClearCase• Perforce• Visual SourceSafe• Team Foundation

Server• …many others

Distributed• DCVS• Mercurial• Git• Bazaar• …others

Page 9: SofiaDev L9 Source Control Management

Workflow

Create Project

Init

Branch

Get Latest /

Pull

Check Out / Lock

Add / Change

Get Latest /

Pull

Merge

Check In /

Commit

Page 10: SofiaDev L9 Source Control Management

Other Actions

• Pending Changes / Outgoing• View History• Diff• Label / Tag• Undo Changes / Revert• Track Changeset / View Commit

Page 11: SofiaDev L9 Source Control Management

DEMO: SOURCE CONTROL OPERATIONS

Page 12: SofiaDev L9 Source Control Management

What is a branch?

• “A branch is what happens when your development team needs to work on two distinct copies of a project at the same time.”

Eric Sink – Source Control HOWTO

Page 13: SofiaDev L9 Source Control Management

Common Branching Strategies

Page 14: SofiaDev L9 Source Control Management

Branch per Release

* Source: MSDN

Page 15: SofiaDev L9 Source Control Management

Code-Promotion Branches

* Source: MSDN

Page 16: SofiaDev L9 Source Control Management

Branch per Task

* Source: MSDN

Page 17: SofiaDev L9 Source Control Management

Branch per Component

* Source: MSDN

Page 18: SofiaDev L9 Source Control Management

Branch per Technology

* Source: MSDN

Page 19: SofiaDev L9 Source Control Management

Thoughts on DVCS

“To me, the fact that they make branching and merging easier just means that your coworkers are more likely to branch and merge, and you’re more likely to be confused.”* Eric Sink on the Stack Overflow Podcast

Page 20: SofiaDev L9 Source Control Management

Branching and Merging Anti-Patterns

• Merge Paranoia • Merge Mania• Big Bang Merge• Never-Ending Merge• Wrong-Way Merge• Branch Mania• Cascading Branches• Mysterious Branches• Temporary Branches• Volatile Branches• Development Freeze• Berlin Wall

* Source: MSDN

Page 21: SofiaDev L9 Source Control Management

DEMO: BRANCHING AND MERGING

Page 24: SofiaDev L9 Source Control Management

THANK YOU!