5.2 KiB
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
2. link_to_gitea (Zeilen 1378 & 2392)
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
- Parameter: Erste Version erfordert
project, zweite ist optional - Funktionalität: Zweite Version hat erweiterte Features
- 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
.gitVerzeichnis 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
- Vorprüfungen: Erste Version prüft Git-Verzeichnis
- Debug-Info: Zweite Version zeigt .git/config
- 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):
- ❌
manage_branches(Zeile 1374) - Nur Placeholder - ❌
link_to_gitea(Zeile 1378) - Nur Placeholder
Zusammenführung erforderlich:
- 🔄
test_gitea_connection- Features beider Versionen kombinieren - 🔄
verify_repository_on_gitea- Vorprüfungen und Debug-Info kombinieren
Priorität:
- Hoch: Placeholder löschen (einfach, keine Risiken)
- Mittel: Methoden zusammenführen (mehr Aufwand, Tests nötig)