Indledning

Som du måske ved er Flex Builder bygget på open source IDE'et Eclipse
Eclipse er en af de mest anvendte og velfungerende udviklings miljøer på markedet i dag. En af de helt store fordele ved Eclipse er at det er open source, og dermed give alle adgang til at udvikle moduler, plugins og værktøjer til IDE'et. I denne tutorial vil jeg vise hvordan du kan tilføje.

Subversion

Subversion er begrebet der omhandler fil kontrol af de arbejdsfiler man f.eks. anvender i et projekt. I mere konkret forstand kunne det f.eks. være en række ActionScript klasser, der bruges af flere team medlemmer, og hele tiden bliver opdateret af de forskellige medlemmer. Subversion laver historik på alle filer, der sendes og hentes gennem svnserveren (som en server der kan lave subversion kaldes). Det vil sige at laver to personer et ændring i samme klasse på samme tid, og begge lægger den ud på serveren, så finder subversion ud af at versionere dem, sådan at den person der sidst forsøger at lægge hans fil ud, for en besked om at der er sket ændringer i den fil et andet sted. På den måde får personen nu muligheden for at se hvad der er sket af ændringer og kan hurtigt sammenlægge de to versioner af klasse, så den har de næste tilføjelser fra alle medlemmerne i teamet. - hvis du har leget med Papervision3D eller andre projekter, har set muligheden for at hente filerne ned via svn (forkortensel for subversion). - den er altså den mappe på serveren hvor kode filerne løbende er blevet opdateret i, af projektets medlemmer.

Subversion kontrol i Flex

Eftersom Subversion kontrol er af stor værdi for folk der arbejder med kode, dokumentation, hjemmesider og alle mulige andre former for materiale der indeholder karaktertegn, er svn også noget vi kan bruge, i vores arbejde med Flash og Flex kode. - og så er det jo så heldigt at der rent faktisk er nogen der har lavet et subversion plugin til Flex Builder (ikke helt sandt, men eftersom Flex bygger på Eclipse, og plugin'et er til eclipse, føles det næsten sådan).
Plugin'et hedder Subclipse, og er et open source projekt huset af Tigris.org (de huser også Tortoise, en anden SVN klient til windows).

Subclipse

Subclipse virker sådan at du gennem dit navigator panel i Flex, kan hente og sende opdateringer i det projekt du nu sidder med.

Som du kan se i panelt på billedet har jeg et par forskellige projekter i mit navigator panel. Ud for mappeikonerne kan du se nogle små ekstra ikoner som normalt ikke ses. Disse ikoner er nogle subclipse sætter på, for at gøre opmærksom på ændringer der er sket. Hvis du ser på det lille gule sylender ikon, i nederste højre hjørne, så betyder det at mappen er under subversion kontrol, og at alle minde ændringer, er blevet opdateret. Ser du derimod på projektet OSFFLibrary mappen så er der et lille sort ikon med et "snefnug" på, i nederste højre hjørne. Det betyder at jeg har lavet ændringer lokalt, som jeg endnu ikke har "committet" - altså sendt af sted til serveren. Længere nede i mappetræet, i samme projekt kan du se en række mapper alle med et lille spørgsmålstegn i hjørnet. Det betyder at disse mapper endnu ikke er med i subversion kontrollen og altså opfattes som nye filer. Næste gang du sender dine rettelser af sted, vil du få muligheden for at tilføje disse nye mapper og filer til subversion kontrollen.

Installation

Men inden vi ser nærmere på brugen af subversion, skal vi lige have det installeret. Eclipse har en meget let møde at tilføje nye plugsins på. Det kan gøres direkte gennem en af menuerne i menulinjen.
Start med at besøge Subclipse's projekt side og find det link der hedder "Eclipse update site URL". Det er URL'en du kan bruge direkte inde fra Eclipse. Kopier URL'en og åben din Flex Builder.

(I skrivende stund er http://subclipse.tigris.org/update_1.0.x URL'en).
Under menuen "HELP" -> "Software updates" vælges punktet "Find and install"

Hvis din "help" menu ikke ser helt lige sådan ud, skal du ikke undre dig, det kan variere meget.
Efter punktet er valg, starter en updaterings wizard, og har skal du vælge punktet "Search for new features to install".

I det næste billede vælges "New Remote site", som giver dig mulighed for at vælge et nyt sted, hvorfra du kan hente updateringer/features til Eclipse. Den den popup der kommer, skal du indtaste et navn til din feature (har kan du skrive Subclipse, men du kan helt selv vælge hvad du vil kalde dit nye remote site), samt indtaste den URL du kopierede fra Tigris.org siden med Subclipse.

- se pilene.
Klik okay og se at navnet du gav din nye feature, nu er på listen blandt remote sites. Klik af i checkboksen ud for Subclipse (eller hvad du nu har kaldt den af navn). Klik herefter på Finish, og se at Eclipse starter en download process for at finde information omkring den feature du har valgt.
Efter et øjeblik vises en ny dialog boks, hvor du nu har mulighed for at tilføje Subclipse som feature til Eclipse. Klik på featuren, så den dropper-down, så du kan se de subpunkter den indeholder. - vi skal nemlig ikke bruge "Itegration" muligheden, så klik af i de andre punkter, men lad integration chekboksen være unchecked

Klik herefter på Finish, og Eclipse starter med at downloade Subclipse.
Du vil herefter blive mødt med en dialogboks der spørger om du vil installere de hentede features, vælg "Install All", og senere en dialogboks omkring at du acceptere at anvende Subclipse efter de regler der er. - her vælger du "accept".
Så har du faktisk svn i din Flex Builder.

Muligheder med SVN

Subversion kan en hel masse forskellige ting, og vi vil helt sikkert ved senere lejlighed komme ind på en mere avanceret brug af SVN. - SVN kræver som sagt en server der kan finde ud af at committe og update filer og holde historik, og sidst i artiklen kan du finde links til forskellig udbydere af disse services. Vi bruger også SVN til vores OSFF projekt (open source flashforum) og i det følgende vil jeg gennemgå hvordan du kan hente projekter, snippets projektet, og klassebiblioteket ned direkte ind i Flex.

Hent OSFF AS3 Snippets Lib

Som nævnt er der et hav af featuers i SVN. En af dem er at hente allerede eksisterende projekter ned, til brug i dit workspace. Start med at åbne Flex, og højreklik et sted på dit navigator panel, og vælg "new" -> "other". så du får "New project wizard" dialogen frem.

Du kan her enten bruge filtrerings tekstboksen, eller scrolle ned til du finder en mappe der hedder "SVN". I den mappe finder du muligheden for at vælge "Checkout Projects from SVN". - altså muligheden for at hente projekter fra et SVN repository. Og det er netop det vi vil. Vælg punktet og klik næste. Nu kommer dialogboksen op og fortæller dig at du skal "Create a new repository location" eller "Use existing repository location

- hvis du ikke har brugt subclipse før er din liste tom, og du kan kun vælge "Create new...". Vælg dette og næste billede giver dig muligheden for at indtaste URL'en på svn repositoriet.
Open Source FlashForum's SVN adresse er i skrivende stund:
http://svn2.assembla.com/svn/osff

- men du kan selv holde dig orienteret med projekter og URL'en på SVN'en på OSFF's project space her:
http://www.assembla.com/wiki/show/osff

Indtast URL'en til SVN'en i feltet og klik næste

Herefter vises indholdet af svn repositoriet. I det her tilfælde kan du se OSFF's struktur som i skrivende stund indeholder en as3 mappe, og i den en mappe til projekter, et klasse bibliotek og et snippets bibliotek. For nærmere information omkring OSFF og de forskellige projekter læs her

I dette eksempel vil vi gerne have snippetLib mappen ned, der indeholder osff Snippets.
Vi vælger mappen og klikker på næste.
Flex giver os muligheden for at navngive det projekt vi henter ned. -> lad blot indstillingerne stå som på billedet her og klik finish.

Nu skulle du gerne kunne se at der er tilføjet et nyt projekt (et nyt ActionScript projekt i det her tilfælde) til dit navigator panel.

Fysisk er mappen med SnippetLib lagt samme sted som de øvrige filer i dit workspace, med mindre du har valgt andet da du hentede projektet ned.

Hvis du højreklikker på svn projektet, og vælger menuen "team" vil du se alle de muligheder du har med svn og dit projekt. De to mest interessante til at begynde med at "commit" som sender dine ændringer afsted til serveren, og "update", som henter nyeste ændringer fra serveren.

Hvis du er Contributer eller Project Owner på et OSFF projekt vil du har mulighed for at committe filer, ellers vil du kun have mulighed for at læse filer fra SVN'en. - derfor husk kun at ændre de filer du enten har mulighed eller autoritet til at ændre.

Skal kun hentes én gang

Når først du har hentet en projekt fra SVN én gang, behøver du ikke hente det igen, hvis du i et andet workspace, gerne vil gøre brug af projektet. Alt du behøver er, i et nyt workspace, at højreklikke på navigator panelet og vælge "import". I den dialog boks der kommer frem vælger du "Excisting project in to workspace". Dette valg åbner muligheden for at du kan browse. Browse hen til der hvor du i sin tid hentede dit projekt ned og vælg mappen. Så finder Flex selv ud af at tilføje projektet virtuelt til dit workspace, uden at du behøver at tage en kopi af mappen, eller behøver at skulle hente projektet ned fra SVN serveren igen.

Afslutning

Det var en kort introduktion til Subversion i Flex. Har du spørgsmål eller kommentarer kan du poste dem her efter. Jeg vil senere se nærmere på mere avancerede funktioner i SVN, og du kan allerede nu blive en del af OSFF og lære mere om brugen af OSFF, ved at holde øje med nyhederne på FlashForum, eller skrive en PM til mig.

Ressourcer

Gratis og billig SVN og CVS hosting:
http://cvsdude.com/

Til de langhårede er her en masse interessant omkring SVN protocollen
http://svnbook.red-bean.com/