SVN i.c.m. webdevelopment
Ik vraag me dit al een tijdje af, en het is eigenlijk de reden waarom ik nu geen SVN gebruik voor webapplicaties. Hoe is het het makkelijkst om SVN te gebruiken in combinatie met (remote) webdevelopment?
Het probleem is, dat er 1 centrale ontwikkelserver / -omgeving is waar de website (in ontwikkeling) op draait. Door de centrale SQL database en testomgeving moeten de bestanden op de testserver gewijzigd en getest worden, en dus niet lokaal zoals bijvoorbeeld een C++ applicatie ontwikkeld en gecompileerd wordt.
Wanneer je SVN gebruikt op de webserver moet je waarschijnlijk een aparte SVN server en aparte webserver hebben, waarbij je dus direct met FTP werkt op de webserver, en af en toe een commit doet naar de SVN server. Hierbij haal je geen voordelen uit het overschrijven, en mergen etc heeft eigenlijk ook weinig zin.
Je kunt ook de laatste SVN revision gebruiken op je test omgeving, maar dan moet je iedere kleine aanpassing committen, en dat lijkt me ook niet ideaal en niet in de gedachte en bedoeling van SVN.
Hoe doen jullie dit, wat is het handigst?
Groeten,
Ruben
Waarom kijk je naar SVN, en niet naar GIT? Dit werkt een stuk makkelijker.....
Met GIT zou hetzelfde probleem optreden toch?
SVN, met een lokale testomgeving voor de webserver.
Optioneel een lokale database server. Eventueel kun je er nog voor kiezen om het bestand waar je connectiegegevens in staan buiten je SVN te houden.
Je Checkout folder van de SVN is in dit geval een lokale map van de webserver.
En ik zou inderdaad voor GIT gaan, dan heb je geen server nodig.
Ik heb nu al een tijdje zitten kijken naar GIT. Ik heb het geïnstalleerd op mijn *NIX server (Debian x64). Ikzelf en een mede-developer gebruiken beide Netbeans als ontwikkeltool. Nu willen we graag samen gaan werken, alleen lukt het ons niet om GIT juist in te stellen.
We willen als volgt werken. We hebben beide een eigen FTP opslag waar we ons voorbeeld kunnen bekijken. Af en toe doen we een commit, deze moet doorgestuurd worden en opgeslagen worden op de server en niet lokaal. Hier loopt het al mis, het lukt me niet om dingen aan te passen en dan te comitten naar de server. Als mijn mede-developer dan zijn GIT probeert te updaten (dus hetgeen die online staat mergen met hetgeen hij heeft) vindt hij niets. Of gaan we hier helemaal verkeerd te werk?
Kan je iemand mij uitleggen hoe we best samen aan een project kunnen werken, en is hiervoor een centrale server beter of niet? Want stel dat ik offline ben, kunnen andere developers niet mergen met mij.
En hoe gaat het dan in zijn werk om bijvoorbeeld een release te uploaden via FTP naar een website. Moet je dan handmatig mijn files die ik gemerged heb met de rest uploaden, of kan GIT automatisch een release uploaden?
Heel erg bedankt alvast!
In jou geval moet het volgens mij als volgt: Je hebt je Debian server met GIT je maakt hier een Repository. Dit wordt gelijk je "Mainserver" voor GIT
Jullie werken allebei aan het project dus dan kun je deze bestanden pullen voor je lokale variant die je op je pc hebt draaien je doet wijzigingen/aanpassingen en vervolgens commit je deze ( add je aan de stream als je nieuwe bestanden toevoegt ) en vervolgens kan je deze pushen naar je debian servertje.
De ander kan dan vervolgens alles weer ophalen en er ook eventueel tegelijk aan werken. GIT kan dan heel mooi alles naast elkaar breien.
Om deze bestanden naar de "ECHTE" server te sturen kan je ook GIT gebruiken maar volgens mij moet je daar SSH verbinding voor kunnen maken met desbetreffende server.. alleen weet ik dat niet zeker moet je even Googlen of misschien dat iemand anders daar antwoord op heeft :)
Ik had alvast het volgende zelf uitgevonden:
commit, lokaal saven
push, saven naar server
pull, krijgen van server (hij merged dan de server-versie met de lokale versie)
Is dit juist?
Volgens mij lukt het nu wel! Ik heb ssh toegang tot de server maar ik kan helaas niet meteen iets vinden om de files te releasen naar de webhost.
als je het wilt oefenen kan je op github.com oefeningen doen en er is ook duidelijke uitleg.