NWE 2016-12-27: Entwurf / Diskussiongrundlage
Richtlinien
- Entsprechend dieser Best Practices: http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html ("Branch when needed"-System)
- Ein separates Repository pro (logisch zusammenhängendem) Projekt
- ein "zusammenhängendes Projekt" können z.b. mehrere Visual Studio-Solutions sein, welche die gleiche easyLogic-Datenbank nutzen (Assembly, externe Prozesse, ggfs. Website )
- Server- u. clientseitige Projekte in getrennte Repositories
- Projekte von großen Kunden, in denen es mehrere Assemblies für eine gemeinsame easyLogic-Datenbank gibt, ggfs. ebenfalls in separate Repositories aufteilen
- Namensschema für Repository:
- kunde-projekt-[unterprojekt|plattform]-[client|server|...]
Zum Beispiel:- dvv-archiv
- trenz-ticketsystem
- trenz-el-accountverwaltung
- trenz-el-client
- maritim-pia-ios-client
- Repository-Namen vollständig in kleinbuchstaben
- Trennzeichen im Repositorynamen: - (Bindestrich)
- kunde-projekt-[unterprojekt|plattform]-[client|server|...]
- Repository-Layout (s. https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-repository.html#tsvn-repository-layout):
- trunk (=> "Entwicklungsstand", lokal u. auf einer DEV-Datenbank)
- branches
- test (ggfs.)
- live (falls es nur jeweils EINEN live-Stand gibt - z.b. bei Website-Projekten mit einer DEV- u. einer LIVE-Umgebung)
- 3.13 - 3.14 - etc. (release-branches pro releaster Version, v.a. für Client-Projekte (mobile Apps, easyLogic-Clients, ..)
- featureXYZ (Featurebranch, oft für langfristige Entwicklung)
- tags (markieren einen Release-Stand, ggfs. zukünftig automatisiert erzeugen)
- Checkout und lokale Verzeichnisstruktur:
Pro Trunk oder Branch wird eine eigene Working Copy ausgecheckt.TRUNK - in ein Verzeichnis mit dem Projektnamen (ohne "trunk")
BRANCHES - in ein Verzeichnis mit dem Projektnamen mit angehängtem "_branchname" (Trennzeichen: Unterstrich)
Beispiel - folgende Repositorystruktur:
- /trenz-ticketsystem
- /trunk
- /branches/live
- /branches/3.14
- /trenz-ticketsystem
Wird lokal ausgecheckt in zwei separate Working Copies:
- D:\SVN\trenz-ticketsystem\ (trunk)
- D:\SVN\trenz-ticketsystem_live\ (branches/live)
- D:\SVN\trenz-ticketsystem_3.14\ (branches/3.14)
- Ein Repository kann sich unterhalb von "trunk" bzw. "branches/branchname" sinnvoll weiter untergliedern, z.B. in:
- _dev (*.elaproj, replace.bat, ...)
- assembly
- client
- doc
- libs
- src
- server
- web
- tests
- tools
- ...
---
Neue Struktur:
Arbeitsgrundlage / noch unvollständiger Entwurf.
Rot markiert = Verzeichnisse, die m.E. nicht mehr in Benutzung sind und archiviert werden können.