Files
ClaudeProjectManager-main/DUPLICATE_ANALYSIS.md
Claude Project Manager ec92da8a64 Initial commit
2025-07-07 22:11:38 +02:00

5.2 KiB

Duplicate Methods Analysis - main_window.py

Übersicht

Analyse der 4 duplizierten Methoden-Paare in gui/main_window.py.

1. manage_branches (Zeilen 1374 & 2336)

Erste Version (Zeile 1374)

def manage_branches(self, project):
    messagebox.showinfo("Branches", "Branch management coming soon")
  • Typ: Placeholder
  • Funktionalität: Zeigt nur Info-Dialog

Zweite Version (Zeile 2336)

def manage_branches(self, project):
    # 55 Zeilen Code
    # Vollständige Implementierung mit:
    # - Branch-Auflistung
    # - Branch erstellen
    # - Branch wechseln
    # - UI Dialog
  • Typ: Vollständige Implementierung
  • Funktionalität: Komplettes Branch-Management

Empfehlung

Erste Version löschen, zweite behalten

  • Die erste Version ist nur ein Placeholder
  • Die zweite Version ist die fertige Implementierung

Erste Version (Zeile 1378)

def link_to_gitea(self, project):
    messagebox.showinfo("Link to Gitea", "Link functionality coming soon")
  • Typ: Placeholder
  • Funktionalität: Zeigt nur Info-Dialog

Zweite Version (Zeile 2392)

def link_to_gitea(self, project):
    # 64 Zeilen Code
    # Vollständige Implementierung mit:
    # - Repository-Existenz prüfen
    # - Repository erstellen wenn nötig
    # - Remote URL setzen
    # - Fehlerbehandlung
  • Typ: Vollständige Implementierung
  • Funktionalität: Komplette Gitea-Verlinkung

Empfehlung

Erste Version löschen, zweite behalten

  • Die erste Version ist nur ein Placeholder
  • Die zweite Version ist die fertige Implementierung

3. test_gitea_connection (Zeilen 1757 & 2457)

Erste Version (Zeile 1757)

def test_gitea_connection(self, project):
    # 35 Zeilen Code
    # Basis-Implementierung:
    # - Verbindungstest
    # - User-Info anzeigen
    # - Organisationen auflisten
  • Parameter: project (required)
  • Anzeige: Via messagebox.showinfo

Zweite Version (Zeile 2457)

def test_gitea_connection(self, project=None):
    # 98 Zeilen Code
    # Erweiterte Implementierung:
    # - Optional project parameter
    # - Team-Berechtigungen
    # - Projekt-spezifische Git-Info
    # - Repository-Auflistungen
    # - Bessere Fehlerbehandlung
  • Parameter: project=None (optional)
  • Anzeige: Via self._show_scrollable_info

Unterschiede

  1. Parameter: Erste Version erfordert project, zweite ist optional
  2. Funktionalität: Zweite Version hat erweiterte Features
  3. Anzeige: Unterschiedliche Dialog-Methoden

Empfehlung

🔄 Beide Versionen zusammenführen

def test_gitea_connection(self, project=None):
    # Kombinierte Implementierung:
    # - Optional project parameter (von Version 2)
    # - Erweiterte Features (von Version 2)
    # - Robuste Fehlerbehandlung (von beiden)

4. verify_repository_on_gitea (Zeilen 1792 & 2556)

Erste Version (Zeile 1792)

def verify_repository_on_gitea(self, project):
    # 103 Zeilen Code
    # Features:
    # - Git-Repository Vorprüfung
    # - Repository-Status prüfen
    # - Branches vergleichen
    # - Remote-URL Validierung
  • Anzeige: Via messagebox.showinfo
  • Besonderheit: Prüft ob .git Verzeichnis existiert

Zweite Version (Zeile 2556)

def verify_repository_on_gitea(self, project):
    # 100 Zeilen Code
    # Features:
    # - Debug-Info (.git/config Inhalt)
    # - Repository-Status prüfen
    # - Branches vergleichen
    # - Remote-URL Validierung
  • Anzeige: Via self._show_scrollable_info
  • Besonderheit: Zeigt Debug-Informationen

Unterschiede

  1. Vorprüfungen: Erste Version prüft Git-Verzeichnis
  2. Debug-Info: Zweite Version zeigt .git/config
  3. Dialog: Unterschiedliche Anzeige-Methoden

Empfehlung

🔄 Beide Versionen zusammenführen

def verify_repository_on_gitea(self, project):
    # Kombinierte Implementierung:
    # - Git-Verzeichnis Vorprüfung (von Version 1)
    # - Debug-Informationen (von Version 2)
    # - Scrollbare Anzeige (von Version 2)

Aufruf-Analyse

Alle duplizierten Methoden werden vom gitea_operation Method aufgerufen:

def gitea_operation(self, operation_name, project):
    operations = {
        "status": self.show_git_status,
        "push": lambda p: self.push_to_gitea(p),
        "init_push": self.init_and_push_to_gitea,
        "test": self.test_gitea_connection,      # Ruft duplizierte Methode auf
        "verify": self.verify_repository_on_gitea, # Ruft duplizierte Methode auf
        "link": self.link_to_gitea,              # Ruft duplizierte Methode auf
        "branches": self.manage_branches,         # Ruft duplizierte Methode auf
        # ...
    }

Konsolidierungs-Strategie

Sofort löschbar (Placeholder):

  1. manage_branches (Zeile 1374) - Nur Placeholder
  2. link_to_gitea (Zeile 1378) - Nur Placeholder

Zusammenführung erforderlich:

  1. 🔄 test_gitea_connection - Features beider Versionen kombinieren
  2. 🔄 verify_repository_on_gitea - Vorprüfungen und Debug-Info kombinieren

Priorität:

  1. Hoch: Placeholder löschen (einfach, keine Risiken)
  2. Mittel: Methoden zusammenführen (mehr Aufwand, Tests nötig)