From 07b97d3baca31e614c5d164bde8719652b0907e0 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 23 May 2025 23:29:03 +0200 Subject: [PATCH] auto-git: [change] main.js --- main.js | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/main.js b/main.js index fe29828..83c4eb2 100644 --- a/main.js +++ b/main.js @@ -484,18 +484,42 @@ app.whenReady().then(() => { // Falls detached, **jetzt erst** alten Branch umbenennen und neuen master erzeugen if (!currentBranch || currentBranch === 'HEAD') { - const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); - const backupBranch = `backup-master-${timestamp}`; - - // Alten master umbenennen (nur falls vorhanden!) - const branches = await git.branchLocal(); - if (branches.all.includes('master')) { - await git.branch(['-m', 'master', backupBranch]); - debug(`Alter master-Branch wurde in ${backupBranch} umbenannt.`); + // HEAD ist detached, prüfe ob HEAD auf dem Tip von master ist! + const headCommit = (await git.revparse(['HEAD'])).trim(); + let masterCommit = null; + let hasMaster = false; + try { + masterCommit = (await git.revparse(['refs/heads/master'])).trim(); + hasMaster = true; + } catch (e) { + masterCommit = null; + hasMaster = false; + } + + if (hasMaster && headCommit === masterCommit) { + // HEAD ist detached, aber zeigt exakt auf master! + await git.checkout('master'); + debug('[autoCommit] HEAD war detached, zeigte aber exakt auf master – jetzt zurück auf master.'); + // **Return nicht vergessen, sonst geht der Branch-Move weiter** + // ----> Das ist die Zeile die du wahrscheinlich vergessen hast! + // Beende hier die Branch-Logik + return; + } + + // Ansonsten wie gehabt: + if (hasMaster) { + // HEAD ist detached, zeigt nicht auf master -> backup + neuer master + const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); + const backupBranch = `backup-master-${timestamp}`; + await git.branch(['-m', 'master', backupBranch]); + debug(`[autoCommit] Alter master in ${backupBranch} umbenannt.`); + await git.checkout(['-b', 'master']); + debug('[autoCommit] Neuer master-Branch erstellt und ausgecheckt.'); + } else { + // Kein master vorhanden (erstmalig) + await git.checkout(['-b', 'master']); + debug('[autoCommit] Kein master-Branch vorhanden, neuer master erstellt.'); } - // Neuer master-Branch - await git.checkout(['-b', 'master']); - debug('Neuer master-Branch erstellt und ausgecheckt.'); } await git.add(['-A']);