Table of Contents
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, and subversion repositories for comparison and merging.
Diffuse 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.
Diffuse 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 Diffuse. You may also obtain a copy of the GNU General Public License from the Free Software Foundation by visiting their web site or by writing to
Free Software Foundation, Inc.
51 Franklin St, Fifth Floor,
Boston, MA 02110-1301
USA
diffuse [ -h | -? | --help | -v | --version ]Display information about Diffuse.
diffuse [ [ option ]... [ file ]... ]...Compare and merge files.
-e, --encoding codec
Use codec to read and write files.
-h, -?, --helpDisplay usage information.
--no-rcfile
Do not read the system wide initialisation file
/etc/diffuserc and personal
initialisation file ~/.diffuse/diffuserc.
-r, --revision rev
Include revision rev of the next
file named in the command line arguments in a file comparison
tab.
--rcfile file
Read initialisation commands from file
file instead of the system wide
initialisation file /etc/diffuserc and
personal initialisation file ~/.diffuse/diffuserc.
-s, --separateOpen all remaining files specified in the command line arguments in separate file comparison tabs.
-t, --tab label
Start a new tab called label for any
remaining files named in the command line arguments.
-v, --versionDisplay version number and copyright information.
Diffuse displays files side-by-side inserting gaps to align similar lines of text. Differences are highlighted with a different background colour. The mouse pointer or keyboard can be used to manually align lines of text from neighbouring files. To aligning lines of text using the mouse pointer, select a line of text with the left mouse button, right click on a line of text from a neighbouring file, and choose "Align to Selection". To align lines of text using the keyboard, move the selection with the cursor keys, press the space bar to pick the current line of text, move the selection with the cursor keys to a line of text in a neighbouring file, and press the space bar to pick the target line of text. Pressing the escape key will cancel the operation.
Press the enter key or double click on a text area to enter text editing mode. Diffuse will identify differences in neighbouring files during editing and highlight modified lines. Press the escape key or click on another file's text area using the left mouse button to leave editing mode.
Use the difference buttons to navigate blocks of differences within a file. Use the merge buttons to copy blocks of text into the selected range of lines. The revert tool will undo all changes to the selected lines regardless of the order they were made.
Table of Contents
Diffuse reads commands from the system wide initialisation file
/etc/diffuserc and personal initialisation file
~/.diffuse/diffuserc. A Bourne shell-like lexical
analyser is used to parse initialisation commands. Comments and
special characters can be embedded using the same method manner used in
Bourne shell scripts.
import file
Processes initialisation commands from
file. Initialisation files will
only be processed once.
keybinding context action key_combination
Binds a key combination to action when
used in context. Specify
Shift and Control modifiers by
prepending Shift+ and
Ctrl+ to
key_combination respectively. Keys
normally modified by the Shift key should be
specified using their modified value if
key_combination involves the
Shift key. For example,
Ctrl+g and Shift+Ctrl+G.
Remove bindings for key_combination by
specifying None for the
action.
Use menu for the
context to define key bindings for menu
items. The following values are valid for
action:
open_file→ menu item
reload_file→ menu item
save_file→ menu item
save_file_as→ menu item
new_2_way_file_merge→ menu item
new_3_way_file_merge→ menu item
quit→ menu item
undo→ menu item
redo→ menu item
cut→ menu item
copy→ menu item
paste→ menu item
select_all→ menu item
find→ menu item
find_next→ menu item
find_previous→ menu item
no_syntax_highlighting→ → menu item
syntax_highlighting_syntax→ → menu item
previous_tab→ menu item
next_tab→ menu item
preferences→ menu item
realign_all→ menu item
first_difference→ menu item
previous_difference→ menu item
next_difference→ menu item
last_difference→ menu item
revent→ menu item
merge_from_left→ menu item
merge_from_right→ menu item
isolate→ menu item
help_contents→ menu item
about→ menu item
Use line_mode for the
context to define key bindings for line
editing mode. The following values are valid for
action:
enter_align_modeenter alignment editing mode
enter_character_modeenter character editing mode
upmove cursor up one line
extend_upmove cursor up one line, extending the selection
downmove cursor down one line
extend_downmove cursor down one line, extending the selection
leftmove cursor left one file
extend_leftmove cursor left one file, extending the selection
rightmove cursor right one file
extend_rightmove cursor right one file, extending the selection
page_upmove cursor up one page
extend_page_upmove cursor up one page, extending the selection
page_downmove cursor down one page
extend_page_downmove cursor down one page, extending the selection
delete_textdelete the selected text
merge_from_leftmerge lines from file on the left
merge_from_rightmerge lines from file on the right
first_differenceselect the first difference
previous_differenceselect the previous difference
next_differenceselect the next difference
last_differenceselect the last difference
isolateisolate the selected lines
Use align_mode for the
context to define key bindings for
alignment editing mode. The following values are valid for
action:
enter_line_modeenter line editing mode
enter_character_modeenter character editing mode
upmove cursor up one line
downmove cursor down one line
leftmove cursor left one file
rightmove cursor right one file
page_upmove cursor up one page
page_downmove cursor down one page
alignalign the selected line to the cursor position
string name value
Declares a string resource called
name with value
value.
The following string resources are used by Diffuse:
auto_detect_encodingsa list of encodings to try when attempting to identify a file's encoding
character_classesdescribes mapping used to identify characters of a similar class for selection when double clicking
This resource is a series of
range:value
pairs. The range is either a single
number or low-high
corresponding to the code for the character or characters to be
set. Neighbouring characters that map to the same
value will be selected as a group
when double clicking on a word.
bzr_binexecutable used to query bazaar repositories
bzr_default_revisiondefault revision to retrieve from bazaar repositories for comparison
cvs_binexecutable used to query CVS repositories
cvs_default_revisiondefault revision to retrieve from CVS repositories for comparison
darcs_binexecutable used to query darcs repositories
darcs_default_revisiondefault revision to retrieve from darcs repositories for comparison
difference_coloursa list of colour resources used to indicate differences
fontfont used to render text
git_binexecutable used to query git repositories
git_default_revisiondefault revision to retrieve from git repositories for comparison
help_browserexecutable used to browse help documentation
help_dirdirectory containing the localised help documents
hg_binexecutable used to query mercurial repositories
hg_default_revisiondefault revision to retrieve from mercurial repositories for comparison
mtn_binexecutable used to query monotone repositories
mtn_default_revisiondefault revision to retrieve from monotone repositories for comparison
svn_binexecutable used to query subversion repositories
svn_default_revisiondefault revision to retrieve from subversion repositories for comparison
[ colour | color ] name red green blue
Declares a colour resource called
name. Individual colour components
should be expressed as a value between 0 and 1.
The following colour resources are used by Diffuse:
aligncolour used to indicate a line picked for manual alignment
char_selectioncolour used to indicate selected characters
cursorcolour used for the cursor
difference_1colour used to identify differences between the first pair of files
difference_2colour used to identify differences between the second pair of files
difference_3colour used to identify differences between the third pair of files
hatchcolour used for indicating alignment gaps
line_numbercolour used for line numbers
line_number_backgroundcolour of background in line number area
line_selectioncolour used to indicate selected lines
modifiedcolour used to indicate modified lines
textregular text colour
text_backgroundcolour of background in text area
float name value
Declares a floating point resource called
name with value
value.
The following floating point resources are used by Diffuse:
align_alphaalpha value used when compositing the manual alignment colour
char_difference_alphaalpha value used when compositing character difference colours
char_selection_alphaalpha value used when compositing the character selection colour
line_difference_alphaalpha value used when compositing line difference colours
line_selection_alphaalpha value used when compositing the line selection colour
modified_alphaalpha value used when compositing the modified line colour
syntax name initial_state default_tag
Declares a new syntax style called
name. Syntax highlighting uses a
simple state machine that transitions between states when
certain patterns are matched. The initial state for the state
machine will be initial_state. All
characters not matched by a pattern will be tagged as
default_tag for highlighting.
syntax_file name pattern
Specifies that files with a name matching
pattern should be highlighted using
the syntax style called name.
syntax_pattern name initial_state final_state tag pattern
Adds a pattern to the previously declared syntax style. The
pattern will only be used to match characters if the state
machine is in the state
initial_state. The state machine
will transition to final_state if
the pattern defined by pattern is
matched. All characters matched by the pattern will be tagged
as tag for highlighting.