/
Set-TortoiseGitSettings.ps1
76 lines (63 loc) · 2.5 KB
/
Set-TortoiseGitSettings.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#region Definitions
# https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html#tgit-dug-settings-progs
$diffTools =
@(
[pscustomobject]@{
# See http://kdiff3.sourceforge.net/doc/documentation.html
name="KDiff3";
defaultPath="C:\Program Files\KDiff3\kdiff3.exe";
diffArguments="%base %mine --L1 %bname --L2 %yname";
mergeArguments="%mine %base %theirs --L1 %yname --L2 %bname --L3 %tname --output %merged"
},
[pscustomobject]@{
# See https://sourcegear.com/diffmerge/webhelp/sec__clargs__diff.html
# See https://sourcegear.com/diffmerge/webhelp/sec__clargs__merge.html
name="DiffMerge";
defaultPath="C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe";
diffArguments="/title1=%bname /title2=%yname %base %mine";
mergeArguments="/merge /caption=%mname /result=%merged /title1=%yname /title2=%bname /title3=%tname %mine %base %theirs"
}
)
$BaseKey = "HKCU:\SOFTWARE\TortoiseGit"
$ContextMenuEntriesDefault = 1030
$ContextMenuEntrieshighDefault = 32
$ContextMenuExtEntriesLowDefault = 1073741824
$ContextMenuExtEntriesHighDefault = 73728
function Set-TortoiseGitDiffTool {
param ([string]$toolName)
Set-TortoiseGitTool "Diff" $toolName
}
function Set-TortoiseGitMergeTool {
param ([string]$toolName)
Set-TortoiseGitTool "Merge" $toolName
}
function Set-TortoiseGitTool {
param ([string]$toolType, [string]$toolName)
if ($toolName -eq "TortoiseGitMerge") {
$Value = Get-ItemPropertyValue $BaseKey $toolType
if (-not $Value.StartsWith("#")) {
$Value = "#" + $Value
}
} else {
$diffTool = @($diffTools | Where-Object { $_.name -eq $toolName })
if ($toolType -eq "Diff") {
$arguments = $diffTool.diffArguments
} else {
$arguments = $diffTool.mergeArguments
}
$Value = $diffTool.defaultPath + " " + $arguments
}
echo "Setting $BaseKey.$toolType = $Value"
Set-ItemProperty $BaseKey $toolType $Value
}
#endregion
#region Configuration
Set-TortoiseGitDiffTool "TortoiseGitMerge"
Set-TortoiseGitMergeTool "DiffMerge"
Set-ItemProperty $BaseKey "ContextMenuEntries" 1246214
Set-ItemProperty $BaseKey "ContextMenuEntrieshigh" 131104
Set-ItemProperty $BaseKey "ContextMenuExtEntriesLow" $ContextMenuExtEntriesLowDefault
Set-ItemProperty $BaseKey "ContextMenuExtEntriesHigh" $ContextMenuExtEntriesHighDefault
Set-ItemProperty "$BaseKey\StatusColumns" "logloglist" 1f1
Set-ItemProperty "$BaseKey\StatusColumns" "logloglist_Order" "000102030405060809070A0B0C0D"
#endregion