1
0

auto-git:

[change] main.js
This commit is contained in:
2025-05-23 23:23:10 +02:00
parent 09f09ad3da
commit 55eca1dbaf

62
main.js
View File

@@ -479,36 +479,42 @@ app.whenReady().then(() => {
currentBranch = (await git.revparse(['--abbrev-ref', 'HEAD'])).trim();
} catch {
currentBranch = null;
} //mach kein fass auf
if (!currentBranch || currentBranch === 'HEAD') {
// HEAD ist detached
const headCommit = (await git.revparse(['HEAD'])).trim();
let masterCommit = null;
try {
masterCommit = (await git.revparse(['refs/heads/master'])).trim();
} catch (e) {
masterCommit = null; // master existiert nicht
}
if (masterCommit && headCommit === masterCommit) {
// HEAD ist detached, zeigt aber auf den Master-Tip!
await git.checkout('master');
debug('[autoCommit] HEAD war detached, aber auf master-Tip zurück zu master.');
} else {
// Dein altes Branching, nur wenn wirklich nötig:
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
const backupBranch = `backup-master-${timestamp}`;
const branches = await git.branchLocal();
if (branches.all.includes('master')) {
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.');
}
}
if (!currentBranch || currentBranch === 'HEAD') {
// HEAD ist detached
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; // master existiert nicht
hasMaster = false;
}
if (hasMaster && headCommit === masterCommit) {
// HEAD ist detached, zeigt aber auf den master-Tip!
// -> einfach zurück zu master (kein Umbenennen, kein Neuanlegen!)
await git.checkout('master');
debug('[autoCommit] HEAD war detached, aber auf master-Tip zurück zu master.');
} else if (hasMaster && headCommit !== masterCommit) {
// HEAD ist detached, aber zeigt NICHT auf master-Tip:
// -> master-Branch wird zu backup gemacht und ein neuer master-Branch auf HEAD erstellt
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 if (!hasMaster) {
// Es gibt keinen master-Branch (z.B. initiales Repo)
await git.checkout(['-b', 'master']);
debug('[autoCommit] Kein master-Branch vorhanden, neuer master erstellt.');
}
}
await git.add(['-A']);
debug('Alle Änderungen gestaged.');
await git.commit(message || 'test');