Project Lounge - Versions Management

Autoren: Raphael Kalla und André Grötschel (geschrieben im Jahr 2006)

Beschreibung

Das Projekt Lounge sollte eine Webseiten basierte Version Management Verwaltung werden. Dieses Konzept entstand nachdem einige andere Web basierten Programme nicht gut genug gewesen waren. Eines der zuvor getesteten Web basierte Software war Git PHP Glip. Einige Zeit später wurde GitHub und ähnliche Plattformen gegründet und somit wurde das Konzept verworfen.

Überblick

  • Basis: PHP 5 / MySQL
  • Ausgabe über Template System (xhtml,css)
  • Benutzer-/ Gruppenverwaltung - / Rechtesystem (Klasse)
    • beliebig viele Gruppen / Benutzer
    • Gruppen:
      • Projektleiter (erstellt Branches, Zuteilung von Personen)
      • Chefentwickler (komplett Zugriff auf alle Branches)
      • Entwickler (nur Zugriff auf zugewiesene Branches)
      • Tester (nur Leserecht auf zugewiesene Branches)
    • Supergruppe:
      • Admin (Webseiten Verwalter, ernennt SystemOperatoren, Rechte von SysOp)
      • SystemOperator (ernennt Projektleiter, sperrt/erstellt Projekte, gliedert Branches aus)
    • Rechtesystem
      • Zugriff auf Projekte projektnummer - branchnummer - user - Gruppe
      • Projekte Status
        • offen / gesperrt
        • freeze (nur bei offen, lesezugriff)
  • 64bit Dateinamen (Verweise)
  • Projekte
    • intern: VersionNR . branchNR . revision_NR
    • release: VersionNR . Teilnummer . revisionNR (von branch_NR)
    • Beschreibung
    • Startdatum
    • Revisionen als Nummer, Schlüsselwort oder über ein Datum
  • Hauptfunktionen
    • Hauptfunktionen
      • Runterladen (Kopie einer Datei auf Client)
      • Verschieben (Verschieben zwischen Ordnern innerhalb eines Branches)
      • Hinzufügen (Kopie einer Datei auf Server in ein Branch)
      • Löschen (Löschen einer Revision auf dem Server)
      • Umbenennen (Revison einer Datei umbenennen)
    • Versionierte Verzeichnisse/Dateien
      • n.m // n Ganzzahl - m Ganzzahl Patchversion
      • n (Basisdatei basierend auf vorherigen Patch Dateien)
      • m (Patchdatei basierend auf vorherigen basisdatei+patchdateien
      • x (Revisionssprung +|-)
  • Logfiles
    • Versionsgeschichte (hinzufügen, löschen, kopieren, umbenennen)
    • Interneversion > Releaseversion
  • Branches
    • Unterzweige mit neuer Revisionsnummer
  • Arbeitshilfen
    • Verwendung der Schlüsselwortexpansion ($Author$ oder $Date$ und $Revision$) im Quellcode
    • TempLock Copy Modify Merge
      • temporäre Konflikt Versionskontrolle (bei gleichzeitiger Bearbeitung von Dateien)
      • Server Updates mit Hilfe von differenz patch Dateien (damit nicht jede Datei übertragen werden braucht)

Zusatz

  • Bugsystem
    • Basierend auf Releaseversion
    • Eigenschaften: Priorität, Plattform / System, Chefentwickler, Beschreibung, Schweregrad, Status, Reporter, hängt vom Bug x ab
    • Kommentar Funktion
  • Todo Liste
    • Projektleiter / Chefentwickler können Einträge erstellen
    • Zuweisen der Todos an andere Benutzer
    • Kommentar Funktion
  • Projektdiskussion
    • E-Mail Adressen
    • Themenbasiert
    • Projekt / Branch bezogen
    • Einschränkung auf (C)Entwickler / Tester
  • Snapshots
    • automatisch
    • manuell
  • Changelogs von Versionen