How l learned to work with others instead of working around them.

Slides:



Advertisements
Similar presentations
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Advertisements

1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Git – versioning and managing your software L. Grewe.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
Version control Using Git Version control, using Git1.
Drexel University Software Engineering Research Group Git for SE101 1.
Version Control. How do you share code? Discussion.
…using Git/Tortoise Git
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Intro to Git presented by Brian K. Vagnini Hosted by.
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.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Thanks to our Sponsors! Community Sponsor Yearly Sponsor Marquee Sponsor.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
Version Control Systems
Basics of GIT for developers and system administrators
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
I don’t git it! Source control management deep dive with tfvc and git
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Git and GitHub primer.
GIT AND GITHUB WORKSHOP
LECTURE 2: Software Configuration Management
Version Control.
GitHub workflow according to Google
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Code Management Releases
Version Control overview
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Software Engineering for Data Scientists
Version Control with Git and GitHub
Macaualy2 Workshop Berkeley 2017
Version Control Systems
Version Control with Git accelerated tutorial for busy academics
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
Source Code Management
LECTURE 3: Software Configuration Management
The Big Picture
SIG: Open Week 1: GitHub Tim Choh.
Part 1: Editing and Publishing Files
Git CS Fall 2018.
Version Control System - Git
Git started with git: 2018 edition
Version Control Software
Version Control with Git
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
GitHub 101 Using Github and Git for Source Control
Git Introduction.
Introduction to Git and Github
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Git GitHub.
Introduction to The Git Version Control System
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Presentation transcript:

How l learned to work with others instead of working around them. & Or How l learned to work with others instead of working around them.

Working Around Others Working around hard to understand how code works, and can continue to work up until it doesn’t. It usually stops working at the worst possible time. Notes test

Technical Considerations Ability to commit and checkout previous versions locally without access to central repository; good for onsite work. Pull requests as code reviews are possible without cloning another copy and removing what you are currently working on Better branching tools than some other VCSs Reasons to use GIT Merging code is not as smooth as text languages; can be a time consuming process. Lack of native support in LabVIEW development environment No file locking. Reasons not to use GIT

Reasons to use GIT Reasons not to use GIT Human Considerations Git has become the standard VCS for many workplaces Branching allows for parallel development by teams on branches without changing production code. Your boss told you to Reasons to use GIT Steep learning curve Having to talk to coworkers about what you disagree with in a merge. General reluctance to change Reasons not to use GIT

Tools There are lots of options! Most of them can be easily linked to VIMege and VIDiff Git SVN allows you to import SVN repos including history into git. Knowing how to navigate the bash git environment is best, GUI based interfaces should not be used until you understand the bash.

Tools Inform Process If you are working with Perforce there is a central reop. To edit a file you have to check it out. So to try something that might not work you either create a separate copy of the work, than try and manu

A different vocabulary Because you have a full copy of the repo locally you can edit it without interacting with the remote depot. Ideally you move code from the workspace to the local HEAD whenever meaningful changes are made. No skipping from workspace to remote. Checkout – rectify workspace with LR Add – stage files for commit Commit – move files to HEAD of local repo

Branching in Individual Contributor Workflow Interim check-ins possible without connection to central repo Possible to reset to previous version without connection to central repo Branch creates a logical separation of field work and office work Branch swapping is useful for sleep deprived development Local branches do not need to be shared

Team Workflow Multiple developers working on a single codebase Possible to reset to previous version without connection to central repo Branch creates a logical separation of field work and office work Branch swapping is useful for sleep deprived development Similar to the fis

Source of conflict OR Place for discussion Ideally you have structured your code so there are no conflicts ever. But hey, edge cases come up. Process in place for how merges take place Don’t be like that one guy at Microsoft and throw a chair off the 4th floor balcony Bring a non-team member to moderate Have design docs in place that can pre-judge style conflicts

Avoiding Merge Conflicts Code that is not highly coupled will result in fewer merge conflicts. Shared being minimized or released with a package manager so it is outside source control is helpful. Hopes for NXG: project based package management. Something equivalate to require/include

.gitignore Tells git which files you want to ignore

Resources http://delacor.com/configuring-hg-or-git-to-use-labview-compare-and- labview-merge/ https://github.com/smithed/vicompare https://www.youtube.com/watch?v=ZvV-ja1h6DE https://www.chiefdelphi.com/t/labview-github/147377 https://github.com/ansible42/LabVIEWGitCheatSheet

GITing started If you have been using SVN there are tools for importing SVN into GIT and keeping the history. The major cloud providers all provide good web interfaces that can be used for the initial creation of repos. After creating a repo online you can clone the mostly blank repo and start adding code.

.gitattributes Tells git about the attributes of files