GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU

Similar documents
Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Technology Background Development environment, Skeleton and Libraries

Getting started with GitHub

Git for Newbies. ComMouse Dongyue Studio

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

AIS Grid School 2015

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

Git for Version Control

Review Version Control Concepts

Version control with Git.

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

A brief introduction to the GitLab service at the department

Managing Network Configurations with Git and GitLab

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Revision Control and GIT

Version Control Systems: Overview


JetBrains TeamCity Comparison

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Git for Subversion users

Beyond git add/commit/push

CSE 391 Lecture 9. Version control with Git

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Version Control Systems (Part 1)

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control: Gitting Started

Version control CSE 403

Revision Control. An Introduction Using Git 1/15

Intro to Github. Jessica Young

Software Revision Control for MASS. Git Basics, Best Practices

Branching and Merging

Workshop: High-performance computing for economists

How to be a 1337 h4ck3r: Git + Linux

Git tutorial. Katie Osterried C2SM. October 22, 2015

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Git Introduction CS 400. February 11, 2018

Git & Github Fundamental by Rajesh Kumar.

DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist

What is Git? What is Git? Version Control. Barry Grant

Configuration Management

Visualizing Git Workflows. A visual guide to 539 workflows

Lab Objective. Lab Assignment. Downloads and Installation

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Version Control for PL/SQL

Push up your code next generation version control with (E)Git

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Continuous Integration Ensemble / HealthShare Health Connect

Technology Background Development environment, Skeleton and Libraries

Use git rm to remove files from workspace

Continuous Integration and Delivery with Spinnaker

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

CS 390 Software Engineering Lecture 3 Configuration Management

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Department of Computer Science College of Engineering Boise State University

Version Control System GIT

Software Project (Lecture 4): Git & Github

A Practical Introduction to Version Control Systems

An Introduction to Subversion

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Version control. what is version control? setting up Git simple command-line usage Git basics

Fundamentals of Git 1

Continuous Delivery the hard way with Kubernetes. Luke Marsden, Developer

Online Remote Repositories

Accessing OSIRIS and using OSIRIS through GitHub

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

USER GUIDE. MADCAP FLARE 2017 r3. Source Control: Git

Introduction to Version Control with Git

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

Version Control with Git

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Software Development I

Using Git and GitLab: Your first steps. Maurício

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21

Version Control. Version Control

JetBrains YouTrack Comparison

Version Control Systems. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Project Management. Overview

Versioning Systems. Tolu Oguntusin(too06u) 12th November, University of Nottingham

S18 Modern Version Control with Git

Continuous integration & continuous delivery. COSC345 Software Engineering

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git

Version control CSE 403

Git Basi, workflow e concetti avanzati (pt2)

Source Control: Perforce

Reusable Component Management Through the Use of Subversion Externals. Who Am I?

GIT for companies Mark Struberg, INSO TU Vienna

Transcription:

GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU Tony Brook & Nathan Stien August 2nd, 2016

WHAT IS VERSION CONTROL (And why should you care?) Shared workspace for multiple collaborators Tracking history of documents (usually code or config) Ability to view and restore any past version of a document Compare changes between versions ("diffing")

WHAT IS VERSION CONTROL (And why should you care?) Only allow authorized changes Who changed what? and WHY? Ideally note every change for future reference Create documentation as you go

VERSION CONTROL: BASIC CONCEPTS

COMMITS Commits are moments in the history of your documents where you saved. Each commit has a timestamp, an author, a change description, and file content.

WHAT IS "DIFFING?" Compare two or more commits (versions of a document) Highlight additions, deletions, changes in a line

WHAT ARE BRANCHES? A branch is an 'alternate timeline' of versions for a set of files.

WHAT IS MERGING? Separate branches of development can be merged back together

PRIMITIVE FORMS OF VERSION CONTROL Manual Zip / storage Backups Network Shares

ISSUES WITH PRIMITIVE VCS Scalability Poor or no tracking of who did what, when Cannot conveniently see what changed (diffing) Recovery is usually painful Collaboration is hard What's the "Master" version?" How many copies are floating around?

MODERN VCS AT ISU

SHAREPOINT! Allows collaboration Track changes (who/what/when) Built-in security

DOWNSIDES OF SHAREPOINT FROM A CODE/CONFIG ANGLE Poor Diff support Cannot track multiple versions of the same file at once (known as branching) Inappropriate for Programming Work

SUBVERSION Designed natively for code and config files Easily display the differences between any older versions of the file ("diffing") Supports Branching features AT has a 12 year history of Subversion for older projects

DOWNSIDES OF SUBVERSION Subversion doesn't have a cool web interface (Only CLI or TortoiseSVN) Poor Discoverability of projects (no search, etc) Hard for non-developers to use and explore As a result, few teams AT have used SVN (mainly web developers & automation people) Not set up for access control - all or nothing access

ENTER GIT Story time! In 2005, Linus Torvalds locked himself in his office one weekend and emerged with git

WHY DOES AT USE GIT? It's Fast (noticably faster than Subversion) Local Branches (track history even if offline) Local Repositories (no server needed at all) Network Effects (everyone else uses it now)

HOW DOES AT USE GIT? We use git for all custom so ware work and some configuration management The Java team has adopted standard workflows for branching and merging Many servers use etckeeperto manage system configuration file history

TYPICAL BRANCH & MERGE WORKFLOW IN AT

VERSION TAGS

WHAT IS GITLAB, THEN?

WHAT IS GITLAB? Central source code and configuration repository Shared through all of AT (& WEB & elsewhere!) Secured with overall and per-project access control Searchable Organized into teams/groups Supports personal repositories - anyone can create their own or "fork" existing for tinkering

GITLAB VS. GITHUB Why did we choose a paid repository product? Improved Security Local to ISU - proprietary code Auditing and Logging Advanced features Integration with other local tools

INTEGRATIONS, YOU SAY? Chatroom monitor of activity - custom to AT Devs, other integrations with Jabber and Slack available Jenkins & GitLab Continuous Integration (CI) for unit tests and faster deploys YouTrack for project level issue tracking and expanded visibility Growing the development pipeline across campus

PITFALLS AND GOTCHAS Image credit: https://xkcd.com/1597/

CONTINUOUS DELIVERY(?) Future Development will aim at Automation Code checked in Code reviewed for basic tests with CI Code updated in YouTrack for QA review Approval of CI and QA will allow code to be merged into master branch Merging into master branch will trigger notifications for admins to deploy Deploys can be rolled back quickly in case of an issue Faster turnaround!

WHERE CAN YOU LEARN MORE? Homepage for Git project (This must be downloaded first!) https://git-scm.com Full documentation of the entire Git project (long and dry) https://git-scm.com/book GitHub training on Git CLI https://try.github.io Official Git Tutorial https://git-scm.com/docs/gittutorial

WHERE CAN YOU LEARN MORE? GitLab tutorial https://about.gitlab.com/2016/03/08/gitlab-tutorial-its-all-connected/ Official Git download site (accept no substitutes!) https://git-scm.com/downloads Additional Tools that are useful Atom - Git-integrated document editor: https://atom.io Powershell git (posh-git) - https://github.com/dahlbyk/posh-git GitLab blog - new features and uses: https://about.gitlab.com/blog

HOW DO I USE AT'S GITLAB? AT's instance of GitLab is provided as a Service to the IT community of Illinois State University. It is covered by a Service Level Expectations that the system will be updated and running during normal business hours. Requests for access should go through the Technology Support Center. Support is provided AS-IS; we are not anticipating training. Access is tied to Active Directory Logins/Email for Security Control.

QUESTIONS? COMMENTS? TOMATOES?