Search engines are not blocked. Try using "site:www.freshports.org" and your search terms.
Volunteers wanted to help translate FreshPorts
Searches without login should now work. You must get asked to click a button.
Port details
patdiff Colored patience diffs for the discerning developer
0.16.1 textproc Σ=0 search for ports that depend on this port Find issues related to this port Report an issue related to this port View this port on Repology. pkg-fallout Package not present on quarterly.This port was created during this quarter. It will be in the next quarterly branch but not the current one.
Maintainer: dch@FreeBSD.org search for ports maintained by this maintainer
Port Added: 2026-10-09 12:45:43
Last Update: 2026-10-09 12:43:25
Commit Hash: a8fe902
License: MIT
WWW:
https://github.com/janestreet/patdiff
Description: #
Patdiff is an OCaml implementation of Bram Cohen's patience diff algorithm, with a few extra conveniences for comparing code and configuration files: - outputs plain ASCII, ANSI color codes, or HTML - optional semantic diffing of numbers (float tolerance) - good word-level diffing out of the box - recursive diffing of directories - extensively configurable output (markers, colors, location format, context) - whitespace-aware diffing A wrapper script, patdiff-git-wrapper, lets git use patdiff as its external diff tool.
Homepage    cgit ¦ Codeberg ¦ GitHub ¦ GitLab ¦ SVNWeb - no subversion history for this port

Manual pages: #
pkg-plist: as obtained via: make generate-plist #
Expand this list (6 items)
Collapse this list.
  1. bin/patdiff
  2. bin/patdiff-git-wrapper
  3. share/man/man1/patdiff.1.gz
  4. /usr/local/share/licenses/patdiff-0.16.1/catalog.mk
  5. /usr/local/share/licenses/patdiff-0.16.1/LICENSE
  6. /usr/local/share/licenses/patdiff-0.16.1/MIT
Collapse this list.
USE_RC_SUBR (Service Scripts)
  • no SUBR information found for this port
Dependency lines:
  • patdiff>0:textproc/patdiff
To install the port: #
cd /usr/ports/textproc/patdiff/ && make install clean
To add the package, run one of these commands:
  • pkg install textproc/patdiff
  • pkg install patdiff
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above.
PKGNAME: patdiff
Flavors: there is no flavor information for this port. #
distinfo: #
TIMESTAMP = 1791531594 SHA256 (janestreet-patdiff-v0.16.1_GH0.tar.gz) = 24046c6558d346725c2f14d3a9f4b71d981e98a18e93a2fdfa2849e0eec2756b SIZE (janestreet-patdiff-v0.16.1_GH0.tar.gz) = 225543

Expand this list (98 items)

Collapse this list.

SHA256 (janestreet-base_bigstring-v0.16.0_GH0.tar.gz) = 8a2d60fe0a544e2d69ed0a9eac8c2fbb9726f46578ff3c41ff34028ac812cb66 SIZE (janestreet-base_bigstring-v0.16.0_GH0.tar.gz) = 19275 SHA256 (janestreet-base_quickcheck-v0.16.0_GH0.tar.gz) = c67c04a4cfff2472be777500fafb519f071d63b3d5ef3c7366ff0ee3856b67c8 SIZE (janestreet-base_quickcheck-v0.16.0_GH0.tar.gz) = 76738 SHA256 (janestreet-bin_prot-v0.16.0_GH0.tar.gz) = d0b0db60aa4b61ff0a44ec4a2d571313f30d8fd80d0c3a0b701abb0e70df4a98 SIZE (janestreet-bin_prot-v0.16.0_GH0.tar.gz) = 343886 SHA256 (janestreet-core-v0.16.2_GH0.tar.gz) = 9ba3390bd8ea5a018a5d84dbfd6b5c652989bf541159173e76180eb3de5b99fd SIZE (janestreet-core-v0.16.2_GH0.tar.gz) = 542390 SHA256 (janestreet-core_kernel-v0.16.0_GH0.tar.gz) = b3b1ce50cb3a1607f5701a90f5d5b37d841325591b49ba11bfbee285f510d2d1 SIZE (janestreet-core_kernel-v0.16.0_GH0.tar.gz) = 276775 SHA256 (janestreet-core_unix-v0.16.0_GH0.tar.gz) = 9978ae7f56c18cc37b5e3a1adf1c70a7da542a57e17ff73f4e00811eb817d7bd SIZE (janestreet-core_unix-v0.16.0_GH0.tar.gz) = 391719 SHA256 (janestreet-expect_test_helpers_core-v0.16.0_GH0.tar.gz) = 82adfb4510ec2cdc4f59c62eeb4e90b51d9e5daa1628bd2c1fda06ba524b67dc SIZE (janestreet-expect_test_helpers_core-v0.16.0_GH0.tar.gz) = 22549 SHA256 (janestreet-fieldslib-v0.16.0_GH0.tar.gz) = 7bf728eb9db49f639ceda39d408d619271648e8840c5822724c1f64292c47146 SIZE (janestreet-fieldslib-v0.16.0_GH0.tar.gz) = 3711 SHA256 (janestreet-int_repr-v0.16.0_GH0.tar.gz) = f0efa8b2cf81039f9b73b92287906211f97d56f3988dda891898f27d79293d3a SIZE (janestreet-int_repr-v0.16.0_GH0.tar.gz) = 9227 SHA256 (janestreet-jane-street-headers-v0.16.0_GH0.tar.gz) = bfb57ae96d4925f50f443480caa709749ca3012118f5b7580b2d8c84c93ee9d4 SIZE (janestreet-jane-street-headers-v0.16.0_GH0.tar.gz) = 4905 SHA256 (janestreet-jst-config-v0.16.0_GH0.tar.gz) = 94d60f5d4b4bae0bfdfeab247293155f812ae8f2f660cd1812f4696b1c56d8c9 SIZE (janestreet-jst-config-v0.16.0_GH0.tar.gz) = 4952 SHA256 (janestreet-ocaml_intrinsics-v0.16.2_GH0.tar.gz) = b16385ed02f591ca37e55640a8de22ff53e5c76c593d09101d53c41b24de2c3e SIZE (janestreet-ocaml_intrinsics-v0.16.2_GH0.tar.gz) = 39096 SHA256 (janestreet-patience_diff-v0.16.0_GH0.tar.gz) = 4af5d390fb7bffe1bc0f874ee6f71ce549273afc6c6ee3b27688ff0ef8456f5a SIZE (janestreet-patience_diff-v0.16.0_GH0.tar.gz) = 22756 SHA256 (janestreet-ppx_assert-v0.16.0_GH0.tar.gz) = 265ab1ea89526044728db6b035db76897749a1f3b136353acbb601559fafb065 SIZE (janestreet-ppx_assert-v0.16.0_GH0.tar.gz) = 7419 SHA256 (janestreet-ppx_base-v0.16.0_GH0.tar.gz) = cea0e5a30a99a8b182fcd0f67d676bd554759b34f46b78e349530eea3f49d02e SIZE (janestreet-ppx_base-v0.16.0_GH0.tar.gz) = 2996 SHA256 (janestreet-ppx_bench-v0.16.0_GH0.tar.gz) = 0e6cb46edad0a5e405081ddb187e9e254bec01364f7e2923e55bea0e0c3e1dbd SIZE (janestreet-ppx_bench-v0.16.0_GH0.tar.gz) = 9555 SHA256 (janestreet-ppx_bin_prot-v0.16.0_GH0.tar.gz) = 4a6463fb398d5f6476563e10a8ebbe22f0bbb1496022145d59e593a4ae2cbbed SIZE (janestreet-ppx_bin_prot-v0.16.0_GH0.tar.gz) = 37632 SHA256 (janestreet-ppx_cold-v0.16.0_GH0.tar.gz) = 6ce67b0160db2d81bb1394d29453d15b9348a748233ca6cf6b053dea31601e68 SIZE (janestreet-ppx_cold-v0.16.0_GH0.tar.gz) = 3814 SHA256 (janestreet-ppx_custom_printf-v0.16.0_GH0.tar.gz) = 6f1d36859077c061b92934bd9127b2cae008365db922385ecf4ce9780e7ef627 SIZE (janestreet-ppx_custom_printf-v0.16.0_GH0.tar.gz) = 9729 SHA256 (janestreet-ppx_disable_unused_warnings-v0.16.0_GH0.tar.gz) = 08373b67743db84274b76e7fdcd3a71e35adffa677d91a99668aa00fb399f308 SIZE (janestreet-ppx_disable_unused_warnings-v0.16.0_GH0.tar.gz) = 4004 SHA256 (janestreet-ppx_enumerate-v0.16.0_GH0.tar.gz) = 17f75b7741d49f06e3db3ef2e2aee4934c1682224b80d272f05a42b6ba506f7f SIZE (janestreet-ppx_enumerate-v0.16.0_GH0.tar.gz) = 9414 SHA256 (janestreet-ppx_expect-v0.16.2_GH0.tar.gz) = 1fc15e3842d7544e35a54a902520b146ef299cfee8956db4c300dadbfa71c706 SIZE (janestreet-ppx_expect-v0.16.2_GH0.tar.gz) = 48495 SHA256 (janestreet-ppx_fields_conv-v0.16.0_GH0.tar.gz) = fb7328ee2a6a17456cbe6e7083f07f5ccb4e43786c83f7e1213119919e10972c SIZE (janestreet-ppx_fields_conv-v0.16.0_GH0.tar.gz) = 21481 SHA256 (janestreet-ppx_fixed_literal-v0.16.0_GH0.tar.gz) = 7a2d595a362d3190023e251bee75588051cfb468e76d375aa71f22cb1b2a5416 SIZE (janestreet-ppx_fixed_literal-v0.16.0_GH0.tar.gz) = 3679 SHA256 (janestreet-ppx_globalize-v0.16.0_GH0.tar.gz) = 426855d04be2c15beb70884fd2e6d662000f63bcca0166f5629e369e645fec97 SIZE (janestreet-ppx_globalize-v0.16.0_GH0.tar.gz) = 8328 SHA256 (janestreet-ppx_here-v0.16.0_GH0.tar.gz) = 072fd8ce903ce95ff75ddcca4898d250fe7a5d276b3011b67df1473d9ef95669 SIZE (janestreet-ppx_here-v0.16.0_GH0.tar.gz) = 5034 SHA256 (janestreet-ppx_ignore_instrumentation-v0.16.0_GH0.tar.gz) = 4e8613957fdeed68d35bda53d657cffe3bc9804e25777283e859799dbb12da7b SIZE (janestreet-ppx_ignore_instrumentation-v0.16.0_GH0.tar.gz) = 3712 SHA256 (janestreet-ppx_inline_test-v0.16.0_GH0.tar.gz) = 9e08c01add3bfb8c10b1d4af576a6b4922c62f67251eb231ff19ea40cda73cd7 SIZE (janestreet-ppx_inline_test-v0.16.0_GH0.tar.gz) = 21926 SHA256 (janestreet-ppx_jane-v0.16.0_GH0.tar.gz) = 4c5ee082ae1d3d1372355ca85deb9f667324c8d6a50c13cc2124e880281c6306 SIZE (janestreet-ppx_jane-v0.16.0_GH0.tar.gz) = 4688 SHA256 (janestreet-ppx_let-v0.16.0_GH0.tar.gz) = 8ccc4f27668e9daf613f6dc779bcd9bdc6cd678826cd35c401be65566c436043 SIZE (janestreet-ppx_let-v0.16.0_GH0.tar.gz) = 15460 SHA256 (janestreet-ppx_log-v0.16.0_GH0.tar.gz) = e0105f1a22199231be9258ced23300c4c4404d1b65e367a332848c4356cc7032 SIZE (janestreet-ppx_log-v0.16.0_GH0.tar.gz) = 6706 SHA256 (janestreet-ppx_module_timer-v0.16.0_GH0.tar.gz) = 54b49c7fe3b2d7d72874e21286eb8424903db60ebd730441eb310620df597478 SIZE (janestreet-ppx_module_timer-v0.16.0_GH0.tar.gz) = 7281 SHA256 (janestreet-ppx_optional-v0.16.0_GH0.tar.gz) = e6654625008e75ec3e55163d6dd8b360e8724ea108583ecb8b65ba37ac853a5f SIZE (janestreet-ppx_optional-v0.16.0_GH0.tar.gz) = 8333 SHA256 (janestreet-ppx_pipebang-v0.16.0_GH0.tar.gz) = 9435f425b6ee9d736cee5ed8579402be085656c4d31dd2bd4c256363ed7bdc8c SIZE (janestreet-ppx_pipebang-v0.16.0_GH0.tar.gz) = 3755 SHA256 (janestreet-ppx_sexp_message-v0.16.0_GH0.tar.gz) = 4f2e0c32d371895e2e5ad3266942d6a20bd66f8ab824653209bf41a40fea028e SIZE (janestreet-ppx_sexp_message-v0.16.0_GH0.tar.gz) = 8435 SHA256 (janestreet-ppx_sexp_value-v0.16.0_GH0.tar.gz) = 06345d475a918ca9160ce58b323f6ca4388288015efaaaf82915be25afb20947 SIZE (janestreet-ppx_sexp_value-v0.16.0_GH0.tar.gz) = 8460 SHA256 (janestreet-ppx_stable-v0.16.0_GH0.tar.gz) = 55cda9b7c2a8f3e86a499f205b8fd863cc600e7feafa41049b3c9b27a9235a62 SIZE (janestreet-ppx_stable-v0.16.0_GH0.tar.gz) = 18298 SHA256 (janestreet-ppx_stable_witness-v0.16.0_GH0.tar.gz) = f397aa471a92da2272e96787dc64e9ba10e1464a6ef821c1edf68a7601ae2736 SIZE (janestreet-ppx_stable_witness-v0.16.0_GH0.tar.gz) = 7641 SHA256 (janestreet-ppx_string-v0.16.0_GH0.tar.gz) = c29664a9a34a26540e00ab2b9b08d2181e970c54f30e0e3dcb5fb28764217dd8 SIZE (janestreet-ppx_string-v0.16.0_GH0.tar.gz) = 6105 SHA256 (janestreet-ppx_tydi-v0.16.0_GH0.tar.gz) = 3dc321a790e7228de9487fa93fc2976be5bc41e733486c64c03eced01ad0e3ff SIZE (janestreet-ppx_tydi-v0.16.0_GH0.tar.gz) = 4583 SHA256 (janestreet-ppx_typerep_conv-v0.16.0_GH0.tar.gz) = e35cf53870f7c9aa3bf12072cbb23f0c4ed4dc6f0ee8a62b13bdfd9b77bb52e9 SIZE (janestreet-ppx_typerep_conv-v0.16.0_GH0.tar.gz) = 9421 SHA256 (janestreet-ppx_variants_conv-v0.16.0_GH0.tar.gz) = a4ef1446de2ab91492ca56c46cdae8491f2bb398797e69bf7ae794ddce4adad1 SIZE (janestreet-ppx_variants_conv-v0.16.0_GH0.tar.gz) = 12331 SHA256 (janestreet-sexp_pretty-v0.16.0_GH0.tar.gz) = 9d15e7be22a7d27d1e037571491c58ffd0165f01082110e748e073a99cd7864b SIZE (janestreet-sexp_pretty-v0.16.0_GH0.tar.gz) = 22557 SHA256 (janestreet-spawn-v0.15.1_GH0.tar.gz) = 9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50 SIZE (janestreet-spawn-v0.15.1_GH0.tar.gz) = 15861 SHA256 (janestreet-splittable_random-v0.16.0_GH0.tar.gz) = 4d08f7e4d56f2b432ba3ee5f66d807983038b834ddac1d23d0ab3a528244be15 SIZE (janestreet-splittable_random-v0.16.0_GH0.tar.gz) = 9978 SHA256 (janestreet-time_now-v0.16.0_GH0.tar.gz) = 1796c6ac4c06fb85eb068bd223244c8d25abd4b95cb567c18a9223168107999d SIZE (janestreet-time_now-v0.16.0_GH0.tar.gz) = 3729 SHA256 (janestreet-timezone-v0.16.0_GH0.tar.gz) = 0acd70fb2a889f58caeba276433e6208f8346e25f0feb0f7721b5916dfc04937 SIZE (janestreet-timezone-v0.16.0_GH0.tar.gz) = 9881 SHA256 (janestreet-typerep-v0.16.0_GH0.tar.gz) = 943ef91a18d26d530873630a76fc12bc0f0ce5ee8133be69f1e3026525357b11 SIZE (janestreet-typerep-v0.16.0_GH0.tar.gz) = 23002 SHA256 (janestreet-variantslib-v0.16.0_GH0.tar.gz) = 4a4f74d1ba234a1ff0f751ea2d86f94fdd1f0809e0fe6c20aab9eae8dec4d2a1 SIZE (janestreet-variantslib-v0.16.0_GH0.tar.gz) = 2982

Collapse this list.


Packages (timestamps in pop-ups are UTC): #
patdiff
ABIaarch64amd64armv6armv7i386
FreeBSD:14:latest0.16.10.16.1--0.16.1
FreeBSD:14:quarterly-----
FreeBSD:15:latest0.16.10.16.1n/a-n/a
FreeBSD:15:quarterly--n/a-n/a
FreeBSD:16:latest-0.16.1n/a-n/a
Dependencies #
NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Build dependencies: #
  1. bash : shells/bash
  2. META : devel/ocaml-base
  3. META : devel/ocaml-ppx_compare
  4. META : devel/ocaml-ppx_hash
  5. META : devel/ocaml-ppx_optcomp
  6. META : devel/ocaml-ppx_sexp_conv
  7. META : devel/ocaml-ppxlib
  8. META : devel/ocaml-re
  9. META : devel/ocaml-sexplib
  10. META : devel/ocaml-sexplib0
  11. META : devel/ocaml-stdio
  12. ocaml-dune>=3.7.1_2 : devel/ocaml-dune
  13. ocamlc : lang/ocaml
Patch dependencies: #
  1. ocamlc : lang/ocaml
Extract dependencies: #
  1. ocamlc : lang/ocaml
There are no ports dependent upon this port #

Configuration Options: #
No options to configure
Options name: #
textproc_patdiff
USES: #
ocaml:build,dune
FreshPorts was unable to extract/find any pkg message #
Master Sites: #
Expand this list (1 items)
Collapse this list.
  1. https://codeload.github.com/janestreet/patdiff/tar.gz/v0.16.1?dummy=/
Collapse this list.

Number of commits found: 1 #

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
0.16.1
09 Oct 2026 12:43:25
commit hash: a8fe902da5a10bd5b7f6172713154568ea937f39commit hash: a8fe902da5a10bd5b7f6172713154568ea937f39commit hash: a8fe902da5a10bd5b7f6172713154568ea937f39commit hash: a8fe902da5a10bd5b7f6172713154568ea937f39 files touched by this commit
Dave Cottlehuber (dch) search for other commits by this committer
textproc/patdiff:  NEW PORT - diff for the discerning developer

Patdiff is an OCaml implementation of Bram Cohen's patience difference
algorithm, with a few extra conveniences for comparing code and config
files:

- gorgeous coloured patience diffs with word-level refinements
- outputs plain ASCII, ANSI color codes, or HTML
- optional semantic diffing of numbers
- good word-level diffing out of the box
- recursive diffing of directories
- extensively configurable output (markers, colors, location format, context)
- whitespace-aware diffing

Sponsored by:	SkunkWerks, GmbH

Number of commits found: 1