php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.12.2008, 14:43  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard Entwicklung mit Versionskontrolle

Hallo zusammen,

ich arbeite des öfteren mit mehreren Personen an einer Webseite oder einem Script und sehe nun den Bedarf einer Versionsverwaltung.

Ich habe mir nun die Funktionsweise von SVN, Git und Darcs angeschaut aber was mich zum verzweifeln bringt ist folgende Anforderung die Ich habe:

Die aktuelle Version soll auch immer über einen Testserver aufrufbar sein.

Ich habe überlegt das Repository Verzeichniss einfach unterhalb der Document Root des Webservers anzulegen, aber ist das eine schöne Lösung? Und was ist mit Änderungen an einer Datenbank an die das jeweilige Script angebunden ist?

Am liebsten wäre mir eine Lösung die Änderungen an der Struktur der Datenbank erfasst und Änderungen in den Quelltexten.

Wie geht Ihr denn vor wenn ihr im Team eine Website oder ein Script entwickelt? Eine Versionskontrolle ist doch eigentlich Pflicht?

Ich wäre dankbar für Anregungen und Vorschläge.

gruss
moveax1
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.12.2008, 15:27  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo,

an sich ist SVN für zentrale Versionsverwaltungen IMHO das "non plus ultra". Um die aktuelle Version der Seite immer aufrufbar zu haben solltest du Versionsverwaltung und Deployment unterscheiden. Das bedeutet, dass die Versionsverwaltung alle Dateien (Code, Templates, Setup-Scripts, ...) beinhaltet und ein Deployment-Script dir die Vorschauversion auf Knopfdruck erstellt / updatet. Im einfachsten Fall ist das ein "svn co" oder ein "svn export", in komplexeren Fällen kann es auch ein "svn co + mysql xyz" sein. Letzteres musst du natürlich an deine Bedürfnisse anpassen.

Wenn du schon eine fertige Lösung haben möchtest, schau mal auf der Maven- oder auch der Ant-Seite vorbei. Für PHP gibt es unter Maven - Welcome to Maven for PHP bereits einen angepassten Livecycle.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 28.12.2008, 18:41  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Ich hab eine Zeit lang SVN benutzt und nutze jetzt seit ein paar Monaten GIT (insbesondere seit ich komplett auf linux umgestiegen bin). Der Anfang ist wie ich finde etwas schwierieger als mit SVN zumindest ging es mir so, obwohl ich schon ein paar jahre mit SVN gewerkelt hab.

Git ist zwar dezentral, aber das hindert einen ja nicht daran irgendwo für sich ein Hauptrepro zu machen in das der aktuelle stand immer "gepusht" wird.
Ich hab auch auf meinem Root-Server ein Verzeichnis mit allen meinen Repros und dorthin pushe ich meine repros immer nach den commits wenn ich online bin.

Sehr nett ist es halt durch den dezentralen Faktor, lokal branchen und commiten zu können den kram dann wieder irgendwann in seinen master-zweig (ähnlichem dem trunk in SVN) zu mergen und dann wieder commiten und dann wenn man online ist auf das haupt-repro zu pushen.
Wenn man öfters offline arbeiten will oder muss wenn man unterwegs ist, ist es einfach herrlich sich trotzdem branches anlegen zu können, committen zu können und so.

Was git auch sehr interessant macht, Kompression! Ich hab hier lokal nen Ordner den ich mit meinem Server synchronisiere um überall auf die gleichen Versionen von Komponenten, darin liegen diverse versionen des zend-frameworks, andere komponenten und frameworks, diverse versionen von dojo und anderen js-frameworks, css-frameworks und kram + manuals und so, das sind ~ 900 MB, komprimiert als tar.gz waren es noch 180 MB und als GIT-Repro waren es gerade mal 90 MB!!
Also alles was ASCII und nicht binär ist wird sehr gut komprimiert, was auch den Traffic zu meinen Online-Hauptrepros sehr gering hält.

Ausserdem hat man bei GIT durch das clonen auch immer Zugriff auf die komplette History! (dafür ist ein GIT-Repro wenn es schon älter ist halt auch trotz Kompression größer als ein einzelner checkout aus SVN)


Ansonsten besteht bei GIT auch die Möglichkeit einen Mischbetrieb zu fahren.

GIT bietet mit git-svn auch Zugriff auf SVN-Repros, damit kann man auf dem eigenen Rechner mit git arbeiten, branchen, committen und soweiter und irgendwann wenn man etwas abgeschlossen hat, macht man aus dem ganzen dann einen commit ans SVN.
robo47 ist offline   Mit Zitat antworten
Alt 31.12.2008, 03:16  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mir GIT und SVN angesehen und erstaunlicherweise finde ich GIT in der Einrichtung einfacher.

Die Fertiglösungen die Dr. E. postete schaute ich mir an, ich glaube aber nicht das meine Arbeitskollegen Sie jemals verstehen werden.
Ich denke ich werde auch mit GIT ein Repository anlegen, es spricht ja nichts dagegen das sich das Repository unterhalb der DocumentRoot des Webservers befindet.

Danke für eure Antworten

gruss
moveax1
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline   Mit Zitat antworten
Alt 02.01.2009, 17:59  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von moveax1 Beitrag anzeigen
Ich denke ich werde auch mit GIT ein Repository anlegen, es spricht ja nichts dagegen das sich das Repository unterhalb der DocumentRoot des Webservers befindet.
Mit GIT kenn ich mich zwar nicht aus, das wird aber so nicht gehen. Das Repositroy ist mit sicherheit eine Datenbank wie bei SVN damit kann der Webserver wenig anfangen.
Bei SVN kannst du aber bei einem Commit automatisch ein Update auf dem Sever ausführen. Im Repostiory hast du ein Ordner hooks, dort erstellst du einfach eine Datei "post_commit" und schreibst einfach folgendes rein:

Code:
svn update pfad_zur_test_kopie
Vorher musst du natürlich noch eine checkout für "pfad_zur_test_kopie" machen.
erc ist offline   Mit Zitat antworten
Alt 02.01.2009, 20:57  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von moveax1 Beitrag anzeigen
Die Fertiglösungen die Dr. E. postete schaute ich mir an, ich glaube aber nicht das meine Arbeitskollegen Sie jemals verstehen werden.
Du musst nunmal beides trennen: Die Versionskontrolle und das Publishen deiner Daten auf den Webserver. Letzteres schimpft sich deployen. Ich bin mit SVN zufrieden, GIT kenne ich nicht und wär mir zu experimentell.

Wenn das ganze läuft musst du dir nur ein kurzes Deploy-Script bauen, dass auf deinem Webserver ein update/checkout fährt.

Du solltest allerdings einen Schritt nach dem anderen machen.
Chriz ist gerade online   Mit Zitat antworten
Alt 02.01.2009, 23:38  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Hmm, was ist an GIT experimentel ?

Es ist zwar im Vergleich zu SVN und CVS vielleicht "jung" aber das sind wohl die meisten verteilten Versionskontrollsystemen (Bazaar, Mercurial).

Allerdings würde ich Bazaar, Mercurial und Git wohl alle als stable bezeichnen.

@Mods
Ich denke fast der Thread wäre woanders besser aufgehoben, hat imho nichts mit PHP zu tun

Geändert von robo47 (02.01.2009 um 23:43 Uhr).
robo47 ist offline   Mit Zitat antworten
Alt 03.01.2009, 01:52  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Git – Wikipedia
Zitat:
Auf Microsoft Windows läuft es entweder mit der Hilfe der Cygwin-Umgebung oder mit Msysgit.
Das scheint mir halt was für Linux-Geeks zu sein. SVN ist halt weiter verbreitet und dadurch auch besser unterstützt: TortoiseSVN, Subclipse, ..

Das wär wie einem Programmieranfänger jetzt Ruby (on Rails) zu empfehlen. Meine Meinung
Chriz ist gerade online   Mit Zitat antworten
Alt 30.01.2009, 19:21  
eXo
Neuer Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 1
eXo befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

im svn gibt es sogennante hooks mit denen können Aktionen vor und/oder nach einem commit ausgelöst werden.

Ich habe für diese Problem was Du oben beschreibst eine post-commit.bat geschrieben die automatisch den webserver checkout updatet.

Code:
::
:: Immer vollen Pfad setzen da commits sonst nicht laufen
::
:: CALL update.bat %1 %2 ::usw. fuer auslösen weiterer jobs
::
SET REPOS=%1
SET REV=%2
SET SVN_DIR=D:\svn\bin
SET SVN=%SVN_DIR%\svn.exe

SET UPDATE_DIR2=D:\workspace\projektxyz
SET HOOK_DIR=D:\svn\Archiv\hooks
SET LOGFILE=%HOOK_DIR%\post-commit.log
::-----------------------------
:: Test -->
::For /F "tokens=1" %%i in ('%SVN_DIR%\svnlook author -r %REV% %REPOS%') Do @Set AUTHOR=%%i
::
echo %date% - %time% - %1 (Rev. %2) >> %LOGFILE%
::%SVN% update %UPDATE_DIR% >> %LOGFILE%
%SVN% update %UPDATE_DIR2% >> %LOGFILE%

MfG
eXo
eXo ist offline   Mit Zitat antworten
Alt 30.01.2009, 21:16  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
::For /F "tokens=1" %%i in ('%SVN_DIR%\svnlook author -r %REV% %REPOS%') Do @Set AUTHOR=%%i
I love bash!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
für privat: PHP Entwicklung in Indien ? mrmojo Off-Topic Diskussionen 5 23.11.2008 18:38
Projekt sucht für Teilbereiche Schüler o.ä. für PHP OOP Entwicklung gegen Bezahlung mrmojo Beitragsarchiv 0 20.11.2008 23:41
Literatur zur Entwicklung von Enterprise Projekten gesucht Nadir PHP-Fortgeschrittene 20 18.06.2008 21:46
Gemeinsame Entwicklung: ServerOS im Script auslesen HStev PHP Tipps 2008 3 28.08.2007 12:25
WEB Entwicklung & mehrere Programmierer Server, Hosting und Workstations 6 02.12.2006 22:48
"Die virtuelle Welt" sucht Programmierer Beitragsarchiv 12 08.12.2005 09:49
Suche Partner zur Entwicklung eines Portals Beitragsarchiv 3 03.04.2005 19:05
[Erledigt] Schnittstelle Entwicklung PHP-Fortgeschrittene 5 04.11.2004 18:02
Negative entwicklung Off-Topic Diskussionen 196 24.10.2004 19:33
Coder für Entwicklung eines Online Fussball Managers Beitragsarchiv 16 20.09.2004 10:46
Macht Entwicklung phpGTK Sinn? PHP Tipps 2004 9 24.06.2004 09:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php versionskontrolle, versionskontrolle php, svn \ist nicht unter versionskontrolle\, php versionskontrollsystem, versionskontrolle auf webserver, programmieranfänger \ruby on rails\, versionskontrolle für php, git php projekte, php entwickler versionskontorlle, versionskontrollsystem php, git php maven, einfache versionskontrolle php, bazaar deutsch versionsverwaltung, deutsche version bazaar versionsverwaltung, bazaar versionskontrolle forum, svn commit \ist nicht unter versionskontrolle\, svn merge \ist nicht unter versionskontrolle\, php projekt versionskontrolle, \ist nicht unter versionskontrolle\, versionskontrolle php projekt

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum