Versionhallinta MIKSI?



Samankaltaiset tiedostot
Versionhallinta MIKSI?

Versionhallinta. Matti Paksula ja Esko Luontola Syksy Tietojenkäsittelytieteen laitos Kuje Research Group

Versiohallinta ja Subversion Maunu Tuomainen

Hajautettu versionhallinta Gitillä

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Versionhallintaa. Versionhallinnan käyttöönotto SAS ympäristössä

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Convergence of messaging

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Ohjelmistoprojektien johtaminen Projektissa käytettävät työkalut

Tietokantojen hallinta

Tarva MT (Maantie) pikaohje Harri Peltola & Mikko Virkkunen

Asteri Laskutus (Dos)

Unix-perusteet. Varmistaminen, tiedon pakkaaminen ja tiivistäminen

SSH Secure Shell & SSH File Transfer

Asteri Vuokrankanto (Dos) Vuosipäivitys

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

DL SOFTWARE Uumajankatu 2 Umeågatan FIN VAASA/VASA FINLAND +358-(0) Fax +358-(0)

Työkalut ohjelmistokehityksen tukena

1 www-sivujen teko opetuksessa

Gimp perusteet. Riitta, Jouko ja Heikki

TIE Ohjelmistojen suunnittelu

Projektityö

2 Eläinlistan kautta voidaan tallentaa tietoja kuolleille eläimille

WordPress Multisiten varmuuskopiointi

ez Publish ja Toolbar yleisohjeet

Kieliteknologian ATK-ympäristö Toinen luento

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

Ubuntu - peruskäyttö. Seuraavassa läpikäydään Ubuntun peruskäyttöä:

Goalkeeper Game Statistics (v12) käyttöohjeet

Site Data Manager Käyttöohje

Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun

Automaattitilausten hallinta. Automaattitilauksien uudistettu käsittely

Asteri Palkanmaksu Dos Vuosipäivitys

Metropolia Ammattikorkeakoulu

Julkaiseminen verkossa

ASENNUS- JA KÄYTTÖOHJE

Asteri Ostoreskontra (Dos)

Multimaker7 ohjelmalla tuotettujen ohjelmien julkaisusta

ATLAS.ti. Markku Könkkölä Sisällys

Site Data Manager Käyttöohje

Ksenos Prime Käyttäjän opas

CLOUDBACKUP TSM varmistusohjelmiston asennus

Itsepalvelukopiokone

Luento 4. Timo Savola. 21. huhtikuuta 2006

KIRJANPITO JA RESKONTRA

OHJELMOINTIYMPÄRISTÖ Virtuaaliyhteisöjen muodostamien

Ohjeita kirjan tekemiseen

Hyvästä kuvasta hyvään kollaasiin. Siilinjärvi ja Hannu Räisänen

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

Febdok 5.5.x, Varmuuskopiot OHJEISTUS

Vaatimusten versiointi DOORSissa

PDF-tiedostojen teon pikaohje

Tikon Ostolaskujenkäsittely versio SP1

Periaate. Login. Taitto ja artikkelit. Artikkeli ja elementit

ATLAS.ti. Markku Könkkölä Sisällys

VIDA CONFIGURATION VIDA ALL-IN-ONE

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa.

Henkilö- ja koulutusrekisterin asennusohje

ATLAS.ti. Markku Könkkölä Sisällys

Automaattitilausten hallinta

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Rasterikarttojen ja liiteaineistojen päivitysohje SpatialWeb5 Karttapaikka

Ohjelmistoprojektin vaiheet ja OMT++ -suunnittelumenetelmä

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

Sisällys Word Wep App... 3 Excel Web App... 7 Powerpoint Web App OneNote Web App Excel Kysely Valmiin tiedoston tuonti Skydrive Pro

Asteri Ostoreskontra (Dos)

Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen.

Eclipse, SVN ja HelloWorld

Luento 3. Timo Savola. 7. huhtikuuta 2006

Hakemistojen sisällöt säilötään linkitetyille listalle.

Pertti Pennanen DOKUMENTTI 1 (17) EDUPOLI ICTPro

3.3 Kurssin palauttaminen

Käyttäjän Pikaohje. CCTV Videovalvonta

Puhelinnumeroiden lataaminen laitteesta tietokoneelle

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

LIIKE Pikakäyttöohje: Säännöllinen kapasiteetti

Sisältö. EeNet koulutus seurojen pääkäyttäjille

TURNITIN-OHJELMAN KÄYTTÖ - OPISKELIJAN OHJE

Tikon lisenssin haku

Järjestelmänvalvontaopas

HAME-maakuntakaavatyökalun ohjeet LUONNOS MMK MK, LL

Windows Vistan varmuuskopiointi

OpenOffice toimisto-ohjelma

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät

Käyttöohje Planeetta Internet Oy

Yhteydensaantiongelmien ja muiden ongelmien ratkaisuita

2017/11/21 17:28 1/2 Tilitapahtumat. Tilitapahtumat... 1 Käyttö:... 1 Asiakirjan kentät:... 1

Visma L7 Visma Sign. Sähköinen allekirjoittaminen L7:ssä


Fivaldi ostolaskujen kierrätys Fivaldi ostolaskujen kierrätys

Visma Nova. Visma Nova ASP käyttö ja ohjeet

JulkICT Arkkitehtuuripankki - QPR EnterpriseArchitect asennusohje

Varmuuskopiointi ja palauttaminen

Transkriptio:

Versionhallinta MIKSI?

Versionhallinta Miten jakaa tiedostot ihmisten kesken? Miten pitää tiedostot ajan tasalla? Miten hoitaa päällekkäiset muutokset samaan tiedostoon? Miten muistaa, mitä on tehty? Miten peruuttaa takaisin kännissä tehdyt muutokset? Miten varmuuskopioida tiedot? Miten ylläpitää useita versioita ohjelmasta?

Subversion Tiedostojen versionhallintaan (kuten RCS) Tarkoitettu usean hengen projekteihin Toimii verkon yli yhteiseen tietovarastoon Hyötyjä Historian säilyttäminen (peruutusmahdollisuus) Toimii samalla varmuuskopiona Tiedostojen jakaminen ja synkronointi Unix/Linux: svn:n saa valmiina pakettina Windows: http://tortoisesvn.tigris.org/ Mac OS X: http://subversion.tigris.org/

Erilaisia versionhallintoja RCS Yksittäisten tiedostojen paikalliseen versiointiin CVS Kokonaisen projektin paikalliseen versiointiin Subversion Projektin keskitettyyn versiointiin verkossa Git (Bazaar, Mercurial) Projektin hajautettuun versiointiin

Subversion Eroja RCS:ään Toimii paremmin usean ihmisen projekteissa Hallitsee koko projektia, ei vain yksittäisiä tiedostoja Toimii myös binaaritiedostoille (pdf, doc, odt, gif, jpg...) Toimii myös hakemistoille, ei vain tiedostoille Toiminta verkon yli (ssh, https,...) Koko projektilla yhteinen versionumero (RCS:ssä joka tiedostolla oma)

Termejä Tietovarasto (repository) taltioi kaiken tiedon (verkon yli) Työkopio (working copy) on käyttäjän "työhakemisto" (kopiot tiedostoista) Revisio (revision) on numeroitu "valokuva" projektista tietyllä hetkellä

Svn:n toiminta commit kurssisvn.cs.tut.fi Tietovarasto ryhmal commit omakone1 update update omakone2 Työkopio (hakemisto) Työkopio (hakemisto)

Svn:n peruskomentoja Työkopion haku (svn checkout) Tiedostojen lisäys (svn add) Tilanteen kysely (svn status) Muutosten kysely (svn diff) Muutosten talletus (svn commit) Työkopion päivitys (svn update)

Svn:n lisäkomentoja Tiedoston poisto (svn rm/del) Hakemiston lisäys (svn mkdir) Tiedoston+historia siirto (svn mv/move/rename) Tiedoston+historia kopiointi (svn cp/copy) Muutosten yhdistely (svn merge) Konfliktien korjaus (svn resolved) Työhakemiston vaihto (svn switch)

Hakemistorakenne trunk/ "Työhaara", jossa varsinainen koodaus tehdään Yleensä riittää hakea checkout:lla vain tämä tags/ "Julkaisuja" varten, tällä kurssilla palautukset Ohjeet tulevat myöhemmin branches/ "Haaroja" varten, esim. väliaikaiset kokeilut, isommat muutokset, julkaisukandidaatit yms. arvostelu/ Boss:n ja assareiden arvostelut palautuksista (Ei osa svn:n normaalia hakemistorakennetta)

Ennen svn:n käyttöä Svn:lle pitää kertoa, että C++tiedostot ja Makefile ovat tekstiä (merkistömuutokset, $Id$ jne.) Unix/Linux editoitava tiedostoa ~/.subversion/config Windows & TortoiseSVN Oikea nappi - TortoiseSVN - Settings General - Subversion configuration file: - Edit

svn checkout Hakee työkopion tietovarastosta Tällä kurssilla: svn checkout https://kurssisvn.cs.tut.fi:8010/ryhma#/trunk nimi_hakemistolle Täytyy tehdä vain kerran alussa Tietovarastoissa oletuksena valmis perusrakenne esim. julkinen-hakemisto

svn add Lisää tiedoston svn:n hallintaan Tehtävä jokaiselle uudelle tiedostolle, jonka haluaa tallentaa: svn add tiedostonimi Komento vain rekisteröi lisäyksen, ei vielä talleta sitä (commit) Tiedostoa voi muokata rauhassa ennen ja jälkeen

svn commit Tallentaa tehdyt muutokset tietovarastoon Kysyy kommentin lokia varten Joko koko hakemistolle tai tiedostoille svn commit -m "Komentin voi laittaa tähänkin" svn commit tiedosto1 tiedosto2 Joka tallennuksesta oma revisio, joilla oma numeronsa (loki, kumoamiset...)

svn status Kertoo, missä tilassa tiedostot ovat A : (Added) tiedosto lisätty D : (Deleted) tiedosto poistettu M : (Modified) tiedostoa muutettu R : (Replaced) ensin tuhottu, sitten lisätty? : (?) tiedosto ei svn:n hallinnassa C : (Conflict) tiedosto konfliktitilassa (ristiriitaisia muutoksia) X : (external) tiedosto haettu muualta (julkinenhakemisto) Ei tarvitse verkkoyhteyttä, paitsi jos: svn status -u (tai --show-updates)

svn update Päivittää työkopion tietovarastosta Hakee muiden tekemät muutokset svn update Tulostus kuin svn status Jos muutoksia tietovarastossa + työkopiossa, tulostus: G : (merged) muutokset yhdistetty onnistuneesti C : (Conflict) muutokset ristiriitaisia, pitää korjata käsin

svn diff Kertoo mitä muutoksia tiedostoon on tehty, näyttää muuttuneet rivit svn diff tiedosto svn diff Mahdollista verrata vanhaan revisioon svn diff -rrevisio# tiedosto svn diff -rrev1:rev2 tiedosto Tietyn commitin muutokset: svn diff -crevisio#

svn revert Muutoksen peruminen, jos talletusta (commit) ei vielä tehty svn revert tiedosto Ei tarvitse verkkoyhteyttä Jos talletus (commit) on jo tehty, palautus onnistuu vielä svn cp -r:llä (tästä myöhemmin)

svn mv, rm, cp Tiedostoja myös mahdollista tuhota (rm/del), uudelleennimetä/siirtää (mv/rename), kopioida (cp/copy) Näissä operaatioissa tiedoston historia säilyy ja kopioituu mukana Käytä näitä normaalien cp:n, mv:n ja rm:n sijaan!

svn log Näyttää muutoskommentit tiedostosta tai hakemistosta svn log tiedosto Saa tulostamaan myös tiedostonimet: svn log -v tiedosto

Konfliktien korjaus Ristiriitaisia muutoksia svn update:n yhteydessä: konflikti Ristiriitaiset rivit merkitään tiedostoon merkein <<<<<, ===== ja >>>>> Tiedosto editoidaan käsin kuntoon, sitten svn resolve --accept working tiedosto (+commit) Tarvitaan yleensä varsin harvoin

Vanhojen muutosten kumoaminen Jos halutaan jokin vanha versio tiedostosta: Selvitetään halutun version numero Poistetaan nykyinen tiedosto: svn rm X.cc Kopioidaan vanha versio nykyiseen hakemistoon: svn cp -r## X.cc. Talletetaan muutos: svn commit -m ".." X.cc (Tämän jälkeen lokissa eivät enää näy "yli hypätyt" kumotut versiot)

Vanhojen muutosten kumoaminen Jos halutaan kumota vain jotkin muutokset, "upotetaan" vanhat muutokset käänteisjärjestyksessä Joko tiedostoon tai koko hakemistoon svn merge -c-muutos# tiedosto svn merge -ruusi#:vanha# Muutokset voi katsoa etukäteen svn diff -c-muutos# svn diff -ruusi#:vanha# tiedosto (svn merge osaa tehdä paljon muutakin)

Tagit (htyön palautus) Kopioidaan tietty revisio tags/xxxhakemistoksi Esim. harkkatyön palautukset tags/palautus1, tags/palautus2 Huom: muista ensin svn commit! svn cp https://.../trunk https://.../tags/palautus1

Haarat Kopioidaan hakemisto trunk paikkaan branches/xx, räpelletään, upotetaan muutokset takaisin trunk:iin Kätevä muutoksille, joiden ei haluta näkyvän kaikille Haaran voi hakea (checkout) omaan hakemistoonsa tai Työhakemiston voi vaihtaa haaraan (ja myöhemmin takaisin)

Haarat Työhakemiston vaihto haaraan ja takaisin: svn cp -m "Haaraudu" ^/trunk ^/branches/koe svn switch ^/branches/koe (vaihto haaraan)... tehdään muutoksia + commit svn switch ^/trunk (vaihto takaisin trunkiin) svn merge ^/branches/koe svn commit -m "..." (svn rm ^/branches/koe)

Haarat Haara omassa hakemistossaan (^ = tietovaraston juuri): svn cp -m "Haaraudu" ^/trunk ^/branches/koe cd jonnekin-muualle svn checkout ^/branches/koe hakemisto... tehdään muutoksia + commit cd takaisin-trunk-työhakemistoon svn merge ^/branches/koe svn commit -m "..." (svn rm ^/branches/koe) (rm -r haaran-hakemisto-hakemisto)

Haarat ja julkaisut Tyypillinen haarojen käyttö todellisessa projektissa: 1.Kopioidaan trunk haaraksi (release1) 2.Testataan ja viimeistellään haara 3.(Kehitys voi jatkua trunkissa) 4.Julkaistaan kopioimalla haara tagspuolelle (branches/release1 -> tags/version1.0) 5.Bugikorjataan haaraa tarvittaessa 6.Julkaistaan uusia versioita (version 1.1)