Notices: This section not yet converted to new layout. Download stats are rolling back out.

Beyond Compare Integration

1.0.1

Package test results are passing.

This package was approved by moderator dtgm on 5/12/2016.

Automatically configures various tools to use Beyond Compare for file comparisons.

The script detects which tools you have installed and then configures them appropriately so that they will use Beyond Compare for diffing and merging files.

Any old values are logged as warnings to the console, or if possible a backup copy of any modified files is made.

To install Beyond Compare Integration, run the following command from the command line or from PowerShell:

C:\> choco install beyondcompare-integration

To upgrade Beyond Compare Integration, run the following command from the command line or from PowerShell:

C:\> choco upgrade beyondcompare-integration

Files

Hide
  • tools\chocolateyinstall.ps1 Show
    $ErrorActionPreference = 'Stop'; # stop on all errors
    
    # See http://www.scootersoftware.com/support.php?zz=kb_vcs for suggested settings for various version control systems
    
    $backupFolder = $env:chocolateyPackageFolder
    
    if ($backupFolder -eq $null)
    {
        # for testing in ISE only
        $backupFolder = $env:TEMP
    }
    
    # Find Beyond Compare
    if (Test-Path "${env:ProgramFiles(x86)}\Beyond Compare 4\bcomp.exe")
    {
        $bcompPath = "${env:ProgramFiles(x86)}\Beyond Compare 4\bcomp.exe"
    }
    elseif (Test-Path "$env:ProgramFiles\Beyond Compare 4\bcomp.exe") 
    {
        $bcompPath = "$env:ProgramFiles\Beyond Compare 4\bcomp.exe"
    } 
    else 
    {
        Write-Error "Beyond Compare 4 was not found"
    }
    
    Write-Verbose "Using $bcompPath"
    
    $bcompPathPosix = $bcompPath.Replace("\", "/")
    
    # Git for Windows
    where.exe git /q
    
    if ($LASTEXITCODE -eq 0)
    {
        Write-Verbose "Configuring git.exe"
    
        $gitconfig = "$($env:USERPROFILE)\.gitconfig"
    
        $backupPath = Join-Path -Path $backupFolder (".gitconfig." + [DateTime]::UtcNow.ToString("yyyyMMddHHmm"))
    
        if (Test-Path $gitconfig)
        {
            Copy-Item -Path $gitconfig -Destination $backupPath
            Write-Warning "Created backup of .gitconfig at $backupPath"
        } else {
            Write-Warning "Could not find existing file $gitconfig so no backup was taken"
        }
    
    
        git config --global diff.tool bc
        git config --global difftool.bc.path "$bcompPathPosix"
    
        git config --global merge.tool bc
        git config --global mergetool.bc.path "$bcompPathPosix"
    }
    
    # TortoiseGit
    if (Test-Path HKCU:\SOFTWARE\TortoiseGit)
    {
        Write-Verbose "Configuring TortoiseGit"
    
        $keySoftware = get-item HKCU:\SOFTWARE
    
        $r = $keySoftware.OpenSubKey("TortoiseGit", $true)
        $old = $r.GetValue("Diff")
        if ($old -ne $null)
        {
            Write-Warning ("Old Registry value (HKCU\SOFTWARE\TortoiseGit\Diff): " + $old)
        }
        $r.SetValue("Diff", "`"$($bcompPath)`" %base %mine /title1=%bname /title2=%yname /leftreadonly", [Microsoft.Win32.RegistryValueKind]::String)
    
        $old = $r.GetValue("Merge")
        if ($old)
        {
            Write-Warning ("Old Registry value (HKCU\SOFTWARE\TortoiseGit\Merge): " + $old)
        }
        $r.SetValue("Merge", "`"$bcompPath`" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname", [Microsoft.Win32.RegistryValueKind]::String)
        $r.Close()
        $keySoftware.Close()
    }
    
    # TortoiseSVN
    if (Test-Path HKCU:\SOFTWARE\TortoiseSVN)
    {
        Write-Verbose "Configuring TortoiseSVN"
    
        $keySoftware = get-item HKCU:\SOFTWARE
    
        $r = $keySoftware.OpenSubKey("TortoiseSVN", $true)
    
        $old = $r.GetValue("Diff")
        if ($old -ne $null)
        {
            Write-Warning ("Old Registry value (HKCU\SOFTWARE\TortoiseSVN\Diff): " + $old)
        }
        $r.SetValue("Diff", "`"$bcompPath`" %base %mine /title1=%bname /title2=%yname /leftreadonly", [Microsoft.Win32.RegistryValueKind]::String)
    
        $old = $r.GetValue("Merge")
        if ($old)
        {
            Write-Warning ("Old Registry value (HKCU\SOFTWARE\TortoiseSVN\Merge): " + $old)
        }
        $r.SetValue("Merge", "`"$bcompPath`" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname", [Microsoft.Win32.RegistryValueKind]::String)
        $r.Close()
        $keySoftware.Close()
    }
    

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Dependencies

Package Maintainer(s)

Software Author(s)

  • David Gardiner

Copyright

2016 David Gardiner

Tags

Release Notes

Check location of bcomp.exe

Version History

Version Downloads Last updated Status
Beyond Compare Integration 1.0.0 173 Monday, May 9, 2016 approved
Beyond Compare Integration 0.0.1-pre 246 Wednesday, May 4, 2016 exempted

Discussion for the Beyond Compare Integration Package

Ground rules:

  • This discussion is only about Beyond Compare Integration and the Beyond Compare Integration package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Beyond Compare Integration, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus
Chocolatey.org uses cookies to enhance the user experience of the site.
Ok