Skip to content

Instantly share code, notes, and snippets.

@irontoby
Last active February 13, 2017 17:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irontoby/c94859b4575e1f8f5819d1ff8b95695e to your computer and use it in GitHub Desktop.
Save irontoby/c94859b4575e1f8f5819d1ff8b95695e to your computer and use it in GitHub Desktop.
My Visual Studio settings/scripts for adding TortoiseGit Diff, Log, and Blame buttons.

Adding TortoiseGit Buttons to Visual Studio

If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
@echo off
setlocal
set CMD=%1
shift
if "%1"=="" GOTO NOPATH
rem Ensure casing of path parameter is correct & fully-qualified
pushd .
cd %~dp0
set TGPATH=%~f1
popd
shift
GOTO EXEC
:NOPATH
set TGPATH=.
:EXEC
set "args="
:parse
if "%~1" neq "" (
set args=%args% %1
shift
goto :parse
)
if defined args set args=%args:~1%
"c:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" /command:%CMD% /path:"%TGPATH%" %args%
<?xml version="1.0" encoding="UTF-8"?>
<UserSettings>
<ApplicationIdentity version="15.0" />
<ToolsOptions />
<Category name="Environment_Group" RegisteredName="Environment_Group">
<Category name="Environment_CommandBars" Category="{B9D9C123-B500-4202-B887-57C829CBD08F}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_CommandBars" PackageName="Visual Studio Environment Package">
<CommandBars Version="05072811">
<UserCustomizations>
<add Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000276" CmdPri="00120001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" />
<add Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000277" CmdPri="00240001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" />
<add Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000278" CmdPri="005a0001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" />
<add Cmd="{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}:0000008f" CmdPri="00900001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" />
<modify Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000276" CmdPri="00120001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" Name="TGit Log" />
<modify Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000277" CmdPri="00240001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" Name="TGit Diff" />
<modify Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000278" CmdPri="005a0001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" Name="TGit Blame" />
<modify Cmd="{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}:0000008f" CmdPri="00900001" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" Name="Format" Style="3" BeginGroup="true" />
<modify Cmd="{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}:00000074" CmdPri="01200000" Group="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:00000550" GroupPri="01000000" Menu="{9ADF33D0-8AAD-11D0-B606-00A0C922E851}:0000000e" BeginGroup="true" />
</UserCustomizations>
</CommandBars>
</Category>
</Category>
</UserSettings>
<UserSettings>
<ApplicationIdentity version="14.0" />
<ToolsOptions />
<Category name="Environment_Group" RegisteredName="Environment_Group">
<Category name="Environment_ExternalTools" Category="{E8FAE9E8-FBA2-4474-B134-AB0FFCFB291D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_ExternalTools" PackageName="Visual Studio Environment Package">
<ExternalTools>
<UserCreatedTool>
<Arguments>c:\tools\NoShell.vbs c:\tools\tgit.bat log $(ItemPath)</Arguments>
<CloseOnExit>false</CloseOnExit>
<Command>%vsspv_windows_sdk_dir%C:\Windows\System32\wscript.exe</Command>
<Index>0</Index>
<InitialDirectory>%vsspv_windows_sdk_dir%$(ItemDir)</InitialDirectory>
<IsGUIapp>true</IsGUIapp>
<NameID>0</NameID>
<Package>{00000000-0000-0000-0000-000000000000}</Package>
<PromptForArguments>false</PromptForArguments>
<SaveAllDocs>true</SaveAllDocs>
<Title>TGit Log</Title>
<Unicode>false</Unicode>
<UseOutputWindow>false</UseOutputWindow>
<UseTaskList>false</UseTaskList>
</UserCreatedTool>
<UserCreatedTool>
<Arguments>c:\tools\NoShell.vbs c:\tools\tgit.bat diff $(ItemPath)</Arguments>
<CloseOnExit>false</CloseOnExit>
<Command>%vsspv_windows_sdk_dir%C:\Windows\System32\wscript.exe</Command>
<Index>1</Index>
<InitialDirectory>%vsspv_windows_sdk_dir%</InitialDirectory>
<IsGUIapp>true</IsGUIapp>
<NameID>0</NameID>
<Package>{00000000-0000-0000-0000-000000000000}</Package>
<PromptForArguments>false</PromptForArguments>
<SaveAllDocs>true</SaveAllDocs>
<Title>TGit Diff</Title>
<Unicode>false</Unicode>
<UseOutputWindow>false</UseOutputWindow>
<UseTaskList>false</UseTaskList>
</UserCreatedTool>
<UserCreatedTool>
<Arguments>c:\tools\NoShell.vbs c:\tools\tgit.bat blame $(ItemPath)</Arguments>
<CloseOnExit>false</CloseOnExit>
<Command>%vsspv_windows_sdk_dir%C:\Windows\System32\wscript.exe</Command>
<Index>2</Index>
<InitialDirectory>%vsspv_windows_sdk_dir%</InitialDirectory>
<IsGUIapp>true</IsGUIapp>
<NameID>0</NameID>
<Package>{00000000-0000-0000-0000-000000000000}</Package>
<PromptForArguments>false</PromptForArguments>
<SaveAllDocs>true</SaveAllDocs>
<Title>Tgit Blame</Title>
<Unicode>false</Unicode>
<UseOutputWindow>false</UseOutputWindow>
<UseTaskList>false</UseTaskList>
</UserCreatedTool>
<ExcludeRegisteredTool SourceKeyName="Error Loo&amp;kup" />
<ExcludeRegisteredTool SourceKeyName="Create GUID" />
<ExcludeRegisteredTool SourceKeyName="PreEmptive Protection - Dot&amp;fuscator" />
</ExternalTools>
</Category>
</Category>
</UserSettings>
@irontoby
Copy link
Author

irontoby commented Feb 1, 2017

The VsExternalToolsTgit.vssettings gets imported into Visual Studio; the scripts go in a directory at c:\tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment