55 lines
1.8 KiB
PowerShell
55 lines
1.8 KiB
PowerShell
# Um die .ps1-Datei auszuführen, gib den folgenden Befehl ein:
|
|
# .\git_diff_downgrade_to_zip.ps1
|
|
|
|
# Tags als Variablen deklarieren
|
|
# $tag1 = "v1.0.0" # Ersetze durch deinen ersten Tag
|
|
# $tag2 = "v1.1.0" # Ersetze durch deinen zweiten Tag
|
|
$tag1 = "v1.0.19.1" # Downgrade from this tag
|
|
$tag2 = "v1.0.15" # Downgrade to this tag
|
|
|
|
# Aktuelles Datum und Uhrzeit für den Dateinamen
|
|
$currentDateTime = (Get-Date).ToString("dd.MM.yyyy_HH_mm")
|
|
|
|
# Name der Textdatei mit geänderten Dateien
|
|
$changedFilesList = "changed_files_$currentDateTime.txt"
|
|
|
|
# Führe git diff aus, um die geänderten Dateien zwischen zwei Tags zu ermitteln
|
|
Write-Host "Ermittle geänderte Dateien zwischen $tag1 und $tag2..."
|
|
git diff --name-only $tag1 $tag2 > $changedFilesList
|
|
|
|
# Überprüfe, ob die Textdatei erstellt wurde
|
|
if (-Not (Test-Path $changedFilesList)) {
|
|
Write-Host "Die Liste der geänderten Dateien konnte nicht erstellt werden. Skript wird beendet."
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Liste der geänderten Dateien erstellt: $changedFilesList"
|
|
|
|
# Name der ZIP-Datei mit Datum und Uhrzeit
|
|
$zipFile = "changed_files_$currentDateTime.zip"
|
|
|
|
# Stelle sicher, dass die ZIP-Datei nicht bereits existiert
|
|
if (Test-Path $zipFile) {
|
|
Remove-Item $zipFile
|
|
}
|
|
|
|
# Lade die Dateien aus der Liste
|
|
$files = Get-Content $changedFilesList
|
|
|
|
# Erstelle ein neues ZIP-Archiv
|
|
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
|
$zipArchive = [System.IO.Compression.ZipFile]::Open($zipFile, 'Create')
|
|
|
|
foreach ($file in $files) {
|
|
try {
|
|
# Absolute Pfade erstellen
|
|
$filePath = (Resolve-Path $file).Path
|
|
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipArchive, $filePath, $file)
|
|
} catch {
|
|
Write-Host "Fehler beim Hinzufügen der Datei: $file"
|
|
}
|
|
}
|
|
|
|
$zipArchive.Dispose()
|
|
Write-Host "ZIP-Datei erstellt: $zipFile"
|