Gå til innhold

beste løsning for om flere skal skrive på et php-prosjekt


Anbefalte innlegg

Jeg skriver en nettapplikasjon der jeg gjerne vil trekke inn flere programmerere. Hva er den beste måten å gjøre dette på? Foreløpig har jeg bare sagt at jeg skal legge ut i en dropboxmappe, men den kan jeg vel ikke bruke som document_root på apache?

 

Jeg har jo en database også til denne applikasjonen, så aller helst burde denne løsningen kjøre fra min maskin. Sikkert noe jeg kan gjøre med apache, men hva? Jeg bruker forresten Aptana, kanskje dette kan gjøre ting enklere eller verre?

 

Jeg har brukt noe som het SVN, men husker ikke helt hvordan det fungerte. Kan noen oppdatere meg litt?

Lenke til kommentar
Videoannonse
Annonse

Git eller Svn, systemene kalles for versjonskontroll.

 

Jeg er ikke noe flink til å forklare men den holder styr på filene, samt husker hva du har lagt til og endret slik at du kan se endringene siden forrige "opplasting". Med svn er det en som har "masterkoden", mens med git er det ett distrubuert system, slik at alle deltakere har alt lagret hos seg eller på nett.

 

http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/

 

En bedre guide er det her:

http://betterexplained.com/articles/a-visual-guide-to-version-control/

 

Hvis det er snakk om opensource, kan du bruke sourceforge ev github (som lar deg stenge koden mot ett viss beløp).

Lenke til kommentar

Subversion er gammelt og Git er på alle måter en forbedring. (Det kan though virke noe mer komplekst for de som er vandt med SVNs simplisitet.) For min del er jeg helt avhengig av å kunne jobbe uten internett til enhver tid og da holder simpelthen ikke SVN mål.

  • Liker 1
Lenke til kommentar

men kan jeg få apache til å presentere git/svn som sin root? Jeg er avhengig av å kunne teste applikasjonen hele tiden.

Når du bruker git så har du helt vanlige foldere, git-root (om du vil) inneholder bare en ekstra folder med endringshistorikk. Veldig greit - git holder seg ute av veien når det ikke trengs, og gjør jobben sin når det trengs.

Lenke til kommentar

La meg uttrykke meg i klare, bastante ordlag her: SVN er etter min mening noe direkte møkk som burde vært utryddet sammen med CVS. Sist gang jeg benyttet det var det (og det er det endel år siden nå)

  • Så tregt at det medfører en betydelig forstyrrelse av arbeidsflyten
  • Ingen muligheter for å arbeide «offline», i hentydning at man kan gjennomføre «commit» uten nettilgang
  • Branch/merge er en eneste stor vits, og med mindre noen alvorlig store endringer er gjort noe jeg ikke anser for støttet i SVN
  • Absolutt ingen støtte for tags. Det å «fysisk» kopiere koden inn i en egen mappe er ikke tags.

Jeg anbefaler på det absolutt sterkeste å styre klar av SVN så langt det er mulig. Selv har jeg liten erfaring med Git, men kan i stedet varmt anbefale Mercurial som etter sigende er mye det samme som Git. Jeg har ikke lest hele greia, men det finnes en «tutorial» for Mercurial her. Benytter du Eclipse for programmering så finnes det en plugin som heter MercurialEclipse. Forøvrig så opererer Mercurial med en skjult mappe hvor alt annet enn nåværende revisjon lages, så det kan fint brukes sammen med Apache. Selv lager jeg den dog ligge litt lenger inn i mappestrukturen på webserveren, men det er nå en annen sak.

Lenke til kommentar

men kan jeg få apache til å presentere git/svn som sin root? Jeg er avhengig av å kunne teste applikasjonen hele tiden.

Du kan enten sette det til å "synkronisere" i en mappe i www-mappa på apache serveren din (eller hvordan du enn har satt det opp), eller peke apache til en annen plassering.

 

Open up httpd.conf (in your Apache/conf directory), find DocumentRoot and set it to be your the directory where you want your web site root.

 

DocumentRoot "c:/lalalal/www"

Lenke til kommentar

La meg uttrykke meg i klare, bastante ordlag her: SVN er etter min mening noe direkte møkk som burde vært utryddet sammen med CVS. Sist gang jeg benyttet det var det (og det er det endel år siden nå)

  • Så tregt at det medfører en betydelig forstyrrelse av arbeidsflyten
  • Ingen muligheter for å arbeide «offline», i hentydning at man kan gjennomføre «commit» uten nettilgang
  • Branch/merge er en eneste stor vits, og med mindre noen alvorlig store endringer er gjort noe jeg ikke anser for støttet i SVN
  • Absolutt ingen støtte for tags. Det å «fysisk» kopiere koden inn i en egen mappe er ikke tags.

Jeg anbefaler på det absolutt sterkeste å styre klar av SVN så langt det er mulig. Selv har jeg liten erfaring med Git, men kan i stedet varmt anbefale Mercurial som etter sigende er mye det samme som Git. Jeg har ikke lest hele greia, men det finnes en «tutorial» for Mercurial her. Benytter du Eclipse for programmering så finnes det en plugin som heter MercurialEclipse. Forøvrig så opererer Mercurial med en skjult mappe hvor alt annet enn nåværende revisjon lages, så det kan fint brukes sammen med Apache. Selv lager jeg den dog ligge litt lenger inn i mappestrukturen på webserveren, men det er nå en annen sak.

 

Så når noe spør deg om du anbefaler f.eks windows 7 så sier du nei fordi windows me var noe dritt sist gang du brukte det.

 

Har du tilgang til internett når du koder (ikke at du egentlig trenger det men patching er litt greiere da), samt at du trenger noe enkelt og raskt er svn kjempegreit å bruke. sammen med f.eks trac bør dere ha det meste dere trenger til å kode sammen.

Endret av Jacobuzz
Lenke til kommentar
Så når noe spør deg om du anbefaler f.eks windows 7 så sier du nei fordi windows me var noe dritt sist gang du brukte det.

Subversion er ikke blitt noe nevneverdig bedre med tiden. Det finnes i dag ingen grunn til å bruke det, fordi det rett og slett finnes vanvittig bedre alternativer.

Lenke til kommentar
Så når noe spør deg om du anbefaler f.eks windows 7 så sier du nei fordi windows me var noe dritt sist gang du brukte det.

Subversion er ikke blitt noe nevneverdig bedre med tiden. Det finnes i dag ingen grunn til å bruke det, fordi det rett og slett finnes vanvittig bedre alternativer.

 

Fullt klar over at det finnes bedre alternativer, men SVN er utrolig enkelt (samt å få hjelp til) i bruk om man kun trenger sync av filer. Og av trådstarter fikk jeg det inntrykket.

Endret av Jacobuzz
Lenke til kommentar

SVN er utrolig enkelt [..]

Git er ikke vanskelig. Det er bare bedre.

 

Og av trådstarter fikk jeg det inntrykket.

Hva i all verden ga deg det inntrykket? Tittelen på tråden indikerer noe annet. Trådstarter skal programmere sammen med et team og er ute etter den beste løsningen for synkronisering og versjonskontroll. Subversion er ikke den beste løsningen. Git er derimot på linje med de beste løsningene.

 

Hva er den beste måten å gjøre dette på?

Endret av Jonas
Lenke til kommentar

Så når noe spør deg om du anbefaler f.eks windows 7 så sier du nei fordi windows me var noe dritt sist gang du brukte det.

Nå er det litt forskjell på operativsystemer og versjonshåndtering, så jeg føler ikke det var spesielt sammenlignbart. Når det er sagt så kan jeg på ingen måter si jeg har blitt spesielt overbevist om at SVN har blitt bedre med tiden. Når branch og tags essensielt er mapper i repository så mener jeg man må snakke om SVN 2.0 før det blir en forbedring. Så grunnleggende feil er SVN.

 

Har du tilgang til internett når du koder (ikke at du egentlig trenger det men patching er litt greiere da), samt at du trenger noe enkelt og raskt er svn kjempegreit å bruke. sammen med f.eks trac bør dere ha det meste dere trenger til å kode sammen.

Nei, aldeles ikke. Jeg kjenner meg iallfall ikke igjen i beskrivelsen «enkelt og raskt». Har du prøvd Mercurial noen gang? Det er enkelt og raskt. Bare å opprette repo. lokalt og dure i vei. Når dataene ligger lokalt blir også absolutt alle operasjoner så raske at det blir en langt mer naturlig del av arbeidsflyten, spesielt i forhold til «commit». Det blir enkelt og naturlig med «Commit Early, Commit Often».

 

Uansett, totalt mangel på god eller i det heltatt praktisk gjennomførbar merge er nok til å skrape SVN på flekken. Straks man trenger branch/merge-funksjonalitet blir SVN helt ubrukelig. Det vil si, de som benytter SVN har vel eller ser vel ikke behov for god branch/merge-funksjonalitet. Det faller de aldeles ikke naturlig å skille ut svært eksperimentell funksjonalitet med høy risiko for feil i egen branch for så å flette den inn seinere hvis man får det til. Slikt er rett og slett ikke praktisk gjennomførbart i SVN sist jeg sjekket. SVN-folket ville i stedet sittet og kodet uten å kjøre «commit» og når det først fungerer så sender de inn en «commit» på størrelsen med en blåhval.

 

Dessuten, kan man SVN er veien meget kort til Mercurial. Termnologien er i stor grad lik bortsett fra at man faktisk har en fornuftig måte å lage tags og branch på og man introduserer push og pull for å utveksle data mellom seg og andre. Derfor er det heller ingen grunn til å gå for SVN fordi det er enkelt å bruke. Terskelen for Mercurial er ikke nevneverdig høyere, men tvert i mot enklere siden man lett kan sette opp repo. lokalt uten noen server.

 

Ja, og bare for å ha det sagt, SVN er bedre enn ingenting, men det betyr ikke at det er en god idé allikevel. Det blir litt som å kjøre en gammel, rusten Lada når man har mulighet til å kjøre en flunkny Ferrari eller Porsche.

Endret av Ernie
Lenke til kommentar

SVN er utrolig enkelt [..]

Git er ikke vanskelig. Det er bare bedre.

 

Og av trådstarter fikk jeg det inntrykket.

Hva i all verden ga deg det inntrykket? Tittelen på tråden indikerer noe annet. Trådstarter skal programmere sammen med et team og er ute etter den beste løsningen for synkronisering og versjonskontroll. Subversion er ikke den beste løsningen. Git er derimot på linje med de beste løsningene.

 

1. Ikke sagt at git er spesielt vanskelig. Sa at det er enkelt å finne hjelp til svn.

2. Trådstarter lurer på om han skal få inn flere folk. Dersom han bestemmer seg for å få inn flere folk ville jeg anbefalt å sjekke hva de nye medlemmene har erfaring med. Min erfaring (som selvfølgelig kan være feil) er at flere utviklere har brukt svn enn git. Dette pga at det har vært mye brukt ved teknologilinjer ved høyskole og universitet.

 

Synkronisering og versjonskontroll. Tilbyr svn dette: ja. Beste løsning er ikke alltid den med best tekniske spesifikasjoner. Men jeg gidder ikke diskutere videre på svn mot git. Min mening er fortsatt at dersom jeg skulle utviklet et program og vi var 2-4 personer, og at det eneste vi trengte var synkronisering ville jeg brukt svn. Til et større prosjekt ville det mest sannsynlig at man trengte mer funksjonalitet og svn ville uaktuelt.

Lenke til kommentar
Min mening er fortsatt at dersom jeg skulle utviklet et program og vi var 2-4 personer, og at det eneste vi trengte var synkronisering ville jeg brukt svn.

Hvorfor går du ut ifra at små team ikke trenger helt grunnleggende funksjonalitet som branching og offline commits? Det virker rett og slett ikke som om du forstår eller innser nytteverdien av dette. Det er slikt jeg gjerne kunne hatt bruk for selvom jeg fant meg selv alene på et prosjekt. Og hvorfor uansett velge verktøy på bakgrunn av teamets størrelse? Det er ikke vanskeligere å sette opp Git, det er ikke vanskeligere å lære seg og det er ekstremt mye raskere.

Endret av Jonas
Lenke til kommentar
Min mening er fortsatt at dersom jeg skulle utviklet et program og vi var 2-4 personer, og at det eneste vi trengte var synkronisering ville jeg brukt svn.

Hvorfor går du ut ifra at små team ikke trenger helt grunnleggende funksjonalitet som branching og offline commits? Det virker rett og slett ikke som om du forstår eller innser nytteverdien av dette. Det er slikt jeg gjerne kunne hatt bruk for dersom jeg var alene på et prosjekt. Og hvorfor uansett velge verktøy på bakgrunn av noe teamets størrelse? Det er ikke vanskeligere å sette opp Git, det er ikke vanskeligere å lære seg og det er ekstremt mye raskere.

 

Det står virkelig ikke det. Jeg skrev dersom. Og ja jeg forstår nytteverdien, men mange ganger er ikke denne funksjonaliteten nødvendig.

Alt kommer an på hva man skal utvikle (hvordan type prosjekt). Jeg kommenterte på et svar i denne diskusjonen som mente SVN var ubrukelig, jeg er av en annen oppfatning da jeg har brukt det på flere prosjekter uten problemer. Jeg har også brukt GIT som også er veldig bra verktøy (bedre enn SVN på mange områder).

Endret av Jacobuzz
Lenke til kommentar

Jeg har brukt Subversion i team og alene i noen år og jeg ser ingen fordeler med Subversion mer etter jeg begynte å bruke Git.

 

Subversion er skrudd sammen på en slik måte at den tvinger deg til å jobbe i kronologisk rekkefølge. Det er en kjempeoperasjon å merge kode og prøve ut nye ting eller løse flere oppgaver i parallell. Subversion tvinger deg som utvikler til arbeidsflyt tilpasset Subversion og ikke omvendt.

 

Der er Git helt annerledes. Man kan jobbe med flere versjoner av kildekoden i parallell, bytte mellom en branch og en annen. Merge masteren branchen med en eksperimentell branch, angre og gå tilbake. Når du er fornøyd med koden oppdaterer du en remote branch over ssh (f.eks. github) så andre kan hente de siste oppdateringene fra deg. Git behøver ikke en sentral server. Når jeg starter noe nytt går jeg inn i en folder og skriver git init. Git kommer ikke i veien for meg, Subversion kommer i veien for meg. De ekstra to dagene det tar å lære seg Git betaler seg senere fordi Subversion er søppel. Sånn nå er det sagt. :D Når man har lært seg det grunnleggende er det faktisk ikke så mange git kommandoer man bruker til daglig.

 

Sjekk ut:

http://progit.org/book/

https://github.com/

 

 

---

 

 

Synkronisering og versjonskontroll. Tilbyr svn dette: ja. Beste løsning er ikke alltid den med best tekniske spesifikasjoner. Men jeg gidder ikke diskutere videre på svn mot git. Min mening er fortsatt at dersom jeg skulle utviklet et program og vi var 2-4 personer, og at det eneste vi trengte var synkronisering ville jeg brukt svn. Til et større prosjekt ville det mest sannsynlig at man trengte mer funksjonalitet og svn ville uaktuelt.

 

Du kan fint bruke en arbeidsflyt som ligner Subversion i så små team om du vil. Det er bare å ha en felles kildekodebrønn der alle har skrive og lesetilgang, det blir akkurat det samme.

 

Er man i ett litt større team kan man peke ut en som tar ansvar for å ha skrivetilgang og hente inn oppdateringer fra de andre. (Ikke så ofte som Subversion.)

 

Er man 2-3 stykker kan man bare hente oppdateringer fra hverandre, det er bare å koordinere litt.

 

Nå har jeg foreløbig bare brukt Git alene men selv nå har jeg stor glede av fordelene og lager brancher og merger dagen lang. :love:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...