FORUDSÆTNINGER
KONFIGURERING AF SVN I ECLIPSE
Vi skal bruge en SVN-klient til ecllipse. Standardprogrammet i Eclipse, Subversive, har problemer med at merge hos google code, hvorfor vi skal bruge Subclipse i stedet.
Fjern Subversive
- Help > Install New Software > What is already installed
- Markér alt der har med Subversive og SVN-Kit at gøre, og klik Uninstall
- Genstart eclipse, når den beder om det.
Installer Subclipse
- Help > Install new software > Add
- Tilføj subclipse (Name: Subclipse, Location: http://subclipse.tigris.org/update_1.6.x )
- Vælg at installere Core SVNKit Library, Optional JNA Library samt Subclipse. Under Subclipse skal du dog fravælge Subclipse Integration for Mylyn.
- Fjern flueben i Contact all update sites during install (...) (så installeres subclipse på 2 minutter i stedet for 2 timer :) )
- Klik Next og Finish til det er installeret. Genstart Eclipse.
Anvend SVNKit som SVN interface
- Window > Preferences > Team > SVN, vælg SVNKit fremfor JavaHL, i dropdown menuen.
Importér projekter fra Google Code
- Du skal importere 4 eclipse-projekter fra SVN. Alle gruppers stable repository, samt din egen gruppes unstable repository.
- De stable repositories findes i: sw6.projektnavn/trunk
- De unstable findes i: sw6.projektnavn/branches/dev
- Andetsteds findes der en forklaring på mappestrukturen, men indtil videre er det nok at vide, at du skal importe din egen gruppes dev-mappe, og alle trunk-mapperne (altså i alt 4 projekter)
Følgende er en guide til at importere et projekt
- Højreklik i package explorer (projektlisten til venstre i eclipse) > Import > SVN > Checkout Projects from SVN > Next
- Hvis du ikke har oprettet repository’et endnu klikker du Create a new repository > Next
- Url: https://sw6android.googlecode.com/svn/
- Vælg mappen der ønskes importeret (enten en trunk-mappe eller en branches/dev-mappe)
- Next, finish indtil projektet er importeret.
Samarbejde
Ideén er nu, at du har de andres stable release (trunk), og kan svn-update deres mapper løbende. Du skal altså ikke comitte til disse mapper. Samtidig har du importeret din egen gruppes dev-mappe. Dev-mappen er en branch af jeres trunk-mappe, som i løbende kan arbejde i. Jeres branches/dev-repository er altså jeres gruppes helt eget repository, som I muligvis kender det fra tidligere projekter. Hertil kan i løbende comitte kode så meget som i lyster, for det er kun jeres gruppe der arbejder i dev-branchen. Når I har noget kode, der er klar til "produktion" skal I merge jeres branch (jeres /branches/dev repository) med jeres trunk. I skal altså flette jeres branch's ændringer tilbage ind i trunken, så andre kan få glæde af jeres stable kode. Vi anbefaler at I udvælger et gruppemedlem, der er ansvarlig for at merge jeres branch med trunken regelmæssigt.
MERGE BRANCHES/DEV TIL TRUNK
Ideén er at du switcher repository fra dev-branchen til jeres trunk, og så "re-integrater" du dev-branchen med trunken, og herefter comitter trunk'en. Rent praktisk gør du følgende:
- Opdater din dev-branch
- Sørg for at dev-branchen er helt opdateret (svn update)
- Commit alle rettelser du har til jeres dev-branch
- Skift til jeres trunk
- øjreklik på jeres projekt > Team > Switch to another Branch/Tag/Revision
- Merge dev-branch til trunk
- Højreklik på projektet > Team > Merge > Reintegrate a branch > Next
- I ”Merge from” vælger du jeres dev-branch (branches/dev) > Next > Finish
Om alt går vel, trækker SVN nu jeres dev-branch-ændringer ned i trunken, så trunken og dev-branchen er ens.
- Commit ændringer i trunk
- Efter du har merged, skal du huske at comitte ændringerne i trunken. Det er ikke nok at merge, så husk at comitte!
- Skift tilbage til dev-branchen
- Husk at switche tilbage til dev-branchen, når du har merged, så du ikke kommer til at comitte dine små-ændringer til trunken ved en fejl.
Commit
Når du forsøger at committe vil du blive mødt med en godkendelseboks, hvor du skal skrive det autogenererede googlecode.com password og dit brugernavn. Denne information kan findes her, hvor dit brugernavn er brugernavn@gmail.com
Af uforklarlige årsager vil du formentlig opleve at få en fejl 500 (Service unavailable) af og til når du forsøger at committe. Heldigvis er der et workaround - prøv igen.
Regler
Det koster naturligvis øl og/eller kage at have kode i jeres trunk som ikke kan compile :)