Subversion - varför?

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

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

Introduktion till git

Versionshantering med Git. Henrik Henriksson 17 april 2018

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

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

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

Versionshantering. Jan Erik Moström

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

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

Versionshantering med Git

Tfn Telephone Kontr Checked. Revisionshistoria Revision history Rev Namn Name Datum Date Ändring Change

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Handbok kdesvn. Rajko Albrecht Översättare: Stefan Asserhäll

Programvara på Nada. Johan Berglund Systemgruppen, Nada

kommando -fl argument

komplex av nödvändiga, understödjande program som kallas Utanpå OS existerar ett - eller flera olika - slags skal som

Övning GIT Andreas Wieden

electiaprotect GSM SEQURITY SYSTEM Vesta EZ Home Application SMART SECURITY SYSTEMS! SVENSKA ios Android

XML+ANT+CVS+DIARY. XML: Exempel. XML: Syntax (1) Genomgång av några av de verktyg som används på kursen. <?xml version="1.0" encoding="iso "?

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Anvä ndärguide Nyä Expeditionsresor

CDX. Systemstöd för arbete med en klinisk rapportdatabas. SAS Forum 25sept 2003 Gunilla Sköllermo, AstraZeneca R&D

Filsäkerhet i Windows NT (NTFS)

Insidan av ett Open Source projekt. Nicklas Avén

Handledning Konfigurationsstyrning tjänstedomäner

Fördjupningsarbete/laboration om Git

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

Övningar Lektion3 Avancerade Webbteknologier 2

ClearCase. Versionshantering

Grafisk produktion och tryckkvalitet TNM015

DOTNETNUKE SKOLNING Skapat: den 20 november 2012

1. Log on to the system using the user ide and password ide. 2. Copy the file /etc/ca-certificates.conf to the home directory of the user.

DI Studio nyheter

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Guido van Robot och olika UNIX-kommandon

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

*Arnold*Andreasson* Webbtjänsten)SHARKdata)) och)öppen)källkod/utveckling) ) Datavärdsträff*2014*på*Hisingen** * * )))

1.1 Skapa ett Inline-Script som skapar filen För att skapa ett inline script drar man InLine till där man vill ha själva scriptet.

Support Manual HoistLocatel Electronic Locks

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Handbok Cervisia. Bernd Gehrmann Carlos Woelz Översättare: Stefan Asserhäll

PNSPO! Minneskort till CJ. 14 mars 2012 OMRON Corporation

Objektsamlingar i Java

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

SF1672, Linjär Algebra med Matlab för F1 Lab0

icore Solutions. All Rights Reserved.

Test av programvara Författare Avd Telefon Datum Version Sid Göran Lindqvist (14) LDB-centrum. Test av programvara

TDP005. Föreläsning 2. Filip Strömbäck

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

Övningar för del I av kursen

Styrteknik: Binära tal, talsystem och koder D3:1

Introduktion till Git

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Importera larm från WinCC till Nimbus

Föreläsning 3. Stack

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

TDP005, Projekt: objektorienterade system

Föreläsning 3. Programmering, C och programmeringsmiljö

NYHETER I AUTOCAD LT 2008

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS

Release notes for Permobil R-net PC-programmer ver Dealer access level

Volvo Information Technology. Volvo Information Technology HåkanEnarson,

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

Introduktion till Git Anton Ekberg Version 2

Övning Arbeta med klasser

Omtentamen i OOSU2, 21 augusti 2014

Projektarbete. Johan Eliasson

"HTML5 och relaterade API:er"

SB168-ES och M7CL Quick Setup Guide Svensk version

Lab 6: ASP.NET 2.0 Providermodellen

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

Lathund ringstromsskog.se

Ladda upp filer fra n PLC till PC

Översättning av galleriet. Hjälp till den som vill...

Introduktion till hårdvara, mjukvara och operativsystem

Jonas Gustavsson. Leverans av 10PB Isilon

Bryt ut logiken för att göra Bulk-ersättning av Category i Index i ProductControllern.

Agil användbarhetsutveckling för handhållna enheter. Per Lind

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

Trimble Communication Network Release notes Page 1

SB168-ES och LS9 Quick Setup Guide Svensk version

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

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

Programmeringsteknik med C och Matlab

Börja med git och GitHub - Windows

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Evodev AB web epost Telefon Fax

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

COPENHAGEN Environmentally Committed Accountants

Konstruktion av kommando och generell funktion för att anropa sorteringsalgoritmer samt Subversion versionshantering.

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Transkript:

Subversion - varför? Syfte: att ersätta Concurrent Versions System The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. Därför: Versionshantering av kataloger och metadata Atomiska incheckningar Vettigt klient-api gör att det går att skriva bra klienter till Subversion

Typiskt förlopp Vill ha senaste releasen, undrar vad den kan heta? $ svn ls http://codespeak.net/svn/pypy/release 0.6/ 0.6.1/ 0.7.0/ 0.7.x/ $ svn co http://codespeak.net/svn/pypy/release/0.7.0... A 0.7.0/pypy/translator/test/test_cltrans.py A 0.7.0/pypy/translator/gencl.py A 0.7.0/pypy/translator/translator.py A 0.7.0/pypy/translator/java A 0.7.0/pypy/translator/java/PyObject.java... $ cd 0.7.0

Typiskt förlopp - forts Vad gick sönder? $ svn log pypy/translator/translator.py head ------------------------------------------------------------------ r17007 hpk 2005-08-28 14:25:06 +0200 (sön, 28 aug 2005) 1 ln tagging the final pypy 0.7.0 release ------------------------------------------------------------------ r16992 rxe 2005-08-28 13:24:09 +0200 (sön, 28 aug 2005) 3 ln oups forget to check this in :-( ------------------------------------------------------------------ $ svn diff -r 16991 pypy/translator/translator.py Index: pypy/translator/translator.py ================================================================== --- pypy/translator/translator.py (revision 18856) +++ pypy/translator/translator.py (working copy) @@ -204,7 +204,7 @@ raise ValueError, "function has to be annotated." gen = GenLLVM(self) filename = gen.gen_llvm_source() - f = open(filename, "r") + f = open(str(filename), "r") result = f.read() f.close()

Typiskt förlopp - forts Återställ fixen: $ svn diff -r 16991 pypy/translator/translator.py patch -R -p0 patching file pypy/translator/translator.py $ svn diff Index: pypy/translator/translator.py =================================================================== --- pypy/translator/translator.py (revision 18856) +++ pypy/translator/translator.py (working copy) @@ -204,7 +204,7 @@ raise ValueError, "function has to be annotated." gen = GenLLVM(self) filename = gen.gen_llvm_source() - f = open(str(filename), "r") + f = open(filename, "r") result = f.read() f.close() return result $ svn commit -m Reverting rxe's fix; we are better off without it

Lägg till och ta bort filer Nästan exakt som i CVS: svn add: lägger till ny fil, länk eller katalog till arkivet svn remove: raderar objekt från arkivet svn resolved Efter att du löst en konflikt som uppstod vid update Påverkar inte konfliktmärken svn revert Kastar dina lokala ändringar och checkar ut filen igen

svn status Konceptuellt likt cvs, men annorlunda ändå: $ svn status? TODO M test/plonesvnviewtest.py M test/svnviewtest.py M skins/svnview_edit.cpy D test/test D test/test/gaming.jpg Ingen nätverksanslutning krävs svn status u visar förändringar i arkivet $ svn st u? TODO M * 80 test/plonesvnviewtest.py M * 80 test/svnviewtest.py M * 80 skins/svnview_edit.cpy D 80 test/test D 80 test/test/gaming.jpg * test/viewfunctest.py

Ditt arkiv Skapa nytt arkiv $ svnadmin create --fs-type bdb system-config Två typer bdb: något skalbarare och kompaktare fsfs: fungerar på nätverksmonterade filsystem Arkivet bryr sig inte om hur det delas ut

Konvertering CVS > SVN cvs2svn $ cvs2svn --fs-type=fsfs -s /svnroot/unix-config-tng \ /cvsroot/unix-config-tng ----- pass 1 ----- Examining all CVS ',v' files... unix-config-tng/makefile,v unix-config-tng/ion/ionws.lua,v unix-config-tng/ion/ioncore.lua,v... $ ls -l /svnroot/unix-config-tng total 8 drwxr-sr-x 2 quest src 104 2005-10-24 13:56 conf/ drwxr-sr-x 2 quest src 48 2005-10-24 13:56 dav/ drwxr-sr-x 5 quest src 256 2005-10-24 13:57 db/ -r--r--r-- 1 quest src 2 2005-10-24 13:56 format drwxr-sr-x 2 quest src 360 2005-10-24 13:56 hooks/ drwxr-sr-x 2 quest src 104 2005-10-24 13:56 locks/ -rw-r--r-- 1 quest src 379 2005-10-24 13:56 README.txt

Din arbetskatalog Den magiska.svn-katalogen entries: XML-fil; en nod per objekt format: version på.svn-data prop-base/: attributinfo från arkivet; en fil per objekt props/: attributinfo i arbetskopian; en fil per objekt text-base/: baseline-filer Arbetskatalogen blir skrymmande: text-base är halva arbetskopians volym Antal filer x 8

Attribut Lista attribut $ svn proplist file:///svnroot/plonesvnview Properties on 'file:///svnroot/plonesvnview': svn:ignore $ svn pg svn:ignore file:///svnroot/plonesvnview *.pyc,*.pyo Ändra attribut $ svn pe 'svn:mime-type' svnview.gif

Standardattribut svn:id svn:keywords = Id expanderar $Id$ i källkoden svn:ignore motsvarar.cvsignore för CVS svn:mime-type application/octet-stream gissar svn om den ser binär svn:executable svn:eol-style

Kataloger och grenar Subversion implementerar grening genom kopiering: svn mkdir svn copy svn move Se upp med skalkommandon och filhanterare! $ mv icons images $ svn status? images! icons $ svn mv icons images $ svn status A + images D icons D icons/svnview.gif D icons/file_icon_dl.gif D icons/file_icon_lg.gif

Att grena Att göra en gren: $ cd full_tree $ svn mkdir branches A branches $ svn copy trunk branches/60_partial_repository A branches/60_partial_repository $ svn commit Nu kan vi uppdatera vår arbetskopia: $ cd../plonesvnview $ svn switch file:///svnroot/plonesvnview/branches/60_partial_repository Är på revision 93.

Att slå samman En tidig ändring behöver läsas tillbaka: diff -u trunk/skins/svnview.css.dtml branches/60_partial_repository/skins/svnview.css.dtml --- trunk/skins/svnview.css.dtml 2005-11-06 13:51:12 +0100 +++ branches/60_partial_repository/skins/svnview.css.dtml 2005-11- @@ -91,7 +91,6 @@ #svnviewrevisionlistingquickie { visibility: hidden; position: absolute; - float: right; background-color: &dtml-contentviewbackgroundcolor;;... $ svn merge trunk@94 branches/60_partial_repository@94 trunk U trunk/skins/svnview.css.dtml U trunk/skins/svnview_edit.cpy $ diff -u trunk/skins/svnview.css.dtml branches/60_partial_repository/skins/svnview.css.dtml $ svn commit -m "Early merge from 60_partial_repository" trunk Skickar trunk/skins/svnview.css.dtml Skickar trunk/skins/svnview_edit.cpy Skickar filinnehåll.. Arkiverade revision 95.

Problemet med merge Incheckningen på grenen: $ svn commit -m "Unsaved stuff from buffers when this branch was created." Skickar skins/svnview.css.dtml Skickar skins/svnview_edit.cpy Skickar filinnehåll.. Arkiverade revision 94.... syns inte på stammen: $ svn log -r95:92 trunk/skins/svnview.css.dtml ------------------------------------------------------------------ r95 quest 2005-11-06 14:36:16 +0100 (sön, 06 nov 2005) 1 ln Early merge from 60_partial_repository ------------------------------------------------------------------ r92 quest 2005-11-06 10:17:32 +0100 (sön, 06 nov 2005) 3 ln Overhaul of parameter handling on edit, including beautification of error messages, separate validators. Added a blocksize parameter that allows user to control the number of revisions presented at once on revisions page. Also, cleaned up CSS file. ------------------------------------------------------------------

Andra lustigheter svn info Ger samlad information om ett versionshanterat objekt svn blame Listar vem som skrivit en viss kodrad i en fil och vilken version den tillhör svn lock, unlock Fillåsning finns i moderna versioner av subversion, men måste vara tillåtet i arkivet

Blödande fötter Skillnaden mellan peg revision och -r svn co svn://.../plonesvnview/trunk@80 A trunk@80/extensions A trunk@80/extensions/install.py... Checkade ut revision 95. svn co -r80 svn://venerable/mnt/data/svnroot/plonesvnview/trunk A trunk/extensions A trunk/extensions/install.py... Checkade ut revision 80.

Nätverksprat Subversion kan fås i många smaker: http:// https:// svn:// svn+ssh:// file://

Andra klienter tortoisesvn Windows Explorer shell extensions kontextmenyer i filhanteraren för din lokala kopia subcommander QT-GUI för flera plattformar API i ditt favoritspråk för dina kewla hack

Subversion - hjälp svn help Hemsidan: http://subversion.tigris.org Boken: http://svnbook.red-bean.com Mejlinglistorna: nntp://news.gmane.org/gmane.version-control.subversion.user nntp://news.gmane.org/gmane.version-control.subversion.svn nntp://news.gmane.org/gmane.version-control.subversion.devel