https://flic.kr/p/Lj3bW

Slides:



Advertisements
Similar presentations
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
Advertisements

Git
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
Version control Using Git 1Version control, using Git.
Guide to the Software Engineering Body of Knowledge Chapter 1 - Introduction.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
The Guide to the Software Engineering Body of Knowledge
Version Control. What is it? Software to help keep track of changes made to files Tracks the history of your work Helps you collaborate with others.
Version control Using Git Version control, using Git1.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Version Control. How do you share code? Discussion.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
1 Web Design Workshop DIG 4104c – Lecture 5c Git: Branch and Merge J. Michael Moshell University of Central Florida giantteddy.com.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Thanks to our Sponsors! Community Sponsor Yearly Sponsor Marquee Sponsor.
INTRODUCTION TO GIT. Install Egit for eclipse Open eclipse->Help->Install New Software Search for one of the following -
Technical Presentation by: David Spano. About Git (VCS) Simple Git Commands Branching Github Git GUI Summary.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Version Control Systems
COMP 4081: Software Engineering
Discussion #11 11/21/16.
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Security: Exploits & Countermeasures
Security: Exploits & Countermeasures
External Web Services Quick Start Guide
LECTURE 2: Software Configuration Management
Version Control.
Integration Methodology and Procedures
Software Design.
Discussion 11 Final Project / Git.
Version Control overview
Version control, using Git
CSE 303 Concepts and Tools for Software Development
Git branches and remotes
Software Engineering for Data Scientists
Version Control with Git and GitHub
Version Control Systems
Distributed Version Control with git
(Advanced) Web Application Development
LECTURE 3: Software Configuration Management
The Big Picture
Advantages Project Career Divide & Conquer Collaboration
COMP/EECE 7012: Foundations of Software Engineering
Version Control with Git
Security: Exploits & Countermeasures
Software Configuration Management.
Security: Exploits & Countermeasures
Version Control with Git and GitHub
Security: Exploits & Countermeasures
Version Control with Git
COMP 7012: Foundations of Software Engineering
Git GitHub.
Software Configuration Management.
Security: Attacks & Countermeasures
Software Testing.
Presentation transcript:

https://flic.kr/p/Lj3bW Software Configuration Management

What knowledge/skills have you learned so far? OR Software Engineer Code Monkey https://flic.kr/p/bqHSWr https://flic.kr/p/8kzUK8 How can you tell?

Consult the SWEBOK Guide (Software Engineering Body Of Knowledge) http://www.computer.org/portal/web/swebok

So what’s in this SWEBOK anyway? One possible definition of Software Engineering: Appling SWEBOK to software creation and evolution So what’s in this SWEBOK anyway?

Has Boot Camp covered any? 15 Knowledge Areas (KAs) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Has Boot Camp covered any?

15 Knowledge Areas (KAs) 3 stand out to me Let’s pick on this one Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations 3 stand out to me Let’s pick on this one

Software Configuration Management (SCM) “Configuration management … is the discipline of identifying the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system life cycle.” (SWEBOK)

Which have you learned about? SCM Subtopics Which have you learned about?

Git! SCM Subtopics Let’s see how much you’ve learned… “Version control tools” Let’s see how much you’ve learned…

Pop Quiz 5 questions Update diagram in each Commit nodes Branch nodes Based on actions of Alice and Bob Collaborating via GitHub repo

Start like this Scott Fleming SF 1 GitHub 11111 master Alice Bob

Question 1 Alice: Bob: (include the HEAD node) $ git clone https://github.com/whatever.git $ cd whatever Bob: (include the HEAD node)

Question 2 Alice: $ git branch myfix $ git checkout myfix

Question 3 Alice: Bob: $ rails generate scaffold User … $ git add . $ git commit # 22222 Bob: $ rails generate scaffold Micropost … $ git commit # 33333

Question 4 Bob: git push

Question 5 Alice: git pull

What if… Alice did this: Bob did this: app/models/micropost.rb class Micropost < ActiveRecord::Base validates :content, length: { maximum: 140 } end app/models/micropost.rb Bob did this: class Micropost < ActiveRecord::Base validates :content, length: { maximum: 120 } end app/models/micropost.rb

What if Alice did this? $ git checkout master $ git merge myfix master 11111 master 22222 33333 myfix $ git checkout master $ git merge myfix

Manually fix the file; git add and commit $ git merge myfix Auto-merging app/models/micropost.rb Automatic merge failed; fix conflict and then commit result. class Micropost < ActiveRecord::Base <<<<<<< HEAD validates :content, length: { maximum: 140 } ======= validates :content, length: { maximum: 120 } >>>>>>> myfix end app/models/micropost.rb To resolve: Manually fix the file; git add and commit

SCM is more than version control Can you think of more that you’ve learned?

SCM is more than version control Can you think of more that you’ve learned? “Build handling tools”: rvm bundler

SCM Problems: Your code AND external dependencies ruby jquery Your code sqlite …

rvm and bundler work together to control external dependencies Let’s take a quick tour

RVM: Set Rails and Gemset versions Few more handy RVM commands: $ rvm list $ rvm current $ rvm info

Problem: RVM config is not part of project How to solve?

Problem: RVM config is not part of project How to solve? Gemfile in project stores all Gems (external dependencies) and their versions Use bundle to run (exec) commands (automagically uses versions in Gemfile) RVM also can use Gemfile versions when pwd is in project (see chapters 1.2.4 and 3.6.1)

Summary Software Configuration Management (SCM) Version control tool Git Build handling tools rvm bundler What’s next?