AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |
Back to Blog
Beyond compare tool3/12/2023 ![]() The customizable rules control which differences between two files should be flagged as such. Scott Mitchell, writing for MSDN Magazine, identified the program's comparison rules as its most powerful feature. Beyond Compare was featured in the March 2005 issue of the Windows IT Pro magazine, in the "What's Hot" section. He highlighted the program's "watch list" feature for particular acclaim. PC World writer Michael Desmond included the program in a 2005 list of utilities for a "Trouble-Free PC". ![]() ![]() The reviewers initially found the user interface to be "a little overwhelming", but "quickly got the hang of it", after using the program for a little while. That will cycle through each merge conflict in the working copy and as long as you save the file from BC, the conflict will be marked resolved by git (hence the mergetool.bc trustExitCode setting).In an April 2009 review, Beyond Compare was awarded four out of five stars by CNET. To resolve merge conflicts: git mergetool Which opens BC’s directory comparison which can’t be beat IMO. If you want to see a diff of the whole directory, you can run: git difftool -dir-diff In your working copy to show unstaged changes. Once you have it setup, you can easily run git difftool path/to/my/file.js This is fixed in BC4, so you should probably just upgrade to that. If you don’t do it, bcomp.exe will exit too early, and no files will be available to diff while you are viewing the directory diff. When using the new -dir-diff option of the git difftool command: git difftool 4e560^^ -dir-diff #4e560 is your commit hash that you want to show a whole directory-diff on in BCīeyond Compare 3 has a bug that is not fixed as of v3.3.12 where you need to employ this workaround. The reason I am using BCompare.exe for the difftool instead of bcomp.exe is described here. ![]() In addition to the above, you need to tell git the path to bcomp.exe: git config -global "c:/program files (x86)/beyond compare 3/BCompare.exe" git config -global "c:/program files (x86)/beyond compare 3/bcomp.exe" Pretty much the only difference from above is using bc3 instead of bc: git config -global diff.tool bc3 git config -global difftool.prompt false git config -global difftool.bc3 trustExitCode true git config -global merge.tool bc3 git config -global mergetool.bc3 trustExitCode true Git for Windows Configuring Beyond Compare 3 Git for Linux Now, among other things, you can right-click files in VS and choose Compare with Unmodified to open Beyond Compare. Specifically, you need to open git/config in the repo and add the following: tool = bc4 cmd = \"C:\\Program Files\\Beyond Compare 4\\BComp.exe\" \"$LOCAL\" \"$REMOTE\" tool = bc4 cmd = \"C:\\Program Files\\Beyond Compare 4\\BComp.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" Instead of using your global git config, it forces you to change the git config file in the repo. Not to mention, it doesn’t support 3-way merge. However, I don’t find it as useful as I do Beyond Compare. Visual Studio includes a builtin diff viewer that is pretty nice. You don’t need to do anything special to get directory diffs working on Windows. On Windows, in addition to the above commands, you need to tell git the path to bcomp.exe: git config -global difftool.bc.path "c:/program files/beyond compare 4/bcomp.exe" git config -global mergetool.bc.path "c:/program files/beyond compare 4/bcomp.exe" To make this affect all new sessions, change the dropdown at the bottom of the dialog from Use for this view only to Also update session defaults before you click OK. In the Folder Compare, click the Rules toolbar button (referee icon). The approach I like is updating Beyond Compare to follow the symlinks. There are a couple of ways to fix this ( courtesy of StackOverflow). By default, git uses symlinks to do the directory diff and BC4 will not follow those by default yielding something that looks like this: git difftool -dir-diff), I had to tweak the settings a little bit. In order to get directory diffs working (e.g. Run these commands from terminal: git config -global diff.tool bc git config -global difftool.prompt false git config -global difftool.bc trustExitCode true git config -global merge.tool bc git config -global mergetool.bc trustExitCode true To get it working on any linux flavor is pretty straight forward. Configuring Beyond Compare 4 Git for Linux It is cross-platform and makes diffs and 3-way merges very easy to understand and visualize. Beyond Compare has been my favorite comparison tool for a while now.
0 Comments
Read More
Leave a Reply. |