Compare files on double click in Pending Changes view

后端 未结 7 993
醉话见心
醉话见心 2020-12-04 12:48

Is there a way in visual studio to change the behavior when I double click a file in the \'Pending Changes\' view.

The default behavior is, that Visual Studio opens

相关标签:
7条回答
  • 2020-12-04 13:26

    The steps from VS2017 onward are a bit different. VS 2017 uses its own private registry, which is stored in your AppData folder.

    Steps

    1. Close all visual studio instances

    2. Select the HKEY_USERS node, and click File > Load Hive

    3. Open privateregistry.bin which can be found at %UserProfile%\AppData\Local\Microsoft\VisualStudio\15.0_[*some key*]

    4. Provide a key name. Eg VS2017PrivateRegistry

    5. Navigate to the following path and create a new DWORD with value of 1.

      Path:HKEY_USERS\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_[*some key*]\TeamFoundation\SourceControl\Behavior

      Value: DoubleClickOnChange (DWORD) 1

    6. Select HKEY_USERS\VS2017PrivateRegistry

    7. Click File > Unload Hive

    0 讨论(0)
  • 2020-12-04 13:26

    You could also apply some Visual Studio keyboard short cuts for the various comparison types - Latest, WorkSpace and Previous.

    See the following post: Comparison keyboard shortcuts for Pending Changes in TFS

    0 讨论(0)
  • 2020-12-04 13:28

    VS 2019 And Beyond (hopefully)

    Building on Tereza's answer using powershell

    Run powershell as adminstrator and close Visual Studio. (you might have to wait a couple of seconds for VS to release some files) (if you copy paste make sure to send the last command, or else VS won't start)

    $instanceId = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property instanceId).Trim()
    $versionMajor = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationVersion).Trim().Substring(0,2)
    $year = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productLineVersion).Trim()
    reg.exe load HKLM\VS$yearPrivateRegistry $env:LOCALAPPDATA\Microsoft\VisualStudio\$versionMajor.0_$instanceId\privateregistry.bin
    reg.exe add HKLM\VS$yearPrivateRegistry\Software\Microsoft\VisualStudio\$versionMajor.0_$instanceId\TeamFoundation\SourceControl\Behavior /v DoubleClickOnChange /t REG_DWORD /d 1 /f
    reg.exe unload HKLM\VS$yearPrivateRegistry
    

    This attempts to determine the major version as well.

    0 讨论(0)
  • 2020-12-04 13:33

    VS 2017

    This PowerShell script should turn this on for the latest installed instance (adapted from Anish's answer)

    You'll need to close all VS instances first.

    $instanceId = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property instanceId).Trim()
    reg.exe load HKLM\VS2017PrivateRegistry $env:LOCALAPPDATA\Microsoft\VisualStudio\15.0_$instanceId\privateregistry.bin
    reg.exe add HKLM\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_$instanceId\TeamFoundation\SourceControl\Behavior /v DoubleClickOnChange /t REG_DWORD /d 1 /f
    reg.exe unload HKLM\VS2017PrivateRegistry
    

    VS 2015 or older

    This PowerShell command should turn this on for all installed versions:

    Set-ItemProperty HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\SourceControl\Behavior DoubleClickOnChange 1
    
    0 讨论(0)
  • 2020-12-04 13:40

    Do shift + double-click instead.

    0 讨论(0)
  • 2020-12-04 13:40

    Put this on a .reg file and and double click it, this will make your double click compare instead of opening the file in the pending changes window.

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\SourceControl\Behavior]
    "DoubleClickOnChange"=dword:00000001
    

    Make sure the Visual Studio version is correct.

    0 讨论(0)
提交回复
热议问题