This commit is contained in:
Edward R. Gonzalez 2024-10-18 16:30:32 -04:00
parent d87e41eae7
commit 4916a5c922

View File

@ -78,7 +78,15 @@ function Remove-ContentFromGitHistory {
$filter_command = "git rm -r --cached --ignore-unmatch `"$path_content_relative`"" $filter_command = "git rm -r --cached --ignore-unmatch `"$path_content_relative`""
$filter_branch_cmd = "git $cgit_filter_branch $fgit_force $fgit_index_filter '$filter_command' $fgit_prune_empty $fgit_tag_name_filter $fgit_filter_concat $fgit_filter_separate $fgit_all" $filter_branch_cmd = "git $cgit_filter_branch $fgit_force $fgit_index_filter '$filter_command' $fgit_prune_empty $fgit_tag_name_filter $fgit_filter_concat $fgit_filter_separate $fgit_all"
Write-Verbose "Executing command: $filter_branch_cmd" Write-Verbose "Executing command: $filter_branch_cmd"
Invoke-Expression $filter_branch_cmd $job = Start-Job -ScriptBlock { Invoke-Expression $args[0] } -ArgumentList $filter_branch_cmd
Wait-Job $job -Timeout 3600 # Wait for 1 hour max
if ($job.State -eq 'Running') {
Stop-Job $job
throw "Filter-branch operation timed out after 1 hour"
} else {
Receive-Job $job
}
Remove-Job $job
Write-Verbose "Cleaning up refs..." Write-Verbose "Cleaning up refs..."
# Clean up refs using git directly # Clean up refs using git directly
@ -87,7 +95,7 @@ function Remove-ContentFromGitHistory {
$originalRef = "$original_refs/$ref" $originalRef = "$original_refs/$ref"
if (& git show-ref --verify --quiet $originalRef) { if (& git show-ref --verify --quiet $originalRef) {
Write-Verbose "Deleting ref: $originalRef" Write-Verbose "Deleting ref: $originalRef"
& git $cgit_update_ref -d $originalRef & git update-ref -d $originalRef
} }
} }
@ -99,10 +107,10 @@ function Remove-ContentFromGitHistory {
} }
Write-Verbose "Expiring reflog..." Write-Verbose "Expiring reflog..."
& git $cgit_reflog_expire $fgit_expire_now $fgit_all & git reflog expire $fgit_expire_now $fgit_all
Write-Verbose "Running garbage collection..." Write-Verbose "Running garbage collection..."
& git $cgit_garbage_collect $fgit_prune_now $fgit_aggressive & git gc $fgit_prune_now $fgit_aggressive
Write-Verbose "Content removal from Git history completed successfully." Write-Verbose "Content removal from Git history completed successfully."
} }