From 6565a6838b39ff0b0572cfa7cb21980dc64c6fec Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sun, 1 Jun 2025 23:26:41 +0200 Subject: [PATCH] Add script to reword first commit in rebase sequence on Windows --- rebase-sequence-windows.js.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 rebase-sequence-windows.js.js diff --git a/rebase-sequence-windows.js.js b/rebase-sequence-windows.js.js new file mode 100755 index 0000000..54a14c4 --- /dev/null +++ b/rebase-sequence-windows.js.js @@ -0,0 +1,34 @@ +#!/usr/bin/env node +// ───────────────────────────────────────────────── +// rebase-sequence-windows.js +// Dieses Skript wird von Git (als GIT_SEQUENCE_EDITOR) aufgerufen. +// Git übergibt die "todo"-Datei als erstes Argument (process.argv[2]). +// Wir ersetzen dort "pick ..." in der ersten Zeile durch "reword ...". +// ───────────────────────────────────────────────── + +const fs = require('fs'); + +// Git ruft den Editor so auf: +// node rebase-sequence-windows.js +// In process.argv ist: +// [0] = Pfad zur Node‐Executable +// [1] = Pfad zu diesem Skript +// [2] = Pfad zur temporären Todo-Datei +const todoFile = process.argv[2]; +if (!todoFile) { + console.error('Usage: rebase-sequence-windows.js '); + process.exit(1); +} + +try { + const content = fs.readFileSync(todoFile, 'utf8').split(/\r?\n/); + if (content.length > 0 && content[0].startsWith('pick ')) { + content[0] = content[0].replace(/^pick /, 'reword '); + } + fs.writeFileSync(todoFile, content.join('\n'), 'utf8'); +} catch (err) { + console.error('Fehler beim Bearbeiten der Rebase-TODO-Datei:', err); + process.exit(1); +} + +process.exit(0); \ No newline at end of file