Git 101 Or, How to sanely manage your Koha customizations.

Slides:



Advertisements
Similar presentations
An Introduction By Sonali and Rasika.  Required for the project  Show the versions of your code in the course of development  Show versions of your.
Advertisements

Github. Download & install git   Git bash  Git GUI.
om om GIT - Tips & Tricks / git.dvcs git-tips.com
Introduction to git Alan Orth Nairobi, Kenya September, 2010 version control for serious hackers ;)
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.
Git
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 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.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
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.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Gotta get Git Chris Sherwood and Alfredo Aretxabaleta USGS Woods Hole.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
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.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Technical Presentation by: David Spano. About Git (VCS) Simple Git Commands Branching Github Git GUI Summary.
Git How to 1. Why Git To resolve problems in lab exams (accidental deletions) Use existing Libraries with ease (Statistics and Computer) Prepare undergraduates.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Introduction to Git Thomas.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
GitHub A web-based Git repository hosting service.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Adam Young Presented by Senior Software Engineer, Red Hat License Licensed under PKI, Git and SVN.
Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.
Backing up a machine with git
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
Introduction to Git and git-svn Paul Gier Red Hat Sept. 27, 2011.
Version Control Systems
Basics of GIT for developers and system administrators
.git git-scm.com free and open source distributed version control system p.s. for beginners…
Development process Douglas Schilling Landgraf
Information Systems and Network Engineering Laboratory II
Discussion #11 11/21/16.
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Version Control.
Discussion 11 Final Project / Git.
Version Control System using Git
Version Control with Git and GitHub
Version Control Systems
Let’s start with some questions:
SU Development Forum Introduction to Git - Save your projects!
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
SIG: Open Week 1: GitHub Tim Choh.
Getting Started with Contribution to Openstack
Git CS Fall 2018.
Version Control System - Git
Version control with Git
Introduction to Git and GitHub
Version Control with Git
Version Control with Git and GitHub
Intro to Git and GitHub Version Control using Git Carol Schofield
Introduction to Git and Github
Git GitHub.
Introduction to The Git Version Control System
Advanced Git for Beginners
Presentation transcript:

Git 101 Or, How to sanely manage your Koha customizations

Who am I? ● Ian Walls ● Lead Development Specialist at ByWater Solutions ● Koha 3.6 QA Manager ● Geek

What is Git? Git is a free and open source distributed version control system invented by Linus Torvalds (the Linux guy).

Why Git? ● Distributed: everyone has the complete history of changes to the project stored locally ● Manages content, not files ● Multiple development lines can be followed concurrently

Basic Terminology ● Repository (repo): the complete history of the project ● Index: the current file contents you have ● Commit: a saved change to the Index ● Branch: a chain of Commits ● Checkout: to choose a Commit, and load the Index associated with it ● Patch: a Commit formatted as a file (for sending to others)

Repository Structure bard dug kat comm it bard dug cat comm it bird dog cat comm it rat bird dog cat

Branch Structure comm it HEAD master branch1 master branch2 branch3 HEAD merge

Bad repo v. Good repo

That's great... Howz this aply to me? Huwz this aply to me?

Git and Koha ● Installation of Git ● Cloning the Koha repository ● Making a branch ● Committing a change ● Submitting a patch ● Updating your repository ● Signing off on others' patches

Installing Git ● On Debian: sudo apt-get install git-core ● On Ubuntu: sudo apt-get install git git- ● On Mac OSX: download git-osx-installer ( ● On Windows: Don't.

Some quick Git config ● git config --global user.name "your NAME" ● git config --global user. ● Other configs are possible. All stored in:.gitconfig

Cloning the Koha repo ● git clone git://git.koha- community.org/koha.git kohaclone ● Wait... ● cd kohaclone

Branching ● Show all branches (current has *): git branch ● Show current branch and other info: git status ● Create your branch: git checkout -b mybranch master

Finding something to fix ● Talk to your librarians ● Talk to your patrons ● FILE A BUG REPORT!!! on ● Bigger idea? Post an RFC on

Making a Change

Committing a Change ● For each file you changed: – git add path/to/the.file ● git commit ● Or, more lazily: git commit -a ● Write your commit message. It should begin with the bug number, then a brief one-line description of the bug.

Publishing your Commit ● git format-patch master ● You'll see something like “0001-BugXXXX--....fix.patch” ● git send- -to koha- “0001-BugXXXX--....fix.patch”

The Paperwork ● File a bug report! ● For bigger developments, post an RFC to the wiki with detailed functionality ● After ing patch, attach the patch to the bug report and label bug “needs signoff” ● After signing off, label bug “signed off”. If the patch isn't attached to the bug report, do it now

Why the attachment? ● Puts the solution with the problem; saves search in the patches list ● Easy to fetch an attached patch: ● wget -O bugXXXX.patch community.org/bugzilla3/attachme nt.cgi?id=YYYY

Code Acceptance Process ● Patch goes to patches listserv ● Someone in the community tests and signs off ● Quality Assurance Manager tests, and signs off ● Release Manager commits to Koha

Keeping up with Changes ● git checkout master ● git pull ● git checkout mybranch ● git rebase master ● You may need to deal with merge conflicts... Submit Early and Submit Often

Sign-offs ● git am -i -u -3 bugXXXX.patch (Tap 'y' to confirm) ● TEST TEST TEST ● git commit –-amend change the first line of the commit message to begin with [SIGNED-OFF] ● git format-patch -s master ● git send- ...

Course Complete! I can haz diploma? Teh sink ate yurs

Questions? ● Checkout community.org/wiki/Version_Control_Using_Git for more details ● Log on to Koha IRC: we're here to help!