diffuse-0.8.2/0000755000232200023220000000000014417031255013516 5ustar debalancedebalancediffuse-0.8.2/requirements.dev.txt0000644000232200023220000000010114417031255017547 0ustar debalancedebalance-r requirements.txt flake8 ~= 6.0 flake8-noqa ~= 1.3 mypy ~= 1.1 diffuse-0.8.2/README.md0000644000232200023220000000524514417031255015003 0ustar debalancedebalance

Diffuse

Download on Flathub

CI status Packaging status

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 several VCSs for comparison and merging. Some key features of Diffuse: * 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 * Supports several VCS: [Bazaar][bzr], [CVS][cvs], [Darcs][darcs], [Git][git], [Mercurial][hg], [Monotone][mtn], [RCS][rcs], [Subversion][svn] and [SVK][svk] * Unicode support * Unlimited undo * Easy keyboard navigation [bzr]: https://bazaar.canonical.com [cvs]: https://cvs.nongnu.org [darcs]: http://darcs.net [git]: https://git-scm.com [hg]: https://www.mercurial-scm.org [mtn]: https://www.monotone.ca [rcs]: https://www.gnu.org/software/rcs/ [svn]: https://subversion.apache.org [svk]: https://metacpan.org/dist/SVK ## Documentation For a more detailed documentation for users, translators and developers, see the [documentation](docs/). ## Contact Discuss with us on Matrix at [#diffuse:matrix.org](https://matrix.to/#/#diffuse:matrix.org). ## Licenses Diffuse is under the [GPLv2](COPYING). The file [io.github.mightycreak.Diffuse.appdata.xml.in](data/io.github.mightycreak.Diffuse.appdata.xml.in) 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 Copyright (C) 2015-2023 Romain Failliot Icon made by [@jimmac](https://github.com/jimmac). This repository is a fork of the original project on SourceForge, which doesn't seem to be maintained anymore: . diffuse-0.8.2/.editorconfig0000644000232200023220000000034714417031255016177 0ustar debalancedebalanceroot = true [*] charset = utf-8 end_of_line = lf indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false [*.{yml,yaml,xml,xml.in}] indent_size = 2 diffuse-0.8.2/.markdownlint.json0000644000232200023220000000017514417031255017203 0ustar debalancedebalance{ "default": true, "no-duplicate-heading": false, "no-inline-html": false, "no-emphasis-as-heading": false } diffuse-0.8.2/requirements.txt0000644000232200023220000000002214417031255016774 0ustar debalancedebalancePyGObject ~= 3.44 diffuse-0.8.2/utils/0000755000232200023220000000000014417031255014656 5ustar debalancedebalancediffuse-0.8.2/utils/makemanual.py0000755000232200023220000000651214417031255017352 0ustar debalancedebalance#!/usr/bin/env python # Copyright (C) 2010 Derrick Moser # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the licence, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program. You may also obtain a copy of the GNU General Public License # from the Free Software Foundation by visiting their web site # (http://www.fsf.org/) or by writing to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # This program translates Diffuse's DocBook help into a manual page using the # book2manual.xsl template. import os import subprocess # fetch translations for English text hard coded in the stylesheets translations = {} f = open('translations.txt', 'rb') for v in f.read().split('\n'): v = v.split(':') if len(v) == 3: lang = v[0] if not translations.has_key(lang): translations[lang] = [] translations[lang].append(v[1:]) f.close() # find all localised versions of the DocBook manual d = '../src/usr/share/gnome/help/diffuse' for lang in os.listdir(d): # skip over any .svn files if lang.startswith('.'): continue # convert regular DocBook manual into a form suitable for man pages cmd = [ 'xsltproc', 'book2manual.xsl', os.path.join(os.path.join(d, lang), 'diffuse.xml') ] proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) proc.stdin.close() proc.stderr.close() fd = proc.stdout s = fd.read() fd.close() if proc.wait() != 0: raise OSError('Could not run xsltproc') # save man page suitable DocBook file a = 'diffuse.xml' f = open(a, 'wb') f.write(s) f.close() # convert to man page cmd = [ 'xsltproc', '/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl', a ] proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) proc.stdin.close() proc.stderr.close() fd = proc.stdout s = fd.read() fd.close() if proc.wait() != 0: raise OSError('Could not run xsltproc') os.unlink(a) # read resulting man page f = open('diffuse.1', 'rb') s = f.read() f.close() os.unlink('diffuse.1') # remove comments s = '\n'.join([ c for c in s.split('\n') if not c.startswith('.\\"') ]) # fix arrow s = s.replace('\xe2\x86\x92', '\\(->') # translate extra text for k, v in translations.get(lang, []): s = s.replace(k, v) # figure out where to save the new man page # make subdirectories if necessary dd = '../src/usr/share/man' if lang != 'C': dd = os.path.join(dd, lang) if not os.path.exists(dd): os.mkdir(dd) dd = os.path.join(dd, 'man1') if not os.path.exists(dd): os.mkdir(dd) # finally save the man page f = open(os.path.join(dd, 'diffuse.1'), 'wb') f.write(s) f.close() diffuse-0.8.2/utils/book2manual.xsl0000644000232200023220000000763114417031255017627 0ustar debalancedebalance ]> &date; &app; 1 &app-version; &app-cmd; &app; Manual &app-cmd; graphical tool for merging and comparing text files &app-cmd; &app-cmd; option file Description Options Author Copying diffuse-0.8.2/utils/makemacicon.sh0000755000232200023220000000101614417031255017462 0ustar debalancedebalance#!/usr/bin/env bash # Use this tool if you need to re-create # Diffuse.app/Contents/Resources/diffuse.icns # in case the icon changes (unlikely). sizes=(16 32 64 128 256 512) for s in "${sizes[@]}"; do echo $s rsvg-convert -h $s "$1" > "icon_${s}x$s.png" done cp 'icon_32x32.png' 'icon_16x16@2x.png' cp 'icon_64x64.png' 'icon_32x32@2x.png' cp 'icon_256x256.png' 'icon_128x128@2x.png' cp 'icon_512x512.png' 'icon_256x256@2x.png' mkdir icon.iconset mv icon_*x*.png icon.iconset iconutil -c icns icon.iconset diffuse-0.8.2/utils/makepdfmanual.sh0000755000232200023220000000040614417031255020022 0ustar debalancedebalance#!/bin/bash xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl ../src/usr/share/gnome/help/diffuse/C/diffuse.xml | sed 's/→/&<\/fo:inline>/g' > diffuse.fo fop -fo diffuse.fo -pdf diffuse.pdf rm diffuse.fo diffuse-0.8.2/utils/makehtmlmanual.sh0000755000232200023220000000043114417031255020213 0ustar debalancedebalance#!/bin/bash xsltproc --nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl ../src/usr/share/gnome/help/diffuse/C/diffuse.xml | sed 's/<\/head>/<\/head>/;s/