From 4c437cbea26506958c226e9fa1ab764a869e5b1f Mon Sep 17 00:00:00 2001 From: hugo Date: Mon, 16 Feb 2026 11:29:59 +0100 Subject: [PATCH] fix: better handling of gitignore (once) --- src/main/engine/GitEngine.ts | 4 +++- src/renderer/components/GitSidebar/GitSidebar.tsx | 2 -- tests/engine/GitEngine.test.ts | 4 ++-- tests/renderer/components/GitSidebar.test.tsx | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/engine/GitEngine.ts b/src/main/engine/GitEngine.ts index 2e8706e..216814e 100644 --- a/src/main/engine/GitEngine.ts +++ b/src/main/engine/GitEngine.ts @@ -135,7 +135,7 @@ export class GitEngine { } private async existingStageTargets(projectPath: string): Promise { - const targets = ['posts', 'media', 'meta', '.gitattributes']; + const targets = ['posts', 'media', 'meta', 'thumbnails', '.gitattributes', '.gitignore']; const existing: string[] = []; for (const target of targets) { @@ -383,6 +383,8 @@ export class GitEngine { } } + await this.ensureGitignore(projectPath); + const stageTargets = await this.existingStageTargets(projectPath); if (stageTargets.length === 0) { emitProgress('staging-files', 75, 'Staging project files...', 'no target files found'); diff --git a/src/renderer/components/GitSidebar/GitSidebar.tsx b/src/renderer/components/GitSidebar/GitSidebar.tsx index 6d248d9..433c9e2 100644 --- a/src/renderer/components/GitSidebar/GitSidebar.tsx +++ b/src/renderer/components/GitSidebar/GitSidebar.tsx @@ -49,8 +49,6 @@ export const GitSidebar: React.FC = () => { return; } - await window.electronAPI.git.ensureGitignore(resolvedProjectPath); - const repoState = await window.electronAPI.git.getRepoState(resolvedProjectPath); setIsRepo(repoState.isRepo); setCurrentBranch(repoState.currentBranch || null); diff --git a/tests/engine/GitEngine.test.ts b/tests/engine/GitEngine.test.ts index 747a274..f0dc80d 100644 --- a/tests/engine/GitEngine.test.ts +++ b/tests/engine/GitEngine.test.ts @@ -294,8 +294,8 @@ describe('GitEngine', () => { expect(mockRaw).toHaveBeenCalledWith(['lfs', 'track', '*.tiff']); expect(mockRaw).toHaveBeenCalledWith(['lfs', 'track', '*.bmp']); expect(mockRaw).toHaveBeenCalledWith(['lfs', 'track', '*.ico']); - expect(mockAdd).toHaveBeenNthCalledWith(1, ['posts', 'media', 'meta', '.gitattributes']); - expect(mockAdd).toHaveBeenNthCalledWith(2, ['--renormalize', 'posts', 'media', 'meta', '.gitattributes']); + expect(mockAdd).toHaveBeenNthCalledWith(1, ['posts', 'media', 'meta', 'thumbnails', '.gitattributes', '.gitignore']); + expect(mockAdd).toHaveBeenNthCalledWith(2, ['--renormalize', 'posts', 'media', 'meta', 'thumbnails', '.gitattributes', '.gitignore']); expect(mockCommit).toHaveBeenCalledWith('initial commit'); expect(mockAddRemote).not.toHaveBeenCalled(); }); diff --git a/tests/renderer/components/GitSidebar.test.tsx b/tests/renderer/components/GitSidebar.test.tsx index b56f9d5..3a00d9b 100644 --- a/tests/renderer/components/GitSidebar.test.tsx +++ b/tests/renderer/components/GitSidebar.test.tsx @@ -35,12 +35,12 @@ describe('GitSidebar', () => { }; }); - it('checks gitignore defaults when sidebar loads', async () => { + it('does not modify gitignore when sidebar loads', async () => { render(); await screen.findByRole('button', { name: /initialize git/i }); - expect((window as any).electronAPI.git.ensureGitignore).toHaveBeenCalledWith('/repo/path'); + expect((window as any).electronAPI.git.ensureGitignore).not.toHaveBeenCalled(); }); it('shows Initialize Git button when active project is not a git repository', async () => {