Upload via GUI (85 Dateien)

This commit is contained in:
2026-10-22 09:13:21 +00:00
parent 2ad8777311
commit f4c16b173f
23 changed files with 1982 additions and 539 deletions
+69 -1
View File
@@ -1250,6 +1250,73 @@ tr:last-child td { border-bottom: none; }
</div>
</div>
<div class="chapter">
<h2 class="chapter-heading"><span class="num">12a</span> Uploads: Abbrechen, Wiederholen &amp; Verlauf</h2>
<div class="feature-grid">
<div class="feature-cell">
<div class="icon">⏹️</div>
<h4>Abbrechen</h4>
<p>Während eines Uploads, Ordner-Downloads oder Batch-Clones erscheint im Fortschrittsbalken oben der Knopf <kbd>Abbrechen (Esc)</kbd>. Du kannst auch einfach <kbd>Esc</kbd> drücken, solange kein Dialog offen ist.</p>
</div>
<div class="feature-cell">
<div class="icon">⏱️</div>
<h4>Fortschritt</h4>
<p>Der Balken zeigt Dateien, übertragene MB und eine geschätzte Restzeit, zum Beispiel <em>Upload: 48/120 Dateien · 19,2 MB / 48,0 MB · noch ca. 5 Sek.</em> Die Restzeit ist eine Hochrechnung und erscheint erst nach einigen Sekunden.</p>
</div>
<div class="feature-cell">
<div class="icon">🔁</div>
<h4>Nur Fehlgeschlagene wiederholen</h4>
<p>Schlagen bei einem Upload einzelne Dateien fehl, fragt die App nach und sendet nur diese erneut (bis zu dreimal). Bereits hochgeladene Dateien bleiben unberührt.</p>
</div>
<div class="feature-cell">
<div class="icon">⏸️</div>
<h4>Pausieren und Fortsetzen</h4>
<p>Neben <kbd>Abbrechen</kbd> im Fortschrittsbalken gibt es <kbd>Pausieren</kbd>. Die Übertragung hält zwischen den Schritten an (ein laufender Clone, Push oder ein Paket wird noch fertig) und läuft mit <kbd>Fortsetzen</kbd> weiter. Das geht auch über das Tray-Menü.</p>
</div>
<div class="feature-cell">
<div class="icon">🕘</div>
<h4>Upload-Verlauf</h4>
<p>Über <kbd>🕘 Verlauf</kbd> in der Toolbar siehst du die letzten 100 Uploads mit Datum, Repo, Dateizahl, Dauer und Ergebnis. Filtere nach Erfolgreich, Abgebrochen oder Fehler und suche nach einem Repo-Namen. Ein Klick auf einen Eintrag öffnet das Repo, <kbd>CSV exportieren</kbd> speichert die gefilterte Liste für Excel.</p>
</div>
<div class="feature-cell">
<div class="icon">🛡️</div>
<h4>Zugangsdaten-Sperre</h4>
<p>Dateien wie <code>credentials.json</code>, <code>.env</code>, private Schlüssel oder Keystores werden auf allen Upload-Wegen ausgelassen, auch wenn du sie in der Vorschau nicht abgewählt hast. Die App meldet, welche Dateien fehlen. Vorlagen wie <code>.env.example</code> bleiben erlaubt. Unter Einstellungen → Uploads lässt sich die Sperre abschalten, bei öffentlichen Repos solltest du sie aktiv lassen.</p>
</div>
<div class="feature-cell">
<div class="icon">🔔</div>
<h4>Windows-Meldung</h4>
<p>Endet ein Upload, während die App im Tray versteckt, minimiert oder nicht im Vordergrund ist, meldet Windows das Ergebnis. Ein Klick auf die Meldung öffnet die App. Abgebrochene Uploads melden nichts. Unter Einstellungen → Uploads lässt es sich abschalten.</p>
</div>
</div>
<div class="warn-box">
<strong>Grenzen des Abbrechens:</strong> Ein Push, der schon auf dem Server angekommen ist, lässt sich nicht zurücknehmen. Beim Upload über die Gitea-API bleiben Pakete, die schon als Commit verbucht sind, im Repo. Eine Migration kann nicht abgebrochen werden, weil der Server sie selbst ausführt. Das Repo-Backup hat seinen eigenen Abbrechen-Knopf.
</div>
<div class="card">
<div class="card-title">📦 Release für den Updater veröffentlichen</div>
<p>Der Updater liest die Releases des Repos <code>M_Viper/Git-Manager-Gui</code> auf Gitea. So veröffentlichst du eine neue Version:</p>
<ol class="steps">
<li>Baue den Installer mit <code>npm run build</code>. Dabei entstehen <code>Git-Manager-GUI-Setup-X.Y.Z.exe</code> und die Prüfsummen-Datei <code>.sha256</code> in <code>dist/</code>.</li>
<li>Öffne in der Repo-Ansicht <strong>🚀 Releases</strong> und lege ein neues Release an. Wähle bei <strong>Release Asset</strong> den Installer.</li>
<li>Die App berechnet die SHA-256-Prüfsumme, gleicht sie mit der <code>.sha256</code>-Datei ab und füllt Tag und Name aus dem Dateinamen vor. Stimmen die Prüfsummen nicht überein, wird nichts veröffentlicht.</li>
<li>Beim Erstellen prüft die App, dass der Tag eine Version wie <code>v2.2.1</code> ist, es ihn noch nicht gibt und er neuer ist als das letzte Release, sonst würde der Updater ihn nicht anbieten.</li>
<li>Die Prüfsumme wird im Format, das der Updater liest, in den Release-Text geschrieben, und Installer und <code>.sha256</code> werden hochgeladen.</li>
</ol>
</div>
<div class="card">
<div class="card-title">📄 .gitignore im Repo anlegen</div>
<ol class="steps">
<li>Öffne ein Repository und klicke in der Repo-Leiste auf <strong>📄 .gitignore</strong>.</li>
<li>Wähle die Vorlagen: Node.js, .NET, Electron, Python, Java, PHP, Unity. Der allgemeine Teil (Betriebssystem, Editor, <code>.env</code>, Logs) ist immer dabei.</li>
<li>Mit <strong>Anlegen</strong> wird die Datei ins Repo geschrieben. Existiert schon eine, fragt die App vor dem Ersetzen nach.</li>
</ol>
</div>
</div>
<!-- ──────────────────────────────────────────── -->
<div class="part-break">
<div class="part-label">TEIL F</div>
@@ -1276,6 +1343,7 @@ tr:last-child td { border-bottom: none; }
<tr><td>🕐 Zuletzt geöffnet</td><td>An</td><td>Verlaufs-Sidebar ein-/ausblenden</td></tr>
<tr><td>⊞ Kompakt-Modus</td><td>Aus</td><td>Verdichtete Darstellung für kleinere Bildschirme</td></tr>
<tr><td>🎨 Farbige Datei-Icons</td><td>An</td><td>Unterschiedliche Farben je Dateityp im Explorer</td></tr>
<tr><td>✨ Startanimation</td><td>An</td><td>Beim Öffnen dreht sich das Logo, danach baut sich das Fenster von der Mitte aus auf. Beim Start mit Windows im Tray gibt es sie nie</td></tr>
<tr><td>🚀 Mit Windows starten</td><td>Aus</td><td>App miniert im System-Tray beim Windows-Login starten</td></tr>
</table>
@@ -1303,7 +1371,7 @@ tr:last-child td { border-bottom: none; }
<tr><td><kbd>Ctrl</kbd>+<kbd>K</kbd></td><td>Fuzzy-Suche im Repository-Grid fokussieren</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>S</kbd></td><td>Aktive Datei im Editor speichern</td></tr>
<tr><td><kbd>Ctrl</kbd>+<kbd>F</kbd></td><td>Suchleiste im Editor öffnen</td></tr>
<tr><td><kbd>Escape</kbd></td><td>Suchleiste im Editor schließen</td></tr>
<tr><td><kbd>Escape</kbd></td><td>Suchleiste im Editor schließen · laufenden Upload/Download abbrechen (wenn kein Dialog offen ist)</td></tr>
<tr><td><kbd>Rechtsklick</kbd></td><td>Kontextmenü auf Repository-Karte oder Sidebar-Eintrag</td></tr>
<tr><td><kbd>Drag</kbd> raus</td><td>Datei/Ordner/Repo herunterladen</td></tr>
<tr><td><kbd>Drag</kbd> rein</td><td>Datei/Ordner in aktuelles Verzeichnis hochladen</td></tr>