Avatar billede mrcorex Nybegynder
05. februar 2010 - 08:55 Der er 12 kommentarer og
1 løsning

SVN best practices - "synkronisering"

Hej alle.

Jeg skal have sat nogle SVN-repositories op og mangler nogle anbefalinger fra jer eksperter.

Det bliver placeret på en linux-server og tilgås igennem apache. Det er muligt noget af det er manglende forståelse. Plz, ikke bare smide et link. Jeg er interesseret i hvad DU siger. Det er jo dig som har erfaringen. Jeg ved fuldt ud hvordan man sætter repositories op og rettigheder o.s.v. + installation af dav o.s.v. Så spild ikke din tid på det. Jeg er ude efter "Best practice" fra nogle erfarne SVN-brugere.

Til sagen - jeg har 5 mennesker der skal arbejde sammen på tværs af projekter og på tværs af lokationer. Alle 5 mennesker kender SVN og bruger det flittigt, men jeg kan ikke helt gennemskue om de gør det rigtigt.

De sidder og arbejder på en class på den stationære computer og derefter commit'er de den for lige derefter at update deres bærbar. Det er denne måde de "synkroniserer" imellem deres arbejds-stationer. Det kan jo give et projekt der ikke kan compiles. Hvad er best practice her? Er det i det hele taget den måde man "synkroniserer" imellem flere arbejds-computere?

/CoRex
Avatar billede bauerdata Nybegynder
05. februar 2010 - 10:04 #1
De sidder og arbejder på en class på den stationære computer og derefter commit'er de den for lige derefter at update deres bærbar.


Jeg mener man bør gøre sådan.
check out
1. work, update
2, if test ok then checkin else 1
3, if test produktion not ok then roolback.
4 got 1
Avatar billede mrcorex Nybegynder
05. februar 2010 - 10:23 #2
Den kan jeg godt følge dig I, men hvad med den situation at man ikke er færdig med sin class og man skal have den "flyttet" til en anden maskine for at arbejde videre med den på et andet tidspunkt? Der har et par stykker brugt det som en "synkroniserings"- mulighed. Hvad er det "rigtige" måde at gøre det på?
Avatar billede bauerdata Nybegynder
05. februar 2010 - 11:03 #3
Jeg retter lige produktion til trunk i trin 3.
Hvis class'n er færdig så skal den vel chekkes ind i trunk ?
Og derefter er det ikke noget problem at tjekke den ud et andet sted.
Men er den ikke færdig kan man vel tagge en debug version og så chekke den tag ud arbejde med den og når man er færdig merge taggen med trunk.
Avatar billede arne_v Ekspert
05. februar 2010 - 18:57 #4
Det er ikke nogen speciel koen maade. Hvis muligt burde de flytte koden uden om SVN.

Hvis de insisterer, saa skal du insistere paa at de kun commiter noget som builder.

public void m() {
  int a = 1;
  int b =
}

skal lige konverteres til:

public void m() {
  throw new RuntimeException("m is not implemented yet");
  /*
  int a = 1;
  int b =
  */
}

inden de commiter.

Saa kan de update paa anden PC, slette og arbejde videre.

Uden at builden gaar i doerken.
Avatar billede bauerdata Nybegynder
05. februar 2010 - 22:12 #5
Og hvis man så glemmer / bliver syg så vil det man har chekket ind i trunk blive til test / og til sidst prod.
Så vil RuntimeException springe i produktionen og man skal til at forklare at man fik et råd.
Avatar billede bauerdata Nybegynder
05. februar 2010 - 22:15 #6
Jeg syntes man skal bruge svn til versionsstyring og så skal man skrive programmer i koden som virker i den version man skriver i.
Det kan godt være at man ikke syntes det er kønt, men det er ret praktisk.
Avatar billede arne_v Ekspert
07. februar 2010 - 03:32 #7
Hvis man sender kode i test/produktion uden at have spurgt udviklerne om de er færdige (eller inspiceret koden hvis en udvikler er totalt unavailable) og heller ikke tester koden, så er det sikkert ikke den eneste fejl. Og fejlen skal ikke klandres brugen af source control, men på den totalt uforsvarlige udviklings process man bruger.
Avatar billede bauerdata Nybegynder
07. februar 2010 - 04:03 #8
God skik er at man kun chekker ting ind i trunk som man har testet rigtigt godt inden.
Og derefter tester det i trunken.

Det er usædvanlig dårlig vane at chekke ting ind som ødelægger kollegernes arbejde.
Avatar billede mrcorex Nybegynder
07. februar 2010 - 09:25 #9
Jeg har fulgt denne tråd med spænding. Det er rart at se at der er nogen som kommer med deres erfaringer her. Og jeg er ganske enig i den sidste kommentar - men - hvad gør man så? De skal jo have lov at arbejde på flere computere.

Kører man et helt privat svn ved siden af sådan at man først lægger det i "hoved"-svn når det er klar?

Er vi helt ud i en helt almindelig synkronisering som der sættes op for dem selv?

Hvad gør udviklere som arbejder sammen på denne her? Lader de simpelthen være med at gå hjem fra arbejde før den sidste stump kode fungerer? :)
Avatar billede bauerdata Nybegynder
07. februar 2010 - 11:30 #10
Hvis man har det problem at ens udviklingsmiljø skifter fysisk fra en maskine til en anden. Ret sjældent.
Som jeg foreslpg så tagger man det man er igang med.
Chekker sit arbejde ind.
PÅ den anden maskien chekker man så sin tag ud, arbjeder på den
chekker ind.
Tager til dem andem maskine updater arbejer , chekker ind.

Når jeg siger at man ikke skal chekke noget ind i trunk før det virker betyder det ikke at det nødvendigvis skal være helt færdig,
men det er ikke smart hvis det giver compileringsfejl, kaster exceptions så det ødelægger andres test mm.
Avatar billede mrcorex Nybegynder
07. februar 2010 - 12:00 #11
Jeg bliver nødt til at gå lidt i tænkeboks her, men jeg synes det er nogle fede indlæg der er kommet her. Dog vil jeg sige at det med at det er ret sjældent at man skifter fysisk maskine er ikke tilfældet her. De gør det hele tiden her. De har faktisk 3 maskiner (stationær på arbejdet, stationær derhjemme + en bærbar).

bauerdata, gider du give et svar her? Jeg har besluttet at du skal have P. Det er ikke 100% det jeg var ude efter, men jeg har fået nok til at gå videre med.
Avatar billede bauerdata Nybegynder
07. februar 2010 - 12:56 #12
Man kan jo organisere sig på forskellige måder og hvis man kan blive enige med hinanden om at gøre det på en konsistent måde, så er det jo det vigtigste.
Avatar billede mrcorex Nybegynder
07. februar 2010 - 17:07 #13
Det har du så sandelig ret i, men det er også derfor det er vigtigt for mig at få styr på det her. Eller rettere få styr på DEM :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester