Revision history for mtn-browse.

1.20  Sat Mat 07 19:21:00 2016 Anthony Cooper <support@coosoft.plus.com>
	- Changes made to support Monotone version 1.10.
	- Fixed the system() issue by using my own routine. There seemed to be
	  some interference between system() and my signal handler.
	- Removed the " &" `run in the background' shell characters for spawned
	  off shell commands as it's not needed. Also now break out commands
	  into a list of separate arguments so that the command can be exec'ed
	  more efficiently.
	- Changed the revision differences code so as to cope with a varied
	  number of leading blank comment lines.
	- Improved dot parsing by making sure bracketed statements are merged
	  into one line.
	- Made all eventboxes used in truncatable labels 10000 pixels wide so
	  as to get consistent look and feel under KDE 4.x.
	- Strip off leading and trailing white space from the command attribute
	  contained within Gnome's mine object as it can contain pointless
	  white space.
	- Now cater for not only multiple versions of Gtk2::SourceView but also
	  Digest::SHA.
	- Now guard against file open/save dialogs returning undef as the
	  selected folder when the user selected something from recents.
	- Glib::Timeout->remove() now whines about non-existent timer sources
	  if the specified timer has expired so I now have to guard against
	  this brain dead behaviour.
	- The DependencyChecker module now appends multiple errors into the one
	  string.
	- Assorted code consistency changes and cleanups.
	- Updated patch files.
	- Upped the version number to 1.20.

1.10  Thu Apr 11 14:22:00 2013 Anthony Cooper <support@coosoft.plus.com>
	- Release of 1.10.
	- Implemented a workspace comparison tool.
	- Implemented the ability to annotate files from a file's history list
	  and to annotate a file at its parent revision in the annotation
	  window itself.
	- Implemented the go to line window as a part of what was FindText.pm
	- Implemented a facility for saving the current window sizes and
	  resetting them back to their default settings.
	- Added a go to text line button to the main browser window.
	- Now use a right click context menu instead of dedicated revision
	  buttons inside revision and file history windows. Using the buttons
	  on some platforms causes a really big slowdown in rendering the
	  history. Using a context menu, whilst slightly less user friendly, is
	  vastly more efficient.
	- Now provide a `{line}' token that contains the number of the line
	  currently displayed in the middle of the file viewer when launching
	  external viewer applications.
	- Made some of the annotation code more generic as we are now using
	  similar techniques when displaying history as well.
	- Difference listings now prefer the new file name when referring to
	  files in the listing.
	- Made buttons on info dialogs consistent.
	- Corrected help URL for the change history graph dialog window.
	- Updated patch files.
	- Renamed the distro-readme file so as to be more consistent with the
	  other README file.
	- Updated the help to take into account the changes in the GUI.
	- FindText.pm has now been renamed FindTextAndGoToLine.pm.
	- Now correctly set the cb block boolean when calling a browser's
	  update handler due to a user selecting an entry in an auto-completion
	  list (otherwise the resetting of the tagged tick box would unload the
	  selected revision when dealing with the selection of a revision with
	  a non-unique tag).
	- Also added in another re-entry block for the completion list update
	  handler.
	- Implemented the concept of a no-help callback that is called when no
	  help can be found for the given widget, window or application.
	- The help callback no longer worries about re-entrancy (this was
	  stopping it from working on some modal dialog windows).
	- Improved the error handling for processes, handling of process
	  reaping and now have finer grained control over
	  Monotone::AutomateStdio object creation.
	- Fixed a bug where Gnome2::VFS->get_mime_type_for_data() was being
	  given a reference to a scalar rather than the scalar itself. This
	  helps to correctly set up syntax highlighting for files without a
	  dedicated MIME entry and no extension.
	- The load_preferences() and save_preferences() routines now handle any
	  errors, telling the user, rather than let the caller do it. Saves
	  code duplication.
	- All resizable windows are now not visible by default so as to allow
	  any resizing of new windows to go on before they get displayed.
	- The cond_find() method in the WindowManager class now passes the
	  window's type as the second argument to the predicate function.
	- Registered some help for the multiple revisions dialog window.
	- All constructors now only honour <Class Name>->new() and not
	  <Object>->new() as well. This makes the code cleaner and is less
	  confusing to the caller as the object way of calling the constructor
	  could be misinterpreted as some sort of clone method (which it
	  isn't).
	- Now make sure that all Gtk2::SpinButtons have their update() method
	  called before getting their value.
	- Now more defensive when using Gtk2::TextBuffer->get_iter_at_line().
	- No longer check that iters returned from
	  GTK2::TextBuffer->get_iter_at_line() are at the start of a line as
	  this is what the method does.
	- Now clone iters rather than recreate them from scratch each time.
	- Removed duplicated code in mtn-browse.
	- Made calls to WindowManager's update_gui() method more consistent.
	- Corrected some status text.
	- Made some code more consistent and improved some comments.

1.00  Sat Apr 07 16:42:00 2012 Anthony Cooper <support@coosoft.plus.com>
	- Release of 1.00.

1.00-RC2  Sun Feb 05 16:20:00 2012 Anthony Cooper <support@coosoft.plus.com>
	- Implemented an `Open Recent' menu.
	- mtn-browse now accepts one custom argument on the command line, the
	  name of the database to open.
	- Now allow Monotone style URLs when connecting to remote servers.
	- The history graph button is now enabled for remote connections.
	- The adjust_time() routine now checks that the `day of month' value is
	  still valid when adjusting time by months or years. For example going
	  forward by a month from 31/01/2012 should yield 29/01/2012 and not
	  31/02/2012.
	- Now reset the progress bar just before displaying the nothing found
	  dialog window when doing custom queries via the advanced find dialog
	  window. This prevents the progress bar from being shown in it's
	  pulsed state when the dialog window is displayed. Other occurrences
	  don't display a dialog window directly after pulsing the progress
	  bar.
	- Selected but suspended branches are now included in any list of
	  selected branches in the change history graph dialog window.
	- Now correctly save and restore change graph history date/time range
	  values when switching between history graphs. Also cancelling out of
	  the change history graph dialog window reverts any date/time range
	  settings to those last used.
	- Now reset the option widgets to the current settings when displaying
	  the change history graph dialog window.
	- The check_and_open_database() routine now displays the name of the
	  database it is having problems with (it doesn't assume the context of
	  an open database diaglog window).
	- Now use the check_and_open_database() routine for opening the
	  database on program startup. This gives better diagnostics for the
	  user should something go wrong.
	- The global variables used for storing the current option settings are
	  now not altered by the change_history_graph_parameters() routine but
	  by the caller instead (slightly more duplication but much better data
	  ownership).
	- Added some more separators to the File menu.
	- Standardised some warning messages.
	- Corrected some naming convention inconsistencies.
	- Reordered a few routines to be more consistent.
	- Corrected some spelling mistakes.
	- Updated the README file with new dependency information and an
	  explanation of the `Use Gtk2::Labels' installer option.  - Updated
	  the help file to include details about the new changes and also
	  making some unrelated corrections (mainly missing links).
	- Updated the copyright information in the about dialog.
	- Updated the MAS dependency in the installer.
	- Updated the version number to 1.0.
	- Corrected some help text regarding suspended branches in history
	  graphs.
	- Updated both patch files.
	- Updated the locale POT database as a result of code changes.

1.00-RC1  Wed Dec 28 16:40:00 2011 Anthony Cooper <support@coosoft.plus.com>
	- Implemented a fully functional, fast, integrated history graph
	  facility that replaces the need for monotone-viz.
	- Implemented a custom auto-completion entry setup that is much more
	  efficient than using a simple ComboBoxEntry widget. This is now used
	  on all branch, revision and directory entry fields.
	- Got rid of the static lists option under preferences as this is no
	  longer needed with the new entry auto-completion setup.
	- Updated the help to take into account the new history change graph
	  window and the new auto-completion entry fields. Also corrected a few
	  minor inconsistencies in the code and the GUI.
	- Implemented the pulsing of progress bars when waiting for Monotone or
	  running some external command. Applied this to advanced find queries,
	  revision and file comparisons, annotations and running dot.
	- Removed redundant frames in the more simple windows so as to save on
	  screen real-estate. I also tried this with the main browser window
	  but it looked a bit odd as the top of the treeview didn't line up
	  with the top of the textview and one group of widgets just seemed to
	  run into the other so on balance the browser stays as it is.
	- Added a `browse file ' option to the annotate menu like we have in
	  the history graph window.
	- All date/time strings with the exception of those entered via the
	  helper widgets in the advanced find window are now displayed in a
	  locale specific way and in the local time.
	- Operators are no longer escaped when they are inserted into advanced
	  find queries.
	- Now correctly enable and disable the text entry and date edit widgets
	  depending upon the type of selector chosen in the advanced find
	  window.
	- All modal dialogs now put the application into a busy state to make
	  it clearer to the user what is going on.
	- Made the file name column in the main browser window unresizable when
	  not displaying a detailed listing.
	- The application no longer exits when mtn crashes. On balance this is
	  probably more helpful to the user.
	- To dates are now rounded up when loading date-time widgets as they
	  truncate to the nearest minute.
	- Made meld the default external comparison tool.
	- Added a patch file that can be applied to switch mtn-browse over to
	  using Gtk2::SourceView2 instead of the now deprecated
	  Gtk2::SourceView. This will be applied by the installer.
	- Now detects which version of Gtk2::SourceView is in use and uses the
	  appropriate source files.
	- The run_command() routine now takes an optional input callback to
	  feed data to the subprocess.
	- Now make use of the new run_command() routine to run dot (no more
	  code duplication).
	- Adapted the advanced find dialog so that one can optionally specify a
	  call-back routine and client data for checking the suitability of
	  selected revisions.
	- Got rid of all Glade objects after use, it uses memory and according
	  to the project's documentation this is safe and expected.
	- Renamed references to monotone-viz to history graph.
	- Cleaned up the code in ManageServerBookmarks.pm a bit.
	- Corrected some comments.
	- Put the date range widget and general support routines into a
	  separate module for use by both the find files and history graph
	  windows. Also wrote an adjust_time() routine based on existing code
	  and put that into Common.pm
	- Changed the event handling code to be more consistent for the
	  advanced find and preferences dialog windows.
	- Rationalised the code for the find files window to make use of the
	  above common routines and the DateRange module.
	- The calculate_update_interval() routine now works with references to
	  arrays, hashes and simple values.
	- Had to implement the concept of an application cleanup handler so
	  that Gnome2::Canvas widgets can be completely unreferenced before
	  they are destroyed on program exit.
	- Now use the OO style calling convention for IO handle style objects
	  rather than the functional style that was used in some places.
	- Removed image files no longer needed in the updated help
	  documentation.
	- Updated the help links in the code to point to the new history graph
	  help sections.
	- Updated help images.
	- Fixed minor issues with installer.
	- Setup the installer to take options to deal with labels in history
	  graphs and where to find graphviz's dot program.
	- Also changed the installer so that it will patch files if needed when
	  run.
	- Updated installer help and installation documentation to reflect the
	  above changes.
	- Made the advanced find update granularity coarser. It now updates at
	  approximately double the speed.
	- Made the update interval when loading a list much coarser, speeds
	  things up a lot.
	- Now use the autosize mode of column resizing for all columns on the
	  extreme rhs of treeviews.
	- Now pulse the progress bar when getting lists of revisions either as
	  tags or as ids.
	- Changed the WindowManager class to cope with the concept of custom
	  event handlers.
	- All internal times are now expressed in GMT as this is what Monotone
	  uses internally and in its stdio interface.
	- Put the Monotone time format string into a constant that is now used
	  instead.
	- Changed the window management library to better cope with unrealised
	  windows.
	- Changed the handle_comboxentry_history() routine so that it
	  automatically creates new history entries in the user preferences
	  file as and when needed.
	- Removed the pre-setting of the combobox entry histories in the user
	  preferences logic.
	- Corrected uninitialised bug found by Thomas K.
	- Now use the blessed() routine and the isa() method to determine
	  whether a parameter is just a hash reference or a Gtk2::Dialog
	  window. Using isa as a routine is deprecated in later versions of
	  Perl.
	- The run_command() routine now takes an extra argument that determines
	  whether the command is run under the current locale or the standard C
	  one. This is used when running dot.
	- Change the adjust_time routine to allow for adjusting time forwards
	  as well as backwards.
	- Removed tabs in indentation. It's a big change and so it is checked
	  in on its own.
	- Now escape special characters such as /| and \ in selection strings
	  passed to Monotone via Monotone::AutomateStdio.
	- Cleaned up some revision selection logic a bit.
	- Now no longer have a dependency on Gnome2::Print (there should never
	  have been one).
	- Switched the tooltips around for the revision selection buttons in a
	  revision history window.
	- Switched off bracket highlighting (this was responsible for that
	  little grey blob in the SourceView text window).
	- Now use floor() instead of int().
	- Now use foreach for all iterator style loops.
	- Made variables more local in create window routines.
	- Put a local $instance->{in_cb} = 1; after all if - else window
	  creation blocks if it fiddles around with widgets.
	- Re-ordered some routines to be in a more logical order and
	  standardised some code.
	- Corrected some existing tooltips.
	- Minor code/comment cleanups.
	- Updated ignore file.
	- Updated the patch files.

0.72  Sun Feb 20 10:40:00 2011 Anthony Cooper <support@coosoft.plus.com>
	- Implemented the `Restrict to' combobox feature in the history window
	  so that a user can restrict a revision/file history to a selected
	  branch.
	- Added the new selectors and selector functions introduced in Monotone
	  0.99.1.
	- If supported, now use the get_extended_manifest_of() method for
	  getting a revision's manifest instead of the get_manifest_of()
	  method.
	- Changed the cache_extra_file_info() routine to make use of the
	  additional information in an extended manifest if it is available.
	- Got rid of the get_file_details() routine and included it's logic
	  into the cache_extra_file_info() routine.
	- Got rid of a redundant `save preferences' code block in the
	  setup_mtn_object() routine.
	- List stores associated with the main browser manifest treeview and
	  the advanced find dialog window are now recreated rather than reused
	  when reusing the respective windows. This has the effect of resetting
	  column sorting settings.
	- Now guard against going off the end of the line input array when
	  dealing with binary files at the end of a revision difference
	  listing.
	- Re-instated the `==========' style file separators when displaying
	  non-colour highlighted, i.e. plain, revision difference listings.
	- Changed the history report generator routine such that if the user
	  should truncate the history gathering process that this is reflected
	  if he should change branches and then switch back to `All Branches'.
	- Icon column in treeview is now allowed to choose its own size.
	- Corrected a mistake with one of the message dialogs where I didn't
	  pass the correct number of parameters.
	- Now use the OO style calling convention for IO handle style objects
	  rather than the functional style that was used in some places.
	- Reformatted my statements to be more consistent with other statements
	  rather than operators.
	- Cleaned up a few clumsy statements and comments.
	- Updated the built-in help to document the new selectors introduced in
	  Monotone version 0.99.1 and the new `Restricted to' comboxbox on the
	  history window.
	- Updated all of the screenshot style images to update them to Gnome's
	  Clearlooks blue theme.
	- Updated the POT file in preparation for translation updates.
	- Updated German translation.

0.71  Wed Aug 18 09:57:00 2010 Anthony Cooper <support@coosoft.plus.com>
	- Updated to take into account the changes in diff output made in
	  Monotone version 0.48.
	- Added the ability for a user to select an authorisation key when
	  connecting to remote databases.
	- The ComboBoxEntry autocompletion code now displays `busy' state
	  feedback along with status messages when updating ComboBoxEntry
	  pulldown lists. Also the display is updated more often and more
	  consistently.
	- The directory up button now displays `busy' state feedback when doing
	  stuff.
	- The directory up button now honours the static list setting.
	- Made the text cursor in branch and directory ComboBox entry fields
	  move to the end on update as it is more useful to display the end of
	  a branch or path name rather than the beginning.
	- Entry fields are now populated before the pull down lists for the
	  affected ComboBox entry fields.
	- Made display updates scalable depending upon how big the number of
	  items to update is. Applies to branch, revision and directory
	  ComboBox entry fields.
	- Made the above cursor movement more snappy.
	- Switched over to using Gtk2::MenuItem->new_with_label() instead of
	  Gtk2::MenuItem->new() when creating menu entries that may
	  legitimately contain underscore characters as part of their name.
	- Updated tooltips accordingly to be consistent with the second item
	  above.
	- Updated the help documentation to reflect recent changes made to the
	  mtn-browse.
	- More typos corrected.

0.70  Mon May 31 14:50:00 2010 Anthony Cooper <support@coosoft.plus.com>
	- Updated the help documentation in light of the changes made to
	  mtn-browse (the manage server bookmarks dialog window, the file
	  encoding menu options and the compare arbitrary revisions window).
	- Updated the code to reference the new help sections.
	- Updated mtn-browse's version number and the year on the copyright
	  notice.
	- Removed the scrolled windows and layouts from the revision id value
	  labels in the compare arbitrary revisions window as I couldn't get
	  the text lines to line up horizontally between the labels and
	  corresponding values due to the advanced find buttons being in the
	  same row.
	- Made sure that all the buttons on the compare arbitrary revisions
	  window don't accept focus (like all the other flush buttons).
	- Made sure that the first value label gets the focus so as to take it
	  away from the first button.
	- Improved, updated and corrected a few tooltips and removed some
	  others that are dynamically generated by the application.
	- Worked around a bug in Gnome::VFS which causes a core dump on Debian
	  Lenny.
	- Updated the figures with snapshots of the new version of mtn-browse.
	- Added eye.png to the ignore list.
	- Implemented the select arbitrary revisions feature.
	- The advanced find dialog window now puts the keyboard focus onto the
	  branch comboboxentry field by default (just like the main browser
	  window).
	- All menu items that rely on an open database are now disabled when
	  there isn't one.
	- The server bookmarks menu is only enabled if mtn supports that
	  feature, this information is also cached in the user's preferences
	  just in case they don't start mtn-browse with a default database.
	- The annotate button is disabled when accessing a remote server.
	- Entered in the help reference for the server bookmarks manager
	  window.
	- The run_command() routine now supports command termination and errors
	  from sysread() are dealt with.
	- The revision comparison window now allows a user to stop the
	  comparison not only during the formatting stage but also during the
	  actual mtn diff operation as well.
	- Now guard against re-entrancy in custom dialog windows when calling
	  the hide() method.
	- Needless updates to the MIME types treeview are now avoided.
	- Now track changes in paths inside the MIME treeview as a result of
	  the user changing the display order.
	- Now disable Monotone-Viz button with remote connections.
	- Put manage menu item the end of the servers menu.
	- Now rely on Monotone::AutomateStdio to report all server connection
	  problems.
	- Sorted out the focus issue with all TreeViews when searching for text
	  (the selection would change but nothing else acted on that selection
	  change).
	- Added the `connect to service' logic and GUIs.
	- Now deal with errors resulting from trying to open a Monotone
	  database in a much more intelligent way.
	- Improved some of the messages in error dialogs.
	- Added a View menu that allows the user to select the character
	  encoding in use inside text files stored inside a Monotone database
	  rather than just assume it is UTF-8.
	- Now a bit more explicit about the error handing from the
	  encode/decode routines.
	- The character decoding is now done specifically by the annotation and
	  history modules rather than generically by run_command (this is to
	  cope with a mixture of character encodings in the output from
	  annotate and content_diff - i.e. the UTF-8 explanatory text added by
	  Monotone and the character encoding used in the original text file).
	- Minor code tidy ups and comment corrections.
	- Updated the translation files.

0.63  Sun Nov 08 13:27:00 2009 Anthony Cooper <support@coosoft.plus.com>
	- Updated the help documentation in light of the changes made to the
	  GUI, i.e.:
	  - Changes in some of the icons.
	  - New preferences to do with binary thresholds and completion
	    tooltips.
	- get_file_details() now makes sure that it goes with the latest
	  revision to hand, just like other parts of mtn-browse.
	- The MAS content_diff() method is used instead of fork-execing off
	  another instance of Monotone if it supports the --with-headers
	  option. Who ever was responsible for actioning my ticket - a big
	  thank you :-).
	- Now guard against files comparing the same between different
	  revisions.
	- Added the binary threshold preference option and its implementation.
	- Re-ordered some preference settings into more logical groups.
	- Implemented preference options for controlling the display of
	  completion tooltips and listing folders before files instead of
	  alphabetically in directory listings.
	- Made some of the button icons more meaningful and improved the look
	  of some of the rest.
	- Autocompletion now does not allow "" as a valid complete entry
	  against an empty list of possible completions.
	- scalar(%hash) is used instead of defined(%hash) to see if a hash is
	  empty (the defined approach is depreciated apparently).
	- The autocompletion logic has been cleaned up some more so as not to
	  make unnecesary updates to the screen and to correctly detect
	  completions when deleting text from the end of a term and the static
	  lists setting is turned on.
	- Entries within completion tables now always point to other tables.
	- Truncated completions are still marked as complete if the truncated
	  value is so.
	- The status bar is cleared out when opening another database.
	- Implemented the tooltip feedback feature for auto-completing
	  comboboxentry widgets (suggestion from Thomas Keller).
	- The callbacks for these auto-completing comboboxentry widgets are now
	  registered via a setup routine rather than via Glade as some
	  callbacks need to be registered with the comboboxentry's entry child
	  widget.
	- Moved some of the setup code into the multiple_revisions_selection
	  routine so as to be consistent with other window setup modules.
	- Reordered the comboboxentry initialisation code to reflect the order
	  of the widgets on the main browser window.
	- Implemented the `Multiple Revisions' dialog window and use it when
	  either a tag has been selected which is not unique on that branch or
	  when auto select head revision is switched on and the user switches
	  to a multi-headed branch.
	- Now pack at the start of a collection when using the pack_start()
	  method (more standard and consistent).
	- Added extra protection in some of the get_... window creation
	  routines to stop recursion.
	- Updated the help documentation and screenshots accordingly.
	- Made the exception handling cleaner and more consistent.
	- Now check that a program is known before attempting to run it. If it
	  isn't known then tell the user via a dialog window.
	- The run_command routine now returns its data as UTF-8.
	- In the places where unpack() is used to break apart strings, the
	  returned parts are re UTF-8 decoded as unpack() undoes this encoding.
	- Now much more explicit in handling the reaping of subprocesses and
	  much more robust in the face of a subprocess that won't die.
	- Now cope with open3() throwing exceptions whilst inside the child
	  process.
	- Now use the `use locale' pragma correctly across all source files.
	- Implemented a Locale::Messages::bind_textdomain_filter callback
	  routine that guarantees that all strings returned from the Locale
	  library are in UTF-8.
	- Moved the APPLICATION_NAME/_VERSION constants into mtn-browse so that
	  the library initialisation code can make use of them.
	- The HELP_VIEWER installation option is now called HTML_VIEWER.
	- Added the FILE_COMPARISON installation option.
	- Now use the HTML viewer for displaying URLs like the home page.
	- When using the HTML viewer and HTML help files do not rely on Gnome
	  to help find the help directory.
	- Now make use of APPLICATION_NAME more often.
	- Likewise UI_DIR.
	- Updated the `prepare tar file' section with the additional removal of
	  the devl-install file.
	- Moved the location of the Glade files to be more inline with standard
	  Linux installation locations.
	- The installers now cope with HTML stype help files. Also added the
	  HELP_VIEWER/--help-viewer installation option and updated the
	  dependencies.
	- Updated the README with details about the new installation option
	  mentioned above, removed the manual installation section (there is no
	  real need for it), updated the dependencies in light of Nuno Lucus'
	  feedback and reordered a few things to make it clearer.
	- Sorted out UTF-8/binary data handling so that it is sane and correct.
	- Added a file describing what to do in order to create a tar.gz
	  distribution file. Hopefully this process will be less hit and miss
	  in the future.
	- Implemented a mode where help is displayed using the desktop's web
	  browser. Just in case yelp is not installed on the system (as is the
	  case with Apple Mac OSX).
	- Set the page size attribute on all spin buttons to zero. This stops
	  warning messages on Ubuntu. I can see its point, where is the page
	  size attribute documented?
	- Now much more pedantic about using the callback recursion guard
	  variable in all window creation code. Again stops error messages on
	  Ubuntu.
	- Corrected typos in the locale README file.
	- Updated the POT file.
	- Locale update from Thomas Keller.

0.62  Sun May 03 18:00:00 2009 Anthony Cooper <support@coosoft.plus.com>
	- Added the new relevant selectors introduced in Monotone 0.43.
	- Added the help files.
	- Added the help on window feature.
	- Set up all of the windows for help and context sensitive help.
	- Implemented the context sensitive help feature.
	- Added the home page help menu option.
	- Updated the help manual with details about the new help options and
	  modes, the new selectors introduced in Monotone version 0.43 and the
	  new preference options.
	- Implemented a caching class derived from Monotone::AutomateStdio for
	  caching branch list information. Switched the rest of the application
	  over to this new class.
	- Now weed out unsupported selectors from the GUI depending upon the
	  version of Monotone being used.
	- Added a user preference option for determining how a list search is
	  done (either plain text or as a re).
	- Added user preference options for controlling the look of the
	  toolbar.
	- Gtk2::FileChooserDialog dialog windows now have their current
	  directory location saved between invocations.
	- Added calls to the present() method after each call to
	  show()/show_all() for each window (fixes the focus issue with windows
	  not shown by default on desktops that use click to focus).
	- Corrected a bug with the Advanced Find dialog window's handling of
	  the Find Text dialog window (it didn't reset the search context when
	  loaded with new data nor disabled it when there was no data to
	  search).
	- Enabled the use of the Find Text dialog window within the Advanced
	  Find dialog window.
	- Both the Advanced Find and Preferences dialog windows are now no
	  longer modal as this is taken care of by the WindowManager class.
	- Now no longer rely on modal dialog windows, deal with it ourselves
	  (also supporting context sensitive help). This will allow the
	  Advanced Find dialog window to use the Find Text dialog window.
	- Started using the update method on spinbuttons in order to make sure
	  that their internal state is consistent.
	- Fixed the bug where the Advanced Find dialog window did not respond
	  to Shift-<F1>. Basically it seems that the window must not be
	  realised before the accelerator keys have been set up
	  (i.e. ...->show_all() and WindowManager->update_gui() can only be
	  called after WindowManager->instance()->manage()).
	- Renamed the `Separator' selector to `Logical And', it makes more
	  sense.
	- Cleaned up and restructured WindowManager.pm a bit to make it more
	  modular, increase code reuse and make it easier to understand.
	- Corrected a few stack handling issues in the WindowManager class.
	- mtn-browse now correctly gets the name of the database from a
	  workspace regardless of the user's `auto_select' setting.
	- Now display a file's author instead of file id in the main browser
	  window.
	- Fixed a bug whereby the external file comparison button remained
	  enabled when a lone binary file was selected for comparison.
	- When a single file is selected for comparison, the results window is
	  now scrolled to that file.
	- Added Thomas Keller's German locale file for mtn-browse.
	- Switched over to using the supports method instead of the can method.
	- References to MIME are now correctly in upper case.
	- Corrected spelling of cronologically to chronologically.
	- Renamed a few things in the code, Glade file and the help file so as
	  to be more consistent.
	- Removed a redundant routine prototype in Completion.pm (actually
	  caused a warning message).
	- Reinstated the Gnome save window settings setting.
	- Updated the README file in light of additional Makefile.PL command
	  line options and the additional help files that are now installed.
	- The Linux installer now copes with help files.
	- linux-installer now does not require the LIB_DIR setting to have a
	  leading /.
	- Corrected the built in help that comes with linux-installer.
	- The dependency checker now returns the error message rather than
	  displaying it.
	- Corrected some symbolic linking in devl-install relating to help
	  files.
	- Makefile.PL now allows one to specify all of linux-installer's useful
	  options.
	- Did some small code tidy ups.

0.61  Sun Feb 08 18:00:00 2009 Anthony Cooper <support@coosoft.plus.com>
	- Added a Makefile.PL style install capability.
	- Split out the dependency checker into a separate module.
	- Updated INSTALL and README with the up to date details of
	  installation.
	- Moved the support modules for linux-installer into their own
	  subdirectory.
	- Beefed up linux-install. It now:
	  - Can take all its information from the command line.
	  - Supports the concept of DESTDIR.
	  - Checks that Perl dependencies have been met.
	  - Has built in help.
	- Switched all Perl scripts over to demanding Perl 5.8.5.
	- Added a user preference option for controlling whether line numbers
	  are displayed by default when showing a file's contents.
	- Added a user preference option for controlling whether branch and
	  revision comboboxentries update their lists when the user is typing
	  in values (a performance tuning option).
	- A scroll margin is now used when finding text. This makes it easier
	  to see the context of a found string when it is at the top or bottom
	  of the window.
	- Directory separators are no longer assumed to be '/'.
	- The get_revision_ids routine now correctly uses the current branch to
	  refine the query (can now cope with multiple tags on different
	  branches).
	- Renamed the find_button widget to find_text_button to make it more
	  specific.
	- Annotate window now offers a lot more options via its menu for
	  accessing file and revision change logs and comparing between the
	  current file or revision its parent version.
	- Put some string constants under locale control, they were missed off
	  before by accident.
	- Made sure that all calls to dialogs' run method are granted mouse
	  input by the WindowManager object.
	- The mtn warning handler can be suppressed by the use of a global
	  variable (which can be set using local).
	- Now guard against no external comparison helper application being
	  setup.
	- Refactored some code in History.pm to better help support the new
	  annotate window options.
	- Annotate no longer fails on an empty file.
	- Annotate and comparisons are no longer affected by where the
	  application is run inside a workspace.
	- mtn-browse now always explicitly opens a database rather than relying
	  on the mtn subprocess sorting itself out inside a workspace. This
	  means that the mtn subprocess is always run in the root directory
	  which is much safer WRT unexpected interactions with a workspace.
	- Database locked dialog windows are no longer parented as these
	  dialogs are in fact related to Monotone::AutomateStdio object
	  instances and not browser window instances (which share
	  Monotone::AutomateStdio object instances).
	- Now a little bit better at reporting helper application launch errors
	  to the user.
	- Vertical panes now maintain the size of the left hand window.
	- Implemented the option of selecting a search column in a treeview
	  widget.
	- Searching in a treeview now used REs.

0.60  Fri Jan 23 19:09:00 2009 Anthony Cooper <support@coosoft.plus.com>
	- Initial release of the application to Source Forge.
