Skip to main content

A tool for describing multiple differences in files.

Project description

CleverDiff

Build Status

A tool for describing multiple differences in files.

Why?

If you have to compare files which contain multiple differences that are the same, you will know how tedius it is to step through every single hunk of the standard diff output. CleverDiff will show you each unique diff hunk once, then give you a summary of where else it has found the difference across multiple files.

Installation

CleverDiff is available on PyPI:

pip install --user cleverdiff

Usage

Run the cleverdiff.py script, with each pair of files separated with = as arguments:

python3 cleverdiff.py test_data/ref1.def=test_data/new1.def test_data/ref2.def=test_data/new2.def

Or run the cleverdiff.py script, with --old followed by a list of reference files and --new followed by a list of modified files:

python3 cleverdiff.py --old test_data/ref.def test_data/ref2.def \
                      --new test_data/new.def test_data/new2.def

CleverDiff will find the differences between each pair of files, then determine which are identical across all files, and give you a summary:

--------------------------------------------
DIFF   0:
insert in ref.def:49 vs new.def:50:
+        edit FOO bar

This difference is replicated elsewhere:
 * with identical diff in different files:
    ref2.def:49 vs new2.def:50


--------------------------------------------
DIFF   1:
change in ref.def:339 vs new.def:340:
-              family sat_172
-                edit WMOID '172'
+              family sat_173
+                edit WMOID '173'

This difference is replicated elsewhere:
 * with identical diff in different files:
    ref2.def:339 vs new2.def:340
 * with same diff but different line numbers:
    ref.def:376 vs new.def:377
    ref.def:413 vs new.def:414
    ref.def:450 vs new.def:451
    ref.def:487 vs new.def:488
    ref2.def:376 vs new2.def:377
    ref2.def:413 vs new2.def:414
    ref2.def:450 vs new2.def:451
    ref2.def:487 vs new2.def:488

Version history

v0.3

Contributors: @vhsw

  • Add command-line arguments --old and --new (#7)
  • Add black, isort & pyflakes to CI tests (#4)

v0.2

Contributors: @andrewcbennett Introduces ecFlow context (#2). Bug fixes.

v0.1.2

Contributors: @andrewcbennett (with thanks to @takluyver) Fixes failing tests. Adds Travis CI config.

v0.1

Contributors: @andrewcbennett (with thanks to @takluyver) initial version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cleverdiff-0.3.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cleverdiff-0.3-py3-none-any.whl (155.4 kB view details)

Uploaded Python 3

File details

Details for the file cleverdiff-0.3.tar.gz.

File metadata

  • Download URL: cleverdiff-0.3.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for cleverdiff-0.3.tar.gz
Algorithm Hash digest
SHA256 84c038da946943306f0db1794a7a650f905bc973c51302f41b300660defba042
MD5 fa2abe680de95ac87d8d947d2a6e7e81
BLAKE2b-256 eb457d9e5cb8491dde17ab8d1e1bc9b01e3438010304af2819de086c459e46bb

See more details on using hashes here.

File details

Details for the file cleverdiff-0.3-py3-none-any.whl.

File metadata

  • Download URL: cleverdiff-0.3-py3-none-any.whl
  • Upload date:
  • Size: 155.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for cleverdiff-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 49384b64d373ee27d7c5785963989dd394e5869caec5d3746017ea46d4430368
MD5 acf4d134189fe4829f7c6b2d60d86616
BLAKE2b-256 bed1dc13561621ecb312c90b54f7df7ced0f91f64097ef25b0c47c797801aa00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page