lib/utility/Git-NumberedAssumed.ps1
# ATTN: This file is 2x the same code (assumeUnchanged & skipWorktree) ############################################################################## #.SYNOPSIS # `git update-index --assume-unchanged` the indexes passed as $args in the working directory ############################################################################## function Git-NumberedAssumed { $fileInfos = Parse-GitIndexes $args 'workingDir' if (-not $fileInfos) { return } $files = $fileInfos | % {$_.fullPath} git update-index --assume-unchanged $files } # To NoAssume we need to list the assumed files first $global:assumedFiles = @() ############################################################################## #.SYNOPSIS # Displays all currently git assumed files with indexes to be used by Git-NumberedUnassumed ############################################################################## function Git-ListAssumed { $files = (git ls-files -v) | Where-Object { $_.StartsWith("h") } | % { $_.Substring(2) } $index = 0 $files | % { Write-Host "$index $_" $global:assumedFiles += $_ $index++ } } ############################################################################## #.SYNOPSIS # Git unassumes a single index passed as $args as displayed by Git-ListAssumed ############################################################################## function Git-NumberedUnassumed { $file = $global:assumedFiles[$args] if (-not $file) { Write-Host "Couldn't find hidden file with index $args" } git update-index --no-assume-unchanged $file } ############################################################################## #.SYNOPSIS # `git update-index --skip-worktree` the indexes passed as $args in the working directory ############################################################################## function Git-NumberedHidden { $fileInfos = Parse-GitIndexes $args 'workingDir' if (-not $fileInfos) { return } $files = $fileInfos | % {$_.fullPath} git update-index --skip-worktree $files } # To Unhide we need to list the hidden files first $global:hiddenFiles = @() ############################################################################## #.SYNOPSIS # Displays all currently git skip worktree files with indexes to be used by Git-NumberedHidden ############################################################################## function Git-ListHidden { $files = (git ls-files -v) | Where-Object { $_.StartsWith("S") } | % { $_.Substring(2) } $index = 0 $files | % { Write-Host "$index $_" $global:hiddenFiles += $_ $index++ } } ############################################################################## #.SYNOPSIS # Git unhides a single index passed as $args as displayed by Git-ListHidden ############################################################################## function Git-NumberedUnhidden { $file = $global:hiddenFiles[$args] if (-not $file) { Write-Host "Couldn't find hidden file with index $args" } git update-index --no-skip-worktree $file } |