Download Padre

Feature: Edit/Auto-Diff (draft)

Margin Markers

Revision 16300 marks a new milestone in Padre version control system (VCS) support. You can now type and Padre will automatically calculate differences and display them as margin markers.

  • plus (added), dark green.
  • minus (deleted), red.
  • right arrow marker (changed), blue.
You can click then on those margin markers to show what has actually been added, deleted or changed.


Just wanted to say that I recently added a differences popup window to Padre's editor.

  • You can now traverse all differences in your current document (via **Ctrl + comma**).
  • The dialog shows you what was added, deleted or changed at the current difference and enables you to revert the change if needed.
  • Padre can also automatically detect and find differences against your local repository (subversion or git) or the locally saved document.

Note two Tabs -> 8 Chr per Tab = 16 charters indent Ouch!

  • suggest 1 Tab = 2 charters, will maximise the diff-box real-estate.

Previous Diff

Move to Previous Diff.

Next Diff

Move to Next Diff.


Revert current Diff.


To Diff against VCS you need to enable **feature_vcs_support = TRUE** in Tool->Preferences->Advanced

Currently supported vcs.

  • GIT => 'Git',


Q, I do not see any content in the Diff-Box for add, only changed and deleted.

A, aha...

   that's the trick
   you get old text in your diff box
   so you can revert it
   if you add new lines, then nothing
   get it?

Q, So the diff stuff is relying on the underlying VCS tools and not an internal Padre thing.

A, svn => does a trick by reading .svn\file to diff in memory

   git => git show HEAD:$filename and then diff in memory
   diff in memory using Algorithm::Diff
   so they are not network bound
   and it is a background task...
   svn or git failed... fallback to editor buffer against saved document diff
   and the cool thing is that you can revert what's changed...

Q, Until you save it?

A, local => until you save

   svn project => svn diff
   git project => git diff
  • MERCURIAL => 'Mercurial',
  • BAZAAR => 'Bazaar',
  • CVS => 'CVS',