From e7fbaadf5e5832a95879b441e3763419731d6f57 Mon Sep 17 00:00:00 2001 From: Christoph Brandau Date: Mon, 17 Aug 2026 22:02:46 +0200 Subject: [PATCH] build(release): bump to 2026.8.5 and update UI icons This release bumps version numbers to 2026.8.5 across all manifests and docs and includes UI refinements. The status panel now uses lucide folder icons for tree view and folders, replacing the previous icons and CSS. - Replace the tree view icon with lucide FolderTree in status panel - Use Folder and FolderOpen icons for expanded/collapsed folders - Bump version to 2026.8.5 in all manifests and changelog --- CHANGELOG.md | 28 +++++++++++++++++ PKGBUILD-bin | 2 +- package-lock.json | 4 +-- package.json | 2 +- src-tauri/tauri.conf.json | 2 +- src/app.css | 43 +-------------------------- src/lib/components/HelpOverlay.svelte | 30 +++++++++++++++++++ src/lib/components/StatusPanel.svelte | 9 ++++-- 8 files changed, 70 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8304910..281ad6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,33 @@ All notable user-facing changes to Gitty are documented in this file. The project uses calendar-style versions in the form `YYYY.M.PATCH`. +## [2026.8.5] - 2026-08-17 + +### Added + +- Integrated Git LFS management now detects the available extension and the + repository setup, shows tracked patterns and checkout objects, and provides + actions for local activation, tracking and untracking patterns, downloading + objects, and pruning the local cache. Desktop installers bundle Git LFS, + while Arch packages declare it as a dependency. +- The Changes panel now offers a List/Tree switch. Tree view groups staged and + unstaged files into independently collapsible folders while retaining all + existing file actions. +- Gitty can open a repository directly at startup through the `--repo PATH` or + `--repo=PATH` command-line argument. + +### Changed + +- A successful Git pull now detects repositories that use LFS and downloads + the required LFS objects automatically with the same remote and credentials. +- Unstaged and staged changes use an equal-width side-by-side layout with + independent scrolling, directional stage/unstage actions, and a responsive + vertical fallback. The List/Tree switch is centered above both areas. +- Controls and surfaces use a more consistent square visual language while + circular status markers, avatars, and branch shapes remain recognizable. +- The built-in German and English help now includes Git LFS setup, tracking, + troubleshooting, and everyday workflow guidance. + ## [2026.8.4] - 2026-08-15 ### Added @@ -180,6 +207,7 @@ The project uses calendar-style versions in the form `YYYY.M.PATCH`. [2026.07.22]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.22 [2026.07.21]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.21 [2026.7.20]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.20 +[2026.8.5]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.5 [2026.8.4]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.4 [2026.8.3]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.3 [2026.8.2]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.2 diff --git a/PKGBUILD-bin b/PKGBUILD-bin index 6c145c7..f5c80ad 100644 --- a/PKGBUILD-bin +++ b/PKGBUILD-bin @@ -1,7 +1,7 @@ # Maintainer: Christoph Brandau pkgname=gitty-desktop-bin -pkgver=2026.8.4 +pkgver=2026.8.5 pkgrel=1 pkgdesc="A lightweight, modern Git client built with Tauri (prebuilt Arch package)" arch=('x86_64') diff --git a/package-lock.json b/package-lock.json index d0e808a..e9a58c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gitty", - "version": "2026.8.4", + "version": "2026.8.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gitty", - "version": "2026.8.4", + "version": "2026.8.5", "dependencies": { "@lucide/svelte": "^1.21.0", "@tailwindcss/vite": "^4.3.1", diff --git a/package.json b/package.json index 79c51b8..c2989e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gitty", - "version": "2026.8.4", + "version": "2026.8.5", "private": true, "type": "module", "scripts": { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 5d60aa2..cf7fe17 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Gitty", - "version": "2026.8.4", + "version": "2026.8.5", "identifier": "com.gitty", "build": { "beforeDevCommand": "npm run prepare:lfs && npm run dev", diff --git a/src/app.css b/src/app.css index f905625..0237ca3 100644 --- a/src/app.css +++ b/src/app.css @@ -6245,26 +6245,6 @@ input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 3px color-mix(in s .status-view-icon.list-icon { background: repeating-linear-gradient(to bottom, currentColor 0 1px, transparent 1px 4px); } -.status-view-icon.tree-icon::before { - content: ""; - position: absolute; - top: 1px; - left: 1px; - width: 3px; - height: 3px; - background: currentColor; - box-shadow: 8px 0 0 currentColor, 8px 7px 0 currentColor; -} -.status-view-icon.tree-icon::after { - content: ""; - position: absolute; - top: 2px; - bottom: 1px; - left: 2px; - width: 8px; - border-bottom: 1px solid currentColor; - border-left: 1px solid currentColor; -} .status-panel { container-type: inline-size; } .status-lanes { display: grid; @@ -6407,28 +6387,7 @@ input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 3px color-mix(in s transition: transform 120ms ease; } .status-tree-chevron.expanded { transform: rotate(45deg) translate(-1px, -1px); } -.status-folder-icon { - position: relative; - width: 14px; - height: 10px; - margin-top: 2px; - border: 1px solid currentColor; - border-radius: 2px; - color: var(--color-primary); - background: color-mix(in srgb, var(--color-primary) 7%, transparent); -} -.status-folder-icon::before { - content: ""; - position: absolute; - top: -4px; - left: 1px; - width: 7px; - height: 4px; - border: 1px solid currentColor; - border-bottom: 0; - border-radius: 2px 2px 0 0; -} -.status-folder-icon.open { background: color-mix(in srgb, var(--color-primary) 14%, transparent); } +.status-folder-row .status-folder-lucide { color: var(--color-accent); } .status-folder-row strong { overflow: hidden; color: inherit; diff --git a/src/lib/components/HelpOverlay.svelte b/src/lib/components/HelpOverlay.svelte index bb60337..d956186 100644 --- a/src/lib/components/HelpOverlay.svelte +++ b/src/lib/components/HelpOverlay.svelte @@ -1520,6 +1520,21 @@ label: "Neu in Gitty", description: "Änderungen seit der letzten veröffentlichten Version und wichtige Neuerungen früherer Releases.", sections: [ + { + id: "changelog-2026-8-5", + title: "Version 2026.8.5", + summary: "Dieses Release integriert Git LFS direkt in Gitty und macht den Staging-Bereich bei vielen geänderten Dateien deutlich übersichtlicher.", + steps: [ + "Git LFS ist direkt über das Synchronisierungsmenü erreichbar. Gitty prüft die verfügbare Erweiterung, die Repository-Konfiguration und den Pre-Push-Hook und zeigt an, ob Git LFS mit Gitty gebündelt oder systemweit installiert ist.", + "LFS-Muster lassen sich hinzufügen, als Lockable markieren und wieder entfernen. Der Dialog zeigt außerdem die LFS-Dateien des aktuellen Checkouts, lädt fehlende Objekte und bereinigt nicht mehr benötigte Cache-Objekte.", + "Nach einem erfolgreichen Pull erkennt Gitty LFS-Repositories automatisch und lädt die benötigten LFS-Objekte mit demselben Remote und denselben Zugangsdaten. Ein zweiter manueller Pull ist nicht erforderlich.", + "Unstaged und Staged stehen jetzt gleich breit nebeneinander, scrollen unabhängig voneinander und verwenden eindeutige Pfeile für Stage und Unstage. Bei schmalen Fenstern wechselt die Darstellung automatisch untereinander.", + "Der mittig angeordnete List-/Tree-Umschalter zeigt Änderungen entweder als kompakte Liste oder gruppiert sie in beiden Bereichen nach aufklappbaren Ordnern.", + "Repositories können beim Start über --repo PATH oder --repo=PATH direkt geöffnet werden. Relative Pfade werden dabei aufgelöst.", + "Quadratische Bedienelemente und Flächen vereinheitlichen das Erscheinungsbild; runde Statuspunkte, Avatare und charakteristische Branch-Markierungen bleiben erhalten.", + ], + note: "Von Git LFS erzeugte Änderungen an .gitattributes gehören zum Repository und müssen wie jede andere Änderung committed werden. Bereits vorhandene Git-Historie wird durch neue Tracking-Muster nicht rückwirkend umgeschrieben.", + }, { id: "changelog-2026-8-4", title: "Version 2026.8.4", @@ -1620,6 +1635,21 @@ label: "What's new", description: "Changes since the latest published version and notable additions from earlier releases.", sections: [ + { + id: "changelog-2026-8-5", + title: "Version 2026.8.5", + summary: "This release integrates Git LFS directly into Gitty and makes the staging area much easier to navigate when many files have changed.", + steps: [ + "Git LFS is available directly from the Sync menu. Gitty checks the available extension, repository configuration, and pre-push hook, and reports whether Git LFS is bundled with Gitty or installed system-wide.", + "LFS patterns can be added, marked as Lockable, and removed again. The dialog also lists LFS files in the current checkout, downloads missing objects, and prunes unused cache objects.", + "After a successful pull, Gitty automatically detects LFS repositories and downloads the required LFS objects with the same remote and credentials. A second manual pull is no longer required.", + "Unstaged and Staged now sit side by side at equal width, scroll independently, and use clear arrows for Stage and Unstage. Narrow windows automatically fall back to a vertical layout.", + "The centered List/Tree switch presents changes either as a compact list or groups them into collapsible folders in both areas.", + "Repositories can be opened directly at startup with --repo PATH or --repo=PATH. Relative paths are resolved automatically.", + "Square controls and surfaces make the interface more consistent while circular status markers, avatars, and characteristic branch shapes remain intact.", + ], + note: "Changes to .gitattributes created by Git LFS belong to the repository and must be committed like any other change. New tracking patterns do not rewrite existing Git history retroactively.", + }, { id: "changelog-2026-8-4", title: "Version 2026.8.4", diff --git a/src/lib/components/StatusPanel.svelte b/src/lib/components/StatusPanel.svelte index fac225e..61d4796 100644 --- a/src/lib/components/StatusPanel.svelte +++ b/src/lib/components/StatusPanel.svelte @@ -3,6 +3,9 @@ ArrowLeft, ArrowRight, FileDiff, + Folder, + FolderOpen, + FolderTree, RotateCcw, } from "@lucide/svelte"; import iconUrl from "../../../src-tauri/icons/icon.png"; @@ -285,7 +288,7 @@ List
@@ -335,7 +338,7 @@ {#if row.kind === "folder"} @@ -392,7 +395,7 @@ {#if row.kind === "folder"}