Ich kann darauf antworten, wie wir bei der Virya Group arbeiten - unser CTO Marco Dings hat diese in einer Reihe von Artikeln niedergeschrieben: http://magazine.joomla.org/issues/issue-apr-2014/item/1842-practical -Entwicklung-3-Projekt .
Wir verwenden Atlassian-Produkte - Jira, Stash, Confluence usw.
Wir richten unsere Arbeitsumgebung als vhost für jedes Projekt ein - wir arbeiten daran, Skripte zu erstellen, damit es schneller geht. Jeder Entwickler hat also seinen eigenen lokalen "Spielplatz", und wir richten dev.clientsite.com, staging.clientsite.com und dann seine Live-Site clientsite.com ein.
Innerhalb des vhost haben wir ein Verzeichnis - vcs - und das Webstammverzeichnis - www.
Wir verwenden PHPStorm, installieren Joomla im Verzeichnis www und ordnen dies mithilfe von Remote-Hosts dem entsprechenden Webstamm auf dev / staging / live zu.
Für den Client wird im Projekt ein Repository eingerichtet. In dieses Repository werden alle Änderungen eingefügt, die sich gegenüber Vanilla Joomla ändern , sowie alle Erweiterungen, die in irgendeiner Weise, Form oder Form geändert werden, einschließlich Vorlagen.
Diese werden symbolisch vom VCS-Verzeichnis zurück in das WWW-Verzeichnis verknüpft. Die Dateien werden also im VCS-Repository "live" angezeigt, sie werden jedoch im WWW-Ordner als verknüpfte Dateien angezeigt.
Wir verwenden WENIGER mit unserer Vorlagenbasis und folgen einer BEM-Struktur, die wir in einem separaten Repository haben. Dies wird für jedes Projekt geklont und als neue Vorlage sym-verknüpft. Alle kundenspezifischen Anpassungen gelten dann nur für dieses Projekt. Wir können jedoch zukünftige Änderungen an allen unseren Projekten problemlos zusammenführen.
Einige Leute werden die Versionskontrolle der gesamten Site durchführen, es hängt wirklich davon ab, was Sie erreichen möchten. Wir sind daran interessiert, was sich ändert, und wir haben die alleinige Kontrolle darüber. Wir erstellen eine customer-custom.css-Datei, die der Kunde ändern kann, aber alles andere ist tabu.
Wir untersuchen die Versionskontrolle der Datenbank. Wir haben mit einigen Optionen herumgespielt, aber noch nichts gefunden, das alle Kriterien erfüllt.
Wir verwenden eine Reihe von Skripten, um alle oben genannten Funktionen zu automatisieren, die wir im Laufe der Zeit entwickeln und optimieren.
Ich hoffe das hilft!