Skip to content

Commit f703ba3

Browse files
committed
added skipWorktree next to assumeUnchanged
1 parent deaec02 commit f703ba3

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

README.md

+12
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,15 @@ Git-ListAssumed # alias: gasl
106106
# git update-index --no-assume-unchanged
107107
Git-NumberedUnassumed # alias: gnoas
108108
```
109+
110+
#### Git-SkipWorktree
111+
112+
Also for `--skip-worktree` with `Git-NumberedHidden` (alias: ghide)
113+
114+
```powershell
115+
# List all currently hidden files
116+
Git-ListHidden # alias: glh
117+
118+
# git update-index --no-skip-worktree
119+
Git-NumberedUnhidden # alias: gunhide
120+
```

git-numbered.ps1

+4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ Set-Alias gas Git-NumberedAssumed
4646
Set-Alias gasl Git-ListAssumed
4747
Set-Alias gnoas Git-NumberedUnassumed
4848

49+
Set-Alias ghide Git-NumberedHidden
50+
Set-Alias glh Git-ListHidden
51+
Set-Alias gunhide Git-NumberedUnhidden
52+
4953

5054
##############################################################################
5155
#.SYNOPSIS

lib/utility/Git-NumberedAssumed.ps1

+61
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# ATTN: This file is 2x the same code (assumeUnchanged & skipWorktree)
2+
3+
14
##############################################################################
25
#.SYNOPSIS
36
# `git update-index --assume-unchanged` the indexes passed as $args in the working directory
@@ -39,5 +42,63 @@ function Git-ListAssumed {
3942
##############################################################################
4043
function Git-NumberedUnassumed {
4144
$file = $global:assumedFiles[$args]
45+
if (-not $file) {
46+
Write-Host "Couldn't find hidden file with index $args"
47+
}
4248
git update-index --no-assume-unchanged $file
4349
}
50+
51+
52+
53+
54+
55+
56+
57+
58+
59+
##############################################################################
60+
#.SYNOPSIS
61+
# `git update-index --skip-worktree` the indexes passed as $args in the working directory
62+
##############################################################################
63+
function Git-NumberedHidden {
64+
$fileInfos = Parse-GitIndexes $args 'workingDir'
65+
if (-not $fileInfos) {
66+
return
67+
}
68+
69+
$files = $fileInfos | % {$_.fullPath}
70+
git update-index --skip-worktree $files
71+
}
72+
73+
74+
# To Unhide we need to list the hidden files first
75+
76+
$global:hiddenFiles = @()
77+
78+
79+
##############################################################################
80+
#.SYNOPSIS
81+
# Displays all currently git skip worktree files with indexes to be used by Git-NumberedHidden
82+
##############################################################################
83+
function Git-ListHidden {
84+
$files = (git ls-files -v) | Where-Object { $_.StartsWith("S") } | % { $_.Substring(2) }
85+
$index = 0
86+
$files | % {
87+
Write-Host "$index $_"
88+
$global:hiddenFiles += $_
89+
$index++
90+
}
91+
}
92+
93+
94+
##############################################################################
95+
#.SYNOPSIS
96+
# Git unhides a single index passed as $args as displayed by Git-ListHidden
97+
##############################################################################
98+
function Git-NumberedUnhidden {
99+
$file = $global:hiddenFiles[$args]
100+
if (-not $file) {
101+
Write-Host "Couldn't find hidden file with index $args"
102+
}
103+
git update-index --no-skip-worktree $file
104+
}

0 commit comments

Comments
 (0)