Git and Jira Tutorials Kan Qi

Slides:



Advertisements
Similar presentations
Hosted Git github. From an alumni (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for the.
Advertisements

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.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Git – versioning and managing your software L. Grewe.
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.
Subversion (SVN) Tutorial Source:
Drexel University Software Engineering Research Group Git for SE101 1.
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.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Introduction to Version Control with Git CSC/ECE 517, Fall 2014 A joint project of the CSC/ECE 517 staff, including Titus Barik, Gaurav Tungatkar, Govind.
GIT.
Intro to Git presented by Brian K. Vagnini Hosted by.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
CS 160 and CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Hosted Git github. From an alumnus (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Git How to 1. Why Git To resolve problems in lab exams (accidental deletions) Use existing Libraries with ease (Statistics and Computer) Prepare undergraduates.
Virtual Lab Overview 5/21/2015 xxxxxxxxxx NWS/MDL/CIRA.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
Collaborative Git An introduction to Git with others
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
GIT: (a)Gentle InTroduction Bruno Bossola. Agenda About version control Concepts Working locally Remote operations Enterprise adoption Q&A.
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
Source Control Systems
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
11 Version control (part 2)
CReSIS Git Tutorial.
Mastering Version Control with Git
A Simple Introduction to Git: a distributed version-control system
Version Control.
Git Practice walkthrough.
CS/COE 1520 Recitation Week 2
Version Control overview
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Macaualy2 Workshop Berkeley 2017
Version Control Systems
Storing, Sending, and Tracking Files Recitation 2
An introduction to version control systems with Git
Version Control with Git accelerated tutorial for busy academics
Git Workflows.
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
An introduction to version control systems with Git
The Big Picture
SIG: Open Week 1: GitHub Tim Choh.
An introduction to version control systems with Git
Getting Started with Git and Bitbucket
Source Code Repository
Using Github.
Git CS Fall 2018.
Version control with Git
Git started with git: 2018 edition
Version Control with Git
GitHub and Git.
Git Introduction.
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:

Git and Jira Tutorials Kan Qi kqi@usc.edu

The Big Picture of Git http://blog.mikepearce.net/2010/05/18/the-difference-between-git-pull-git-fetch-and-git-clone-and-git-rebase/

Local environment workspace Index The directory in your file system where you hold your project source code. git init git clone <repo-url> Index containing a sorted list of file paths. git ls-files --stage git add git rm

Local environment - cont’d Local repository .git directory in your workspace directory Hold branches and commits for each branch. HEAD refers to the currently checked out commit. git commit [-m] git pull <remote> <branch> git checkout <branch> git push <remote> <branch> git fetch git revert <commit-ish>

Remote repository Remote repository is a repository hosted somewhere on Internet or local network. Commands available to manage remote repositories git remote [-v | --verbose] git remote add <name> <url> git remote remove <name> git remote set-url <name> <newurl> Four transfer protocols http local git SSH To be able to collaborate on any Git project, you need to know how to manage your remote repositories. Remote repositories are versions of your project that are hosted on the Internet or network somewhere. You can have several of them, each of which generally is either read-only or read/write for you. Collaborating with others involves managing these remote repositories and pushing and pulling data to and from them when you need to share work. Managing remote repositories includes knowing how to add remote repositories, remove remotes that are no longer valid, manage various remote branches and define them as being tracked or not, and more. In this section, we’ll cover some of these remote-management skills.

Collaboration - Typical workflow Person A Setup project & repo push code onto github edit/commit pull/push Person B clone code from github edit/commit/push edit… edit… commit pull/push

Collaborating - clone git clone https://github.com/<user name>/<repository name>.git git clone https://github.com/flyqk/577a_2017_demo_project.git

Collaborating - fetch, pull Options for synchronizing: Fetch Fetch all the branches to local repository to be able to access the remote branches. git fetch <remote> Pull Pull the commits from remote branch and apply those changes directly to the workspace. Usually we need to solve conflicts after we pull. git pull <remote> <branch>

Collaborating - merge,push Merge the current working branch with another branch. git merge <branch> Push Push the commit you make in local repository to remote repository git push <remote> <branch>

Demo - Collaboration User1 and user2 both clone the same project from github git clone https://github.com/flyqk/577a_2016_demo_project.git User1 make some changes and commit to the remote master branch. git commit -m “edit readme file for greeting” git push origin master User2 is also doing some changes in local and commit to local repository. When user2 pushes the local commit, it conflicts with the remote master branch. User2 pulls the commit from remote and solve the conflicts. git pull User2 commits and pushes again. git commit -m “solve the conflict about the readme file”

Demo - Collaboration - cont’d User2 creates a branch named “maintain_branch” in local. git checkout -b “maintain_branch” User2 makes changes and commit into “maintain_branch” git add --all & git commit -m “added maintain branch” User2 pushes the branch into remote repository git push –-set-upstream origin maintain_branch User1 fetches the branch from the remote repository and merge the two branches by solving the conflicts. git fetch git merge maintain_branch User1 pushes the master branch with the changes from maintain branch back to remote repository git push origin master

577a course project requirements Every team should host their project on github in private repository Register a student account, and you get up to 5 private repository quota Add TAs as collaborators. uscviterbicsci577@gmail.com Commit message format Git commit -m “your comment [JIRA ISSUE ID]” E.g git commit -m “added username format check function [SQS- 212]”

Jira – project tracking in 577 Adapted from Alexey Tregubov’s Slides

What is Jira? Jira – project tracking & issue tracking system For students - project tracking For instructors & TAs - project tracking & effort tracking Jira for 577 class: http://csse.usc.edu:18080 Weekly surveys are posted weekly on the class website and via Piazza announcements.

What to report in Jira? Every week report all effort you spent on your project. Jira reports are individual assignments on weekly bases. Your effort reported as Jira issue-tickets. Each ticket has: Title/name – short description Labels Description Assignee Hours – effort you spent in person hours (4h means two person hours in this field).

What to report in Jira? (cont-d) Report all activities (meetings, interactions with client, requirement analysis, coding sessions, work on document etc.) Suggested ticket size: 2h – 2d But it is okay to have bigger development tasks Separate events (e.g. different meetings) should be reported as separate Jira tickets. (!) Provide proper labeling of your tickets Submit weekly survey form That tells us that you updated Jira and we can grade it.

Fields in Jira ticket Title/name – short description, brief but meaningful. Labels – list of initial structure is given, use it and extend it when necessary. Labels are not mutually exclusive. Description – optional for weekly reports, but necessary when you distribute tasks among yourselves. Assignee – you or someone in your team who is responsible for completion of the task. Hours – effort you spent in person hours.

Ticket fields – labels structure dev infrastructure story-boards prototype impl db-design ui … - add your own labels (optional) ... - add your own labels (optional)

Ticket fields – labels structure doc ocd lcp fed ssad qm pr mpp website win-book ... - add your own labels (optional)

Ticket fields – labels structure team administration-coordination – project manager’s duties to arrange meetings, communication, etc. meeting – weekly team meetings requirement-negotiation client-interaction arb – architecture review board ... - add your own labels (optional)

Ticket fields – Use Cases

Examples: Team meetings Coding sessions Individual coding/development tasks Requirements engineering Interaction with clients

Jira for project managers Use Jira to distribute tasks among the team Use it in your meetings to distribute and allocate work that each of you would need to do. Use it to notify your team about tasks you delegated to them. Develop custom labels for (Minimum Marketable Features) MMFs or Use Cases in your project Use Jira reports to track completeness of work Using labels you can track completeness of each Use case or MMF

Jira for architects and system integrators Use Jira to distribute development tasks among the developers Develop custom labels for modules/components of your application Use Jira reports to track completeness of work Using labels you can track completeness of each Use case or MMF

Jira for developers Track your time and effort Make sure that work you do is reflected as effort logged in Jira tickets. Make sure that tickets description and labels reflect work that did. Use Jira for offline collaboration Assign tasks to each other with proper description Report problems (reopen tickets).

Jira for IV&V Validation of effort reports Use Jira reports to track completeness of the MMFs and Use Cases. Identify missing reports. For example, some features were developed/delivered, but they do not appear in Jira reports due to missing labels of missing tickets.

Grading criteria Accuracy Proper labeling of tickets Meaningful title/description Timely reported effort

Demo

FAQ How often report updates? How big/small tasks should be? Daily, weekly, or as you do it How big/small tasks should be? 2h-2d Do meaningful decomposition of work Level of details depends on tasks but reporting work should not be a significant overhead (2-5 minutes per task). Are there instructions? Instructions are posted on the class website. How do we report meetings individually or as a group? Time you spent in each meeting is reported individually via individual Jira tickets. Is Jira an individual assignment or a team assignment? Jira is graded individually, so it is individual assignment. Although it counts as work on your project.