fmdiff
brew install fmdiff
v20150915
LicenseRef-Homebrew-public-domain
Use FileMerge as a diff command for Subversion and Mercurial
1
30-day installs · #18440
2
90-day · #18434
38
365-day · #11869
17
★ GitHub stars · updated 10y ago
Links
- https://github.com/brunodefraine/fmscripts
- GitHub: brunodefraine/fmscripts
- Brew formula source: Formula/f/fmdiff.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Use FileMerge as a diff command for Subversion and Mercurial",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:37:44+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "fmdiff",
"github_default_branch": "master",
"github_last_commit_at": "2015-09-21T08:26:53Z",
"github_readme_excerpt": "# Using FileMerge as a diff command for Subversion (and Mercurial)\n\n## Introduction\n\nSubversion principally uses the [copy-modify-merge](http://svnbook.red-bean.com/en/1.5/svn.basic.vsn-models.html#svn.basic.vsn-models.copy-merge) versioning model to allow concurrent collaboration on the same set of files. For this to work well, it is crucial to have good tools to view and merge the differences between files.\n\nThe built-in `diff` and `diff3` tools (from [diffutils](http://www.gnu.org/software/diffutils/diffutils.html)) go a long way to provide this functionality for text files on the command line. They do have some limitations though, including:\n\n* Worthless to find interline changes in long lines\n* Output of diff can be hard to read\n* No interactive merge support\n\nApple\u0027s [Developer Tools](http://developer.apple.com/technology/) for Mac OS X include FileMerge, a graphical tool to compare and merge files. FileMerge can be much handier to use; unfortunately, it doesn\u0027t integrate with Subversion straightforwardly. It can be opened from the command line with the `opendiff` command, but its interface differs from that of `diff` and `diff3`. It returns immediately (i.e. it forks and does not block) and it expects different arguments. Some wrapper scripts are thus required to call FileMerge from Subversion.\n\n\n\n## Wrapper Scripts for FileMerge\n\nThis projects provides Bash scripts for this task. Four scripts are provided: `fmdiff`, `fmdiff3`, `fmresolve` and `fmmerge`. They are described below. The location of FileMerge is determined through a symbolic link in the `PATH` environment. The included Makefile can create this link from the output of `xcode-select -p` or checking a number of standard locations. To do this:\n\n```bash\n$ make\n```\n\nAfterwards, you can do the following to install all of the scripts in `/usr/local/bin`:\n\n```bash\n$ sudo make install\n```\n\n### fmdiff\n\n`fmdiff` has an interface simi",
"github_repo": "brunodefraine/fmscripts",
"github_stars": 17,
"github_topics": [],
"homepage": "https://github.com/brunodefraine/fmscripts",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 1,
"installs_365d": 38,
"installs_90d": 2,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "LicenseRef-Homebrew-public-domain",
"llm_generated_at": null,
"llm_model": null,
"name": "fmdiff",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 18440,
"rank_365d": 11869,
"rank_90d": 18434,
"raw_hash": "d70dd6963c8d0eea",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/f/fmdiff.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "20150915",
"versioned_formulae": [],
"why_use_this": null
}