Source Code Control & Bugtracking



Similar documents
Team Foundation Server

h(p://home.hit.no/~hansha/?page=so3ware_development So3ware Maintenance Hans- Pe(er Halvorsen, M.Sc.

So#ware Deployment. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

So#ware Development. Overview. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

The So5ware Development Process (SDLC)

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Source Control Systems

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Agile So6ware Development

Software Engineering. A Short Overview. Hans- Petter Halvorsen, M.Sc.

Advanced Computing Tools for Applied Research Chapter 4. Version control

Software configuration management

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Introduction to Programming Tools. Anjana & Shankar September,2010

Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development

Create a Virtual Test Environment

Continuous Integration. CSC 440: Software Engineering Slide #1

Theme 1 Software Processes. Software Configuration Management

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

Software Engineering I (02161)

Version Control and Subversion. Dr Paul Tennent

Content. Development Tools 2(63)

Version Control using Git and Github. Joseph Rivera

Version Control! Scenarios, Working with Git!

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Version Control with Git

Version Control for Computational Economists: An Introduction

Introducing Xcode Source Control

Distributed Version Control with Mercurial and git

SAS in clinical trials A relook at project management,

Moving to the new EAE version control Grantley McCauley

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Version Control with Git. Dylan Nugent

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Version Uncontrolled! : How to Manage Your Version Control

Version Control Systems

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus

Version Control with Subversion and Xcode

Revision control systems (RCS) and

Ambienti di sviluppo collaborativo

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Data management on HPC platforms

Integrated version control with Fossil SCM

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

In depth study - Dev teams tooling

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Project Management. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Software Configuration Management and Continuous Integration

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica

What CCPForge does Introduction to SESC and CCPForge Workshop Gemma Poulter

Distributed Version Control

Open Source vs. Collaborative Software: FOSS is Not Enough

Drupalcamp Vienna 2009

Using Git for Project Management with µvision

Two Best Practices for Scientific Computing

Microsoft Modern ALM. Gilad Levy Baruch Frei

Version Control with Git

Zero-Touch Drupal Deployment

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

CS 2112 Lab: Version Control

Version Control with Subversion

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Lab Inventory System. Label Writer Access Card with Barcode Barcode Reader. Hans- Pe(er Halvorsen, M.Sc.

Mobile Development with Git, Gerrit & Jenkins

Source code management systems

Introduction to the Git Version Control System

Software Engineering Process. Kevin Cathey

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Git Branching for Continuous Delivery

Roundtable Enterprise

Git, GitHub & Web Hosting Workshop

Version Control with Git. Kate Hedstrom ARSC, UAF

Release Management Within Open Source Projects

SOFTWARE DEVELOPMENT BASICS SED

The Bazaar Version Control System. Michael Hudson, Canonical Ltd

HP ALM11 & MS VS/TFS2010

Software Documentation

Beginning with SubclipseSVN

THE OPEN SOURCE DEVELOPER REPORT

Version Control. Luka Milovanov

Master s Thesis. git-sprite: Supporting Tool for Pull-Based Software Development Model. Yusuke Saito

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

An Introduction to Mercurial Version Control Software

Version Control with Subversion

SA4 Software Developer Survey Survey Specification v2.2

Continuous Integration

Software Configuration Management

Software configuration Management as a Software Engineering Discipline

Technical Writing - Advantages of Version Control Systems

About Me Developer Workspaces Enable Agile Teams

Version Control Tools

Administering Team Foundation Server 2013

Using GitHub for Rally Apps (Mac Version)

Version Control with. Ben Morgan

Ingeniørh. Version Control also known as Configuration Management

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Transcription:

h(p://home.hit.no/~hansha/?page=sonware_development O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Source Code Control & Bugtracking Hans- Pe(er Halvorsen, M.Sc. 1

O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 2

Contents Source Code Control (SCC) Revision Control Version Control Source Code Management (SCM) Bug ReporSng Bug Tracking Tools 3

Source Code Control (SCC) Version/Revision Control Source Code Management (SCM) Hans- Pe(er Halvorsen, M.Sc. 4

5

SCC Systems SVN Concurrent Versioning System 6

Android Studio SCC Support in IDEs Visual Studio LabVIEW 7

Source Code Control/Version Control What is it? A version control system keeps track of all work and all changes in a set of files (typically your code files, but also other files) Allows several developers (potensally widely separated in space and Sme) to collaborate All SoNware Developers need it!! 8

Typical SCC Features Checkout, Checkin/Commit Branching, Merging File Locking (avoid concurrent access) Label/Tag Change/Change List Conflict Revision, IteraSon 9

SCC Features 1.0 Label/Tag it Checkout, Checkin/Commit Branching, Merging File Locking (avoid concurrent access) Label/Tag Change/Change List/History Conflict Braching 1.1 2.0 Work with Bug Fix Bug Fix Released Work with new Release Merging 2.0 Released etc. Branching in TFS: h(p://msdn.microson.com/en- us/library/ee782536.aspx 10

Change/Change List/History Get back old files Get overview of when the files has been changed, by who, etc, It is important that you use the Comment field every Sme you check in your files!! 11

Conflicts and File Merging In SCC System several people may work concurrently on the same code file. One drawback is that somesmes you must resolve conflicts before you can get, check in, or merge files. 12

13

Exercise SCC Each of you use 1-2 sentences to explain the terms (one each) Repository Working Copy Checkout Checkin/Commit Branch/Branching Fork/Forking Merge/Merging File Locking Label/Tag Change/Change List Conflict Revision, IteraSon

SCC Glossary O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Repository Checkin/Commit, Checkout File Locking Version Conflict Branching, Merging Label Fork Fork in the meaning of to divide in branches, go separate ways. In sonware engineering, a project fork happens when developers take a copy of source code from one sonware package and start independent development on it, creasng a dissnct piece of sonware. The term onen implies not merely a development branch, but a split in the developer community Example: OpenOffice.org forked to LibreOffice Break the build Wikipedia. (2013). Revision Control. Available: h(p://en.wikipedia.org/wiki/source_code_management Wikipedia. (2013). Fork (So,ware Development). Available: h(p://en.wikipedia.org/wiki/fork_(sonware_development) 15

Centralized/Client Server architecture A server stores the current version(s) of a project and its history, and clients connect to the server in order to "check out" a complete copy of the project, work on this copy and then later "check in" their changes DVCS DisSbuted Version Control System With a distributed version control system, there isn t one centralized code base to pull the code from. Different branches hold different parts of the code. Git is a DVCS. Other version control systems, such as SVN and CVS, use centralized version control, meaning that only one master copy of the sonware is used. Peer- to- peer approach 16

Exercise SCC Systems Distributed (DVCS) or Centralized/Client Server? TFS CVS SVN (Subversion) Git Mercurial Bazaar LibreSource Monotone BitKeeper Client Server Distributed

Centralized/ Client Cerver architecture TFS CVS SVN (Subversion) LibreSource DVCS Git Mercurial Bazaar Monotone BitKeeper 18

Centralized/Client Server architecture Client Client Client Network Client Server Repository Repository: Source Code Database

DisSbuted Version Control System Repository peer- to- peer peer- to- peer Repository Repository Repository Repository: Source Code Database

Team FoundaSon Server SDLC Management (SDLC SoNware Development Life Cycle) SoNware Team CollaboraSon Source Code Management Supports Agile, Scrum, CMMI Integrated Test Tools Bug Tracking System Automated Builds Built in Team FoundaSon Version Control (TSVC) + Support for Git repositories Built- in support for TFS in Visual Studio (Team Explorer) Plug- in for Eclipse (Team Explorer Everywhere) MSSCCI Provider for other IDEs like LabVIEW, etc. 21

CVS CVS - Concurrent Versions System Established 1986-1990 Free of charge CVS uses a client server architecture: a server stores the current version(s) of a project and its history, and clients connect to the server in order to "check out" a complete copy of the project, work on this copy and then later "check in" their changes Widely supported in different IDEs (Eclipse, Xcode, ) 22

SVN (Subversion) Open Source License Established in 2000 Subversion is probably the version control system with the widest adopson Many different Subversion clients are available (Tortoise SVN, Mac: Versions, Xcode (built- in support for SVN)) h(p://subversion.apache.org 23

Git Has become very popular today Distributed Version Control System IniSally designed and developed by Linus Torvalds (Linux Guru) (2005) Git is Free of use CVS and SVN is easier to use than Git for beginners 24

ExplanaSon: If you track down a bug in your code and want to know when it was introduced and why, file annotason is onen your best tool. It shows you what commit was the last to modify each line of any file. So, if you see that a method in your code is buggy, you can annotate the file with git blame to see when each line of the method was last edited and by whom. 25

TFVC vs. Git Team FoundaSon Version Control (TFVC) uses a single, centralized server repository to track and version files. Local changes are always checked in to the central server where other developers can get the latest changes. Git is a Distributed Version Control System (DVCS) that uses a local repository to track and version files. Changes are shared with other developers by pushing and pulling changes through a remote, shared repository. 26

Web- based SCC HosSng Services Visual Studio Online (formerly Team FoundaSon Services) (www.visualstudio.com) TFVC or Git GitHub (www.github.com) Bitbucket (www.bitbucket.org) Mercurial or Git 27

Source Code Control SCC Repositories Web- based SCC HosJng Services (Montly payment/5 users free of charge/free for open source projects) Git TFVC or Git Git or Mercurial 28

O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Bugtracking Systems Hans- Pe(er Halvorsen, M.Sc. 29

30

Bugs A sonware bug is an error, flaw, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways They found a bug (actually a moth) inside a computer in 1947 that made the program not behaving as expected. This was the first real bug. 31

Why Find Bugs early? Cost per defects SoNware Development Life Cycle (SDLC) 32

Bugs vs. Features It's not a bug - it's an undocumented feature J For as long as I've been a sonware developer and used bug tracking systems, we have struggled with the same fundamental problem in every single project we've worked on: how do you tell bugs from feature requests? 33

SoNware Releases Before the sonware is released Alpha Release(s) Beta Release(s) RC - Release Candidate(s) RTM Release To Manufactoring Maintenance (aner the sonware is released) Patches (small fixes) SP - Service Packs (lots of small fixes and pathes bundle together) Start Planning next release 34

Example - Windows 8 Start planning and development of Windows 8, 2008/2009 (the planning started before Windows 7 was released) Internal Builds xxxx xxxx Internal Alpha versions, Alpha 1, 2, 3 Internal Builds xxxx xxxx Internal Milestone1 Release (build 7850), 2010.09.22 Internal Milestone2 (build 7955), Milestone3 (build 7989) Developer Preview (build 8102), 2011.09.13 Internal Builds xxxx xxxx Consumer Preview (build 8250), 2012.02.29 Internal Builds xxxx xxxx Release Preview (build 8400), 2012.05.28 Internal Builds xxxx xxxx RTM Release (build 9200), 2012.08.01 major.minor.maintenance.build It is normal to build the sonware automascally every night, ready for internal tester the day aner

Bug Tracking Systems Team FoundaJon Server Jira Bugzilla Clearquest 36

Team FoundaSon Server You Add Bugs as Work Items 37

Exercise Adding Bugs as Work Items in TFS Test your App for 15 minutes If you find Bugs, Add them as Work Items in TFS

Summary All SoNware Developers need to use a SCC system All SoNware Developers need to use a Bug Tracking system 39

References I. Sommerville, So,ware Engineering: Pearson, 2010. Wikipedia. (2013). Revision Control. Available: h(p://en.wikipedia.org/wiki/source_code_management Wikipedia. (2013). Fork (So,ware Development). Available: h(p://en.wikipedia.org/wiki/fork_(sonware_development) S. Adams. Dilbert. Available: h(p://dilbert.com O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com B. Lund. (2013). Lunch. Available: h(p://www.lunchstriper.no, h(p://www.dagbladet.no/tegneserie/lunch/ Comparison of Revision Control So,ware. Available: h(p://en.wikipedia.org/wiki/comparison_of_revision_control_sonware Wikipedia. (2013). Distributed Revision Control. Available: h(p://en.wikipedia.org/wiki/distributed_version_control_system Wikipedia. (2013). So,ware Versioning. Available: h(p://en.wikipedia.org/wiki/sonware_versioning 7 Version Control Systems Reviewed: h(p://www.smashingmagazine.com/2008/09/18/the- top- 7- open- source- version- control- systems/ 40

Hans- PeZer Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, InformaJon Technology and CyberneJcs E- mail: hans.p.halvorsen@hit.no Blog: hzp://home.hit.no/~hansha/ 41