Introduction. Martin Ledvinka. Winter Term 2018

Similar documents
CS 390 Software Engineering Lecture 5 More Git

Lab 08. Command Line and Git

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

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

EDA Spring, Project Guidelines

Tutorial 4 Data Persistence in Java

Enterprise Architectures

Sample Spark Web-App. Overview. Prerequisites

Tools for the programming mid-semester projects

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

TM DevOps Use Case TechMinfy All Rights Reserved

Lab 1 1 Due Wed., 2 Sept. 2015

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová,

Continuous Integration & Code Quality MINDS-ON NUNO 11 APRIL 2017

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

Improving Your Life With Git

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

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

CS Homework 8. Deadline. Purpose. Problem 1. Problem 2. CS Homework 8 p. 1

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Index. Bitwise operations, 131. Cloud, 88, 101

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Visualizing Git Workflows. A visual guide to 539 workflows

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment

Managing Network Configurations with Git and GitLab

Using Subversion with LeMANS and MONACO

Version Control System GIT

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

Revision Control and GIT

AirBespoke Inventory Tracking System

How to get started using the JSL

Git for Subversion users

Table of Contents. Concepts

MOOSE-Based Application Development on GitLab

Revision control Advanced git

CSE 331 Software Design & Implementation

Github/Git Primer. Tyler Hague

Software configuration management

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion


Continuous integration & continuous delivery. COSC345 Software Engineering

Revision Control. An Introduction Using Git 1/15

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

Tutorial 2 GitHub Tutorial

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Development in code_aster Using Mercurial. Code_Aster, Salome-Meca course material GNU FDL licence (

Better Translation Technology. XTM Connect Change Control for GIT (backend version)

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit

IntelliJ IDEA, the most intelligent Java IDE

Lecture Homepages as of FS 2017

Object Oriented Programming. Week 1 Part 2 Git and egit

Git for Newbies. ComMouse Dongyue Studio

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

Software LEIC/LETI. Lecture 1

Continuous Integration INRIA

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

Tizen/Artik IoT Practice Part 4 Open Source Development

Supported Platforms for Alfresco Workdesk 4.x

SECTION 2: HW3 Setup.

Software Project (Lecture 4): Git & Github

Using Git to Manage Source RTL

Windows. Everywhere else

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

M E R C U R I A L (The Source Control Management)

Tools for software development:

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

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 2: Loop Reasoning & HW3 Setup

Use git rm to remove files from workspace

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

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

Gitlab Setup/Usage by Yifeng Zhu modified by Vince Weaver 30 January 2019

Fundamentals of Git 1

WA2321 Continuous Integration with Apache Maven Jenkins-CI and Nexus. Classroom Setup Guide. Web Age Solutions Inc. Web Age Solutions Inc.

TangeloHub Documentation

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 >

CS314 Software Engineering Configuration Management

Section 2: Developer tools and you. Alex Mariakakis (staff-wide)

Submitting your Work using GIT

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

Human-Computer Interaction Design

Oracle Code Day Hands On Labs HOL

Git(Lab) Tutorial and Hands-On

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

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Internet Technologies. Lab Introduction

Distributed Version Control

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

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

Developer.

The Old World. Have you ever had to collaborate on a project by

Change-sets. Basavaraj Karadakal

LGTM Enterprise System Requirements. Release , August 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

How to Install (then Test) the NetBeans Bundle

GitHub Classroom. Click Sign up in to top right of the page, and the following dialog is displayed.

Transcription:

Introduction Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 1 / 23

Contents 1 Organization 2 Projects in Semester 3 Git Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 2 / 23

Organization Organization Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 3 / 23

Organization Course Info You will learn how to design, develop and integrate enterprise applications. Learn enterprise-level technologies Work in teams on semestral work Use source code management tools Prepare overall system design document Develop a reasonably sized subset of the designed application Integrate your application with another application Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 4 / 23

Organization Evaluation Overview Total of 100 points consists of 50 points for semestral work 5 points for CP0 15 points for CP1 30 points for CP2 40 points for exam test 10 points for seminar tasks You need to get 50% of each item. Read carefully evaluation details at https://cw.fel.cvut.cz/b181/courses/b6b33ear/hodnoceni. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 5 / 23

Organization Changes from Last Year No JavaScript Frontend dropped altogether in favor of integration with other applications Other courses of SIT dedicated to JS Seminars have become semi-mandatory You need to get points for seminar tasks Each seminar group has its teacher throughout the whole semester Git mandatory for semestral work Changed system of seminars we will be building a new application from scratch, a process similar to your semestral work Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 6 / 23

Organization Software Stack JDK 8 or newer Apache Tomcat 9 Maven 3 PostgreSQL 9 or newer Git HTML 5-compatible web browser Java IDE We recommend (and support) IntelliJ IDEA or NetBeans REST-compatible client We recommend Postman. But curl or browser-plugins like REST client for Firefox also possible Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 7 / 23

Organization Task 1 Installation Check Verify that you have all the required technologies installed or install them now. Notes Lab computers should have all of the above except Tomcat and Postman. IntelliJ IDEA comes with bundled Git and Maven. NetBeans have bundled Git client as well. We still recommend installing both separately. Make sure NOT to have spaces in path to Tomcat or your projects. So, do not install/unpack Tomcat to Program Files. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 8 / 23

Projects in Semester Projects in Semester Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 9 / 23

Projects in Semester Semestral Work Overview The goal of your semestral work is to design a small web application solving some practical use-case. Next, you will choose a part of the application and implement it using technologies you learn in this course. In the end, you will integrate the application with application of another team/our application/remote SSO service or build a UI for it. Notes You will work in teams of two First checkpoint is in fourth week, so do not hesitate with team forming and topic selection Topics should not repeat in a single seminar group Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 10 / 23

Projects in Semester Example Project We will be building a simplified e-shop application. The frontend is already prepared, we will be gradually working on the backend. We will 1 Start with project inception 2 Create object model 3 Build persistence layer 4 Write business logic 5 Create web services 6 Secure the application Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 11 / 23

Projects in Semester E-shop Demo E-shop Demo Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 12 / 23

Git Git Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 13 / 23

Git Git GIT is a distributed version control system. We will use it during the course for semestral work, as well as examples used in seminars. GIT has several dozens of commands, but we touch only a few of them. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 14 / 23

Git Task 2 Git 1 Go to https://gitlab.fel.cvut.cz and login using SSO (the Shibboleth button). 2 Go to the Projects screen. 3 In the list, you should see a project of the form of B181 <C-ID>/<CVUT-LOGIN>, where <C-ID> is one of B6B33EAR, BD6B33EAR, and CVUT-LOGIN is your CVUT login, e.g., B181 B6B33EAR/ledvima1. Click on the project name. 4 You will see a screen informing you that you are inside an empty repository with a few commands that help you obtain the repository into your computer. Follow the sections Git global setup and Create a new repository. These steps clone your remote repository, create a README.md file and push it back into the remote repository. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 15 / 23

Git Task 2 Git (cont.) 5 Now you should see your new README.md file in Gitlab. We will call the local repository R 1. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 16 / 23

Git Task 3 Git Pull 1 Clone your repository once more as described in the previous section, but this time into a new local repository test-pull. 2 Inside the test-pull directory, edit the README.md file and change its content. 3 Perform the add-commit-push sequence for this file. (Note that add is needed for an existing file as well to schedule the file change for commit). 4 Run git pull inside R 1. 5 You should see the updated README.md file in R 1 now. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 17 / 23

Git Task 4 Git in IDE 1 Perform Task 3 in your IDE. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 18 / 23

Git Git Merge Typically occurs when remote repository content changes during local repository editing. For instance: 1 Someone edits README.md and pushes changes into remote repository. 2 You edit README.md without knowing about the remote change. 3 You commit your changes. 4 You attempt to push but the push is rejected. 5 You need to merge the changes before attempting push again. Git GUI clients greatly simplify this process. Another possible strategy in this case is to use rebase. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 19 / 23

Git Task 5 Git Merge 1 Edit README.md in R 1 and do the regular add-commit-push sequence. 2 Without pulling changes, edit README.md in the test-pull repository you created in Task 4 in your favorite IDE. 3 Try to commit and push changes. 4 Push should be rejected. 5 Merge changes. IDE should let you edit the conflicts in README.md. 6 Commit the merge and push. Note that if there is no conflict in file changes (i.e., the same file was not changed), Git clients are able to do the merge automatically and one just needs to push the merge. Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 20 / 23

The End The End Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 21 / 23

The End The End Thank You Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 22 / 23

The End Resources https://cw.fel.cvut.cz/b181/courses/b6b33ear/start https://git-scm.com/docs http://blog.osteele.com/posts/2008/05/my-git-workflow Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 23 / 23