2015-11-21 18:12:37 +00:00
|
|
|
# Diffuse
|
2015-11-21 18:21:21 +00:00
|
|
|
|
2015-11-21 17:57:32 +00:00
|
|
|
Diffuse is a graphical tool for merging and comparing text files. Diffuse is
|
|
|
|
able to compare an arbitrary number of files side-by-side and gives users the
|
|
|
|
ability to manually adjust line matching and directly edit files. Diffuse can
|
|
|
|
also retrieve revisions of files from Bazaar, CVS, Darcs, Git, Mercurial,
|
|
|
|
Monotone, RCS, Subversion, and SVK repositories for comparison and merging.
|
|
|
|
|
|
|
|
Some key features of Diffuse:
|
|
|
|
|
2015-11-21 18:21:21 +00:00
|
|
|
* Ability to compare and merge an arbitrary number of files side-by-side (n-way
|
|
|
|
merges)
|
|
|
|
* Line matching can be manually corrected by the user
|
|
|
|
* Ability to directly edit files
|
|
|
|
* Syntax highlighting
|
|
|
|
* Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion, and SVK support
|
|
|
|
* Unicode support
|
|
|
|
* Unlimited undo
|
|
|
|
* Easy keyboard navigation
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2015-11-21 18:21:21 +00:00
|
|
|
## Requirements
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
Diffuse is implemented entirely in Python and should run on any platform with
|
|
|
|
Python and PyGObject.
|
|
|
|
|
2016-07-21 03:31:47 +00:00
|
|
|
* Python >= 3.4
|
|
|
|
* PyGObject >= 3.18
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
## Users
|
|
|
|
|
|
|
|
### Installing using Flatpak
|
|
|
|
|
|
|
|
This is the easiest way to install Diffuse:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
flatpak install io.github.mightycreak.Diffuse
|
|
|
|
```
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
## Developers
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
### Setup
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
#### Run Diffuse from source
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
To run Diffuse from the source code, type this:
|
|
|
|
```sh
|
|
|
|
python main.py
|
|
|
|
```
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
To debug with VS Code, open the directory in VS Code, place your breakpoints and hit F5.
|
|
|
|
|
|
|
|
#### Build Diffuse
|
|
|
|
|
|
|
|
To build Diffuse, type this:
|
|
|
|
```sh
|
|
|
|
python setup.py build
|
|
|
|
```
|
|
|
|
|
|
|
|
To run from the build, type this:
|
|
|
|
```sh
|
|
|
|
PYTHONPATH=build/lib ./build/scripts-3.7/diffuse
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Install Diffuse locally
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-08-11 17:46:56 +00:00
|
|
|
Diffuse build system is meson.
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-08-11 17:46:56 +00:00
|
|
|
To install diffuse locally:
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
```sh
|
|
|
|
meson setup build
|
|
|
|
cd build
|
|
|
|
meson compile
|
|
|
|
meson install # requires admin privileges
|
|
|
|
```
|
2020-08-11 17:46:56 +00:00
|
|
|
|
|
|
|
To uninstall diffuse afterwards:
|
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
```sh
|
|
|
|
sudo ninja uninstall -C build
|
|
|
|
sudo rm -v /usr/local/share/locale/*/LC_MESSAGES/diffuse.mo
|
|
|
|
```
|
2020-08-11 17:46:56 +00:00
|
|
|
|
|
|
|
Meson allows to change the default installation directories, see
|
|
|
|
[command-line documentation](https://mesonbuild.com/Commands.html#configure).
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
### Installing on Windows
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2015-11-21 18:21:21 +00:00
|
|
|
The `windows-installer` directory contains scripts for building an installable
|
2015-11-21 17:57:32 +00:00
|
|
|
package for Windows that includes all dependencies.
|
|
|
|
|
|
|
|
Diffuse can be packaged as a portable application by copying the installation
|
2015-11-21 18:21:21 +00:00
|
|
|
directory to a pen drive and creating a front end that sets the
|
|
|
|
`XDG_CONFIG_HOME` and `XDG_DATA_DIR` environment variables prior to launching
|
|
|
|
Diffuse. The `XDG_CONFIG_HOME` and `XDG_DATA_DIR` environment variables
|
|
|
|
indicate where Diffuse should store persistent settings (eg. the path to a
|
|
|
|
writable directory on the pen drive).
|
2015-11-21 17:57:32 +00:00
|
|
|
|
2020-11-29 16:39:19 +00:00
|
|
|
## Building and testing the Flatpak package
|
|
|
|
|
|
|
|
To install Diffuse locally:
|
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
```sh
|
|
|
|
flatpak install runtime/org.gnome.Sdk/$(uname -p)/3.38
|
|
|
|
flatpak-builder build-flatpak --user --install io.github.mightycreak.Diffuse.yml
|
|
|
|
```
|
2020-11-29 16:39:19 +00:00
|
|
|
|
|
|
|
To run Diffuse through Flatpak:
|
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
```sh
|
|
|
|
flatpak run io.github.mightycreak.Diffuse
|
|
|
|
```
|
2020-11-29 16:39:19 +00:00
|
|
|
|
|
|
|
To uninstall Diffuse:
|
|
|
|
|
2020-03-29 14:08:15 +00:00
|
|
|
```sh
|
|
|
|
flatpak remove io.github.mightycreak.Diffuse
|
|
|
|
```
|
2020-11-29 16:39:19 +00:00
|
|
|
|
2015-11-21 18:21:21 +00:00
|
|
|
## Help Documentation
|
2015-11-21 17:57:32 +00:00
|
|
|
|
|
|
|
Diffuse's help documentation is written in the DocBook format and can be easily
|
|
|
|
converted into other formats using XSLT stylesheets. If the local help
|
|
|
|
documentation or its browser are unavailable, Diffuse will attempt to display
|
2016-07-03 17:21:06 +00:00
|
|
|
the on-line help documentation using a web browser.
|
2021-01-11 18:58:43 +00:00
|
|
|
|
|
|
|
## Licenses
|
|
|
|
|
|
|
|
Diffuse is under the [GPLv2](COPYING).
|
|
|
|
|
2021-11-23 03:14:22 +00:00
|
|
|
The file [io.github.mightycreak.Diffuse.appdata.xml.in](data/io.github.mightycreak.Diffuse.appdata.xml.in)
|
2021-01-11 18:58:43 +00:00
|
|
|
is licensed under the [FSF-AP](https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html)
|
|
|
|
license.
|
|
|
|
|
|
|
|
Copyright (C) 2006-2019 Derrick Moser <derrick_moser@yahoo.com>
|
|
|
|
Copyright (C) 2015-2021 Romain Failliot <romain.failliot@foolstep.com>
|
|
|
|
|
|
|
|
Icon made by [@jimmac](https://github.com/jimmac).
|