Files
ClaudeProjectManager/DUPLICATE_ANALYSIS.md
Claude Project Manager 4dab418f2f Initial commit
2025-07-09 22:10:42 +02:00

186 Zeilen
5.2 KiB
Markdown

# 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)
```python
def manage_branches(self, project):
messagebox.showinfo("Branches", "Branch management coming soon")
```
- **Typ**: Placeholder
- **Funktionalität**: Zeigt nur Info-Dialog
### Zweite Version (Zeile 2336)
```python
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)
```python
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)
```python
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)
```python
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)
```python
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**
```python
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)
```python
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)
```python
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**
```python
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:
```python
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:
3. 🔄 `test_gitea_connection` - Features beider Versionen kombinieren
4. 🔄 `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)