Versionshantering. Jan Erik Moström

Relevanta dokument
JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3

Ni ska ha en uppsättning verktyg som ni kan använda i era fortsatta studier (och även efteråt) Lektion 1. Applikationsprogrammering i Java 7,5 hp

JUnit 4 - användning. Grunderna. org.junit. org.junit.test. Henrik Bergström DSV SU/KTH. Innehåller bland annat:

Projektarbete. Johan Eliasson

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Versionshantering med Git

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015

Verktyg och Utvecklingsmiljö. Jochim von Hacht

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

2 Eclipse en handledning

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Institutionen för datavetenskap HT /2008. Testning med JUnit

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Eclipse. Kort genomgång

Eclipse en handledning

Eclipse en handledning

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Testramverk och Model based testing med java i praktiken

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Introduktion till git

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Har funnits nästan lika länge som datorerna. Manuell process, svarta tavlan Verktygsstöd kom tidigt redan i början på

Introduktion till Git

Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Grundläggande termer. Några olika system. F11 Grunderna i Versionshantering. Git basic. Origin. Git basic. Git basic. Local #1. Local #3.

Objektorienterad Programmering (TDDC77)

JAVA Mer om klasser och objektorientering

Länkade listor och automatisk testning

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Installationsanvisningar. till IST Analys

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

TDP005, Projekt: Objektorienterade System. Laboration: Eclipse

Version 1.8.7A. Tidrapportering med ctimesheet

KAP 18 SQL SERVER AGENT

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Användarmanual för Pagero Kryptering

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Versionshantering med Git. Henrik Henriksson 17 april 2018

ID1004 Laboration 3, 5-6 November 2012

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Labb 1: Vad, hur, och varför?

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Installera din WordPress med 9 enkla steg

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

PROGRAMMERINGSTEKNIK TIN212

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Mer om kodkvalitet. Mer om kodkvalitet. Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité?

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

TDP005, Projekt: objektorienterade system

Projekt. Roller i ett industriellt projekt. Projekt. Roller. Roller

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Release. Konfigurations & Versionshantering samt Subversion. Konfigurations vs Versionshantering. CI -definition. Henrik Bergström

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

TDP005, Projekt: Objekt-orienterade System. Laboration: Eclipse

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

TIS-Web startguide 3.6. TIS-Web Startguide

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

DD1311 Programmeringsteknik för S1 Laborationer läsåret

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Kopiering av objekt i Java

Passersystem VAKA 10

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Swema 05. Bruksanvisning vers 1.01 MB

Storegate Pro Backup. Innehåll

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Användarhandledning. edwise Webbläsarinställningar

ID1004 Laboration 4, November 2012

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

NetBeans 5.5. Avsikt. Projektfönster

Lathund till PsycINFO (OVID)

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Efterhand fick vi ett system som vi tyckte var väl anpassat. Vi renskrev kladden (nedan) och började programmera menyerna.

ABT Tel: Fax: Org nr CR Fastighetsteknik AB Östra Trädal Ytterby Sweden

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 11

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Hur man skapar en Administrativ Image för SolidWorks 2014

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Classes och Interfaces, Objects och References, Initialization

VERSION 3.2 KLIENTMANUAL NETALERT CS

Macromedia. Flash 8 Grundkurs.

Transkript:

Versionshantering Jan Erik Moström

Johan Eliasson Versionssystem Gjorda för att användas av en eller flera personer på en eller flera platser, exempelvis: För en ensam användare som jobbar med ett projekt från flera datorer För att veta att förändringar inte skrivs över av andra då man jobbar flera tillsammans Om man jobbar många tillsammans med samma filer för att veta att dokumenten är senaste versionen. För att gå tillbaka i tiden och se tidigare versioner av dokumenten För att spåra ändringar

Johan Eliasson Programvara GIT CVS SVN (Subversion) Senare programvara. Addresserar några av problemen som fanns i CVS Eclipse i labben har plugin för att jobba med SVN. CVS stöd finns med som standard. Eclipse kan också användas med GIT - EGIT På följande adress finns en guide hur man kan komma igång med SVN i eclipse: http://help.collab.net/index.jsp?topic= /org.tigris.subclipse.doc/topics/toc.html Vill ni använda SVN i projektet så maila support@cs.umu.se att ni vill använda det och ange användarnamn på alla medlemmar i gruppen samt kurskod (5DV133)

SVN Referensmanualen: Version Control with SUBVERSION Ben Collins-Sussman et. al. Version 1.7 finns nu gratis på webben: http://svnbook.red-bean.com/ och i bokform. http://creativecommons.org/licenses/by/2.0/legalcode

Repository Typiskt klient/server-system:

Detta vill man unvika: Problemet med delade filer

Låsning Man kan låsa filer, men...: Restriktiv metod Serialisering av arbetet Om Harry glömmer sitt lås och åker på semester?

Copy-Modify-Merge Den vanligaste modellen: Harry får inte skriva över Sallys fil

Copy-Modify-Merge forts. Konfliktlösning: Merge Kan bli komplicerad om båda ändrat i samma del av filen

Filsystemet Man checkar ut en del av katalogträdet med update Detta ger en lokal arbetskopia Eclipse håller reda på detta

Revisioner Varje ny revision får ett eget nummer Eclipse ordnar det med!

Eclipse

Inställningar i labben Window -> Customize Perspective -> Command Groups Availability Klicka i SVN

Window -> Customize Perspective -> Tool Bar Visibility Klicka i SVN Ev också i Menu Visibility

Arbetsgång Första gången för ett nytt projekt: Dela ut projektet om du skapar projektet Eller skapa från SVN om projektet redan finns För varje editeringssession: Update hämta en arbetskopia att jobba med lokalt Editera filen/filerna Commit spara ändringarna Det kanske inte gick pga att någon annan ändrat filen Gör i så fall Update igen, och lös konflikten Prova Commit igen

Dela ut ett projekt Välj Share Projects... i SVN-menyn

Väl New -> Project... Alltså inte Java Project Skapa projekt från SVN

Projekt från SVN

Välj repository

Välj projekt

Update Gröna pilen uppdaterar kod från servern till lokala maskinen

Commit När du editerat klart, klicka på Commit-knappen (röd pil)

Commit forts. Du kan lägga till en kommentar här

Package Explorer Visar att ditt projekt är uppdaterat och vilken version det har En > framför projektet visar att den lokala kopian har modifierats

Konflikt Någon (Du själv?) har ändrat på en fil från någon annan maskin

Prova med Update Du får se vad som skiler de två versionerna åt

Konflikt

Välj Edit Conflicts Gå till SVN-menyn

Editera konflikterna Editera så att du är nöjd (lokala versionen, till vänster)

Klart Editera

Commit igen Välj Mark as Merged och sedan Commit Serverns version skrivs över

Avancerat Branches Merging Tags

JUnit Johan Eliasson

JUnit Unit testing för java Används för att testa att metoder/klasser beter sig som det var tänkt Många IDE:er tex Eclipse har inbyggt stöd för detta. Arbetsgång: Skapa ett test först det misslyckas Lägg till kod i din klass så att testen klaras Skapa nästa test, lägg till kod osv.

JUnit 3 Vi skriver testklasser och låter dessa ärva från junit.framework.testcase. (JUnit klasserna måste läggas till till projektet då dessa klasser inte är med bland standardklasserna i java) Namnge testmetoderna med test som prefix (det är så de känns igen som testmetoder) Undersök de villkor som ska testas mha de olika assert-metoderna i TestCase Kör testen mha Run -> Run -> JUnit i Eclipse (Se till så att ni ställt in den på att använda version 3)

JUnit 3 forts. Ibland vill man göra grundinställningar som ska göras innan varje test. Dessa kan göras i metoden protected void setup() som körs innan varje test i den klassen Behöver man städa upp efter testen görs detta i metoden protected void teardown() som anropas automatiskt efter varje test.

Villkorskontroller i test Statiska metoder som finns definierade i Klassen Assert (TestCase ärver från denna) asserttrue assertfalse assertnull assertnotnull assertequals Kontrollerar om två värden är lika. För objekt kontrolleras detta mha deras equals-metod. assertsame Kontrollerar om två referenser är lika assertnotsame fail() Misslyckas alltid

Exempel JUnit3 import junit.framework.testcase; public class PolynomTest extends TestCase { } public void testcreateobject() { } double d[] = {1.0, 2.0}; Polynom p = new Polynom(d); assertnotnull(p);

Eclipse 3

Eclipse kom ihåg 4

JUnit 4 Version 4 Vi behöver ej utnyttja arv Testmetoder indikeras mha att vi annoterar dem med @Test Till Test-annotationen kan man även specificera om vi förväntar oss att något särskilt undantag ska kastas @Test(expected=IndexOutOfBoundsException.class) public void outofbounds() { new ArrayList<Object>().get(1); } eller sätta en tidsgräns för testet @Test(timeout=100) (här 100 millisekunder) Använd assert-metoderna för att testa villkoren (samma som i JUnit 3). Ett lätt sätt att använda assert-metoderna (eftersom de nu inte är tillgängliga via arv) är att göra en static import från Assert-klassen

Exempel med JUnit4 import org.junit.test; import static junit.framework.assert.assertnotnull; public class JUnit4TestClass { @Test public void createobject() { double d[] = {1.0,2.0}; Polynom p = new Polynom(d); assertnotnull(p); } }