5

I have a Macbook at home and a GNU/linux desktop workstation at work. But, I sometimes also have to work on my university's library machines (running Windows 7) without admin rights.

Is there a (preferably open-source), but certainly free (as in free beer), cross-platform GUI-based plain-text diff-tool that will work on at least these three platforms (Win 7 & 10, GNU Linux, MacOS 10.13)? For Windows machines, this must work without admin priveleges.

Viable option until now: VimDiff

I did an exhaustive research of options before posting this question. The only viable tool I could find was vimdiff (i.e. the diff-mode within vim) that truly satisfies all criteria (GUI available, free, open-source, cross-platform). The amazing fugitive.vim plugin by the legendary tpope also brings in git-based diff and 3-way merging to within vim. Now, while I am very comfortable with vim, since I need to also work on friends' machines to view diffs on a collaborative project, I do not want to force them to learn vim. Furthemore, since we are presently working on prose (a paper being written in latex) rather than code, I think a word-based diff-tool, rather than a line-based one shall be helpful.

Possible cue: Java based

A majority of machines I work on have a working JRE installed. So, even if a true multi-platform native desktop application is not available, an app distributed as a portable jar file which runs atop a standard JVM/JRE should be good enough. I found jedit which has a diff plugin. But even this asks for an install to the restricted C:\program_files(x86) location on Windows. I am looking for something which works akin to jabref which is a brilliant reference management software distributed as a cross-platform standalone jar file.

Possible cue2: Tcl/Tk based alternatives

The TCL/TK framework seems to be yet another way to go portable. I found tkdiff which seems to be well-maintained. But, my univeristy's library machines do not have TCL/TK framework installed on Win 7. I tried clicking around freewrap but cannot figure out how to use it. Any help in this direction is also welcome.

Note on web-based alternatives

prettydiff is a viable browser-based alternative that ticks all required boxes. But since we do not like to upload any source-component of our project on the web (despite any privacy promises), a standalone desktop application becomes essential. Such web-based tools cannot also handle git repos, and is good for just a quick one-off diff, rather than as part of a systematic workflow.

PS: Git or other vcs-diff capabilities will be a bonus.

1
  • I tried alacritty and wizterm and was underwhelmed. kitty didn't even work on Mac OS. Commented Feb 19 at 7:11

3 Answers 3

2

PrettyDiff is CC0 licensed -

"Pretty Diff project, as of version 2.1.17 and all following versions unless otherwise changed, is licensed with a Creative Commons 1.0 Universal license (CC0)."

Why not grab source and run it on your own machine or on a VPS?

Website: http://prettydiff.com/

GitHub: https://github.com/prettydiff/prettydiff

1
  • This seems to be an NPM project? The computers I work with don't have nodejs installed. Maybe there is a portable version of a node-compatible JavaScript engine I can use. Commented Jul 2, 2018 at 8:56
2

I use Diffuse. From the "About" page:

Diffuse is a small and simple text merge tool written in Python.

Diffuse should run on any POSIX operating system, including Mac OS X, with the following packages installed:

Python >= 2.4
PyGTK >= 2.10

Pre-built packages for Microsoft Windows include all dependencies.

Development has stopped in 2014, though.

3
  • Aah. Diffuse seems to be good. Thanks for the pointer. I do hate bitrot. After all, nobody can write bug-free code in a major project, plus there are always improvements to polish various things. Even sporadic development would be understandable in a mature project, but complete abandonment is not a good sign. Commented Jul 2, 2018 at 9:03
  • This does not answer the use case in my question. It is not a self-contained portable application. When I downloaded the exe file on my library computer, it popped up the admin prompt. Commented Jul 6, 2018 at 12:23
  • Maybe some of the GUI toolkits are missing. don't know how to install them as non-admin user on windows.
    – knb
    Commented Jul 6, 2018 at 12:59
1

When I need portability I generally look to perl. For example, on a Mac:

$ head z1 z2 ; ./diff.pl z1 z2
==> z1 <==
hi

==> z2 <==
bye
1c1
< hi
---
> bye

Here are some details:

diff.pl Display differences in text files, perl version. (what)
Path    : ~/bin/diff.pl
Version : - ( local: ~/bin/diff.pl, 2009-10-22 )
Length  : 729 lines
Type    : Perl script, ASCII text executable
Shebang : #!/usr/bin/perl
Modules : (for perl codes)
 strict 1.08
 Carp   1.3301
 Algorithm::Diff        1.1902

On a system like:

OS, ker|rel, machine: Apple/BSD, Darwin 17.6.0, x86_64
Distribution        : macOS 10.13.5 (17F77), High Sierra
diff.pl - ( local: ./diff.pl, 2018-07-01 )

And diff.pl can be found at cpan.org: perl version of diff You'll need perl on Windows; I have not tried that recently.

Best wishes ... cheers, drl

1
  • Thank you. Yes. There is official strawberryperl portable for Windows. I need to mention that I am looking for graphical (GUI-based) diffing and merging, as vimdiff (diff mode within vim) is already available and portable editions of vim are already available on windows. With fugitive.vim plugin, git diffs are no problem as well. I shall update the question accordingly to narrow down the scope. I am really sorry about this. Commented Jul 1, 2018 at 11:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.