Diffuse – Graphical tool for merging and comparing text files

diffuse-0-4-8-1Diffuse is a small and simple 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, subversion and gnu revision control system (rcs) repositories for comparison and merging.

Canadian developer Derrick Moser began work on Diffuse about four years ago while doing experimental development. For tasks in which lots of editing was necessary he found existing merge tools painful to use. He wrote the first version of Diffuse in C++, the language with which he was most familiar, but after a long break he switched to Python to address several usability issues.

Developers frequently need to compare source code in two or more versions of a program, or in different programs, when maintaining software or integrating their work with that of others. Diffuse lets users edit the files being compared and save changed versions of checked-out working copies. This reduces barriers to experimental development, as users can easily discard portions their work that led to a dead end. Diffuse also has built-in support for several popular open source version control systems.

Most merge tools can perform two-way or three-way merges. Diffuse goes further by supporting n-way merges. It also handles many non-English character encodings, and supports input method editors used to type complex characters.

To download Diffuse visit its official webpage

Installing diffuse using terminal in ubuntu.

$ sudo apt-get install diffuse

Linux File Permissions

File Permissions
Every file on the system has associated with it a set of permissions. Permissions tell UNIX what can be done with that file and by whom. There are three things you can (or can’t) do with a given file:

  • r : read it,
  • w : write (modify) it and
  • x : execute it.

$ chmod [options] mode file(s)

chmod a-x file

This means that the execute bit should be cleared (-) for all users. (owner, group and the rest of the world) The permissions start with a letter specifying what users should be affected by the change, this might be any of the following:

  • u – the owner user
  • g – the owner group
  • o – others (neither u, nor g)
  • a – all users

This is followed by a change instruction which consists of a +(set bit) or -(clear bit) and the letter corresponding to the bit that should be changed.
Every one of the three digits on the mode number corresponds to one of the three permission triplets. (u, g and o) Every permission bit in a triplet corresponds to a value: 4 for r, 2 for w, 1 for x.

Triplet for u: rwx => 4 + 2 + 1 = 7
Triplet for g: r-x => 4 + 0 + 1 = 5
Tripler for o: r-x => 4 + 0 + 1 = 5
Which makes : 755

So, 755 is a terse way to say ‘I don’t mind if other people read or run this file, but only I should be able to modify it’ and 777 means ‘everyone has full access to this file’

Change multiple folder and file permissions recursively
$ chmod 755 'Folder' -R

Change multiple folder and file owner and Group recursively
chown user:group 'Folder' -R

Useful Linux Terminal Commands

Here are some useful and helpful commands which is generally used in day to day workings on the Linux system. Following commands were tested on the Ubuntu/Debian Linux.

To fix the broken packages
$ sudo apt-get install -f

Removing automatic installed packages
$ sudo apt-get autoremove

Check Gnome Shell version
$ gnome-shell --version

Current Kernel Version
uname -r

Compress PDF file using ghostscript
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Open help and options info of a command
$ man <command>

Short help info of any command
$ <command> --help

Make ISO of A Directory
An ISO of a directory containing files and sub-directories can be made using this command.
mkisofs -o image.iso -R /path/to/folder/

Force Kill Application
Run following terminal command then click the application’s window to close it.

Logout without prompt
$ pkill -KILL -u $USER

Create an ISO image of CD/DVD
sudo cat /dev/sr0 > foo.iso