Presentation is loading. Please wait.

Presentation is loading. Please wait.

Git and Jira Tutorials Kan Qi

Similar presentations


Presentation on theme: "Git and Jira Tutorials Kan Qi"— Presentation transcript:

1 Git and Jira Tutorials Kan Qi kqi@usc.edu

2 The Big Picture of Git

3 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

4 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>

5 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.

6 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

7 Collaborating - clone git clone name>/<repository name>.git git clone

8 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>

9 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>

10 Demo - Collaboration User1 and user2 both clone the same project from github git clone 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”

11 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

12 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. Commit message format Git commit -m “your comment [JIRA ISSUE ID]” E.g git commit -m “added username format check function [SQS- 212]”

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

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

15 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).

16 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.

17 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.

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

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

20 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)

21 Ticket fields – Use Cases

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

23 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

24 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

25 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).

26 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.

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

28 Demo

29 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.


Download ppt "Git and Jira Tutorials Kan Qi"

Similar presentations


Ads by Google