6.0 (07/07/2025) * Adapting to TclTk9.0 release where tilde is no longer an AUTOMATIC logdir reference - Manifested as a rework to command argument handling to RETAIN tilde-syntax - prompted ADDing GLOB-syntax (primarily for dialog) as SHELL already handles - STILL maintains TclTk8.5 as minimum required Additionally, Tk9.0 package rejection had halted ANY/ALL prior TkDiff (Tkt#99) PLUS significant enhancements to newDiff Dialog w/MAJOR added Help descriptions * Dropped specialized visual configuration SPECIFICALLY concerning a CDE environment * Bug fix to inline highlighting logic to avoid occasional missing instances. * Minor enhancement to 'Find' text-search tool to report 'failure to find' * Very minor (internal) bug fixes, Help and comment spelling + wording 5.7 (05/11/2024) * Allows implied "null content" files (eg. UNIX /dev/null) as valid Filespecs * Inline hilites now respond immediately after a OFF to ON request * Bookmark annotation prompt now relates CURRENT hunk ID on 2nd and more usage * Inline hilites no longer randomly ignores the last possible line of hunk 5.6 (11/08/2022) * Added recursion ability into directory searching for the 1-FSpec case: allows file trees as input. Recommended primarily for the VPATH Scm. * Recursion (both single and dual FSpec forms) supports patterned-fname exclusions * Repaired merge-preview window jump-scroll action when current hunk is changed. 5.5.3 (10/11/2022) * Crash elimination AND better Help info regarding the OPTIONAL "-P file" option. * Revised a prior (V5.5.2) fix that mishandled simplifying VPATH revision assignment, accidentally deactivating most revision-to-revision command formats for all SCMs. 5.5.2 (08/31/2022) * Yet MORE spurious CRASH conditions avoided (primarily in SCM Search startup situations). 5.5.1 (08/19/2022) * Minor repair of preference evolution logic to encompass stray begin/end version situations responsible for inadvertent CRASH conditions at startup when converting a PRIOR Pref File. 5.5 (07/21/2022) * CRITICAL logic repair to 'blanks' suppression support during INLINE hilite! * Alternate coding fix to vague (Mac observed) race-condition bug w/combobox mis-creation. * Added status display of merge choice counts presently targetted as pure Left or Right * Popup menu disables "Edit" (file) when POP occurs over DiffMap (not a L/R window). - BUT is now active over most window elements having a Left/Right connotation. - 'Find Nearest' selected above DiffMap evaluates choice at SCALED chosen position. * Codified preference 'upgrade' detection, yeilding safer 'new version' transitions. * Internal: Preference evolution of older settings now tied to explicit versioning data * Created "Engine config" Prefs tab: - permits access to other Diff engines having alternate algorithms. - Codifies what is needed/expected FROM the underlying engine and HOW it is accessed. - Still permits ad-hoc flag specs AND cmdline pass-thru. - former 'diffcmd' Pref now DERIVED from engine settings (for reference purposes) - former 'ignoreblanks' Pref (on/off) generalized to refer to ALL engine suppressions - primary engine options (suppressions) now specifically delineated AND configurable - shares options among Diff and DiffSrch when same command (1st word), else distinct * Added warning HILITE to Preference actions that result in FORCING a new Diff invocation. * Internal: general support for "Unified" Diff outputs, facilitating wider Engine acceptance * Internal: Dbg messaging permits suspended arg-EVAL until KNOWN they are used (less overhead). * Handful of spelling typos, internal naming and code consolidations, as always: updated Help. 5.4 (04/01/2022): * Visual Inline-diff SUPPRESSION categories (correlatable to those of Diff) supported yet specific choices are INDEPENDANT of said same Diff MATCH suppressions * Optional support for MULTIPLE Preference files w/command-line specification added permits user configuration for disjoint projects w/alternate SCM requirements * Reengineered optional SyncScroll to no longer permit fractured alignment - FOREVER only specific features may TEMPORARILY override the Preference when set. * New preference allows specifying filename patterns to EXCLUDE from searches among directories when forming candidate pairings for examination. * Text searching now (optionally) scrolls EITHER/BOTH windows independent of the current overall synchronized window preference setting. Allows visual alignment between the displayed file content based on individual text searches per each window. * Within Vpath SCM context, CWD location now effectively TOP-prunes stated VPATH nodes allowing access to yet older V-nodes w/o editting VPATH * Subdirs WITHIN given Vpath nodes now recognized as legitimate CWD-scoped locations permitting operations on directory-based subdivisions while STILL Vpath'd * Repaired how Vpath searches for Topmost and/or Prior version for consistent results * MouseWheel now scrolls properly when above checkbuttons WITHIN the filelist Dialog 5.3 (12/24/2021): * Added VPATH handling, integrated to appear as yet another SCM system. * Tkt#83 - repaired a (V5.2) syntax fault of Directory-based filename generation * Silenced new recurrence of "TCL-sensitive" characters faulting within input filenames * Filelist dialog now immediately responds fully to a threshold change * Added missing Wheel scrolling to filelist dialog * Ensure "Class" of secondary window(s) REMAIN designated as "Tkdiff"; not "Toplevel" * Tkt#82 - usage of the Perforce SCM was crashing (wrong var reference) 5.2.1 (03/27/2021): * New user preference affects how multiple-files are presented to the user. Choice of menu display has been capped at a variable maximum of 1-25. Now uses a separate dialog window when file count exceeds current max setting. * Sidestepped Tcl bug affecting "recursive diff" results when default user pref "-q" option is removed. Will now correctly suppress "binary" files. * Repaired toolbar confusion at startup about using Icon or Text buttons 5.2 (03/04/2021): * Permits entire directory TREEs to be scanned for candidate files recursively * Now stipples the BOUNDARY LINE during "Split"-push manipulations: clearer feedback * Reduce 'interactive startup' reliance on a message console and promote a "retry" paradigm * Fixed broken "Find Nearest Diff" (via the popup menu) to use initial popup LOCATION * Repaired Windows derivation of the INITIAL temp-dir path preference for NEW users. * Resolved minor clipping issue in toolbar combobox (re: proportional fonts) * Avoid Diff crash caused by specifying MULTIPLE "ignore blanks" preference options * Avoid crash from malformed filename using tilde-expansion to a non-existant user * Repaired missing accelerator+Tip for File->Recompute menu item * Toolbar buttons now reset fully when a valid Diff execution yeilds ZERO results * Visible Focus-tabbing restored to dir/file browser buttons in NewDiff dialog 5.1 (11/11/2020): * Now supports user customization of keyboard function bindings - new 4th preferences Tab allows review, editting and saving of such bindings * Failure-modes for user involved input is now more forgiving (w/feedback) - applies to preference modifications and/or inconsistent run-modes. * Scrollable bookmarks: allows access when more exist than can fit on screen. - bookmark menu w/report 'participation' checkbutton (and annotation access item) - bookmark annotation: user specified identities - beyond the default hunk index * New report fmt - based on individualized bookmark establishment for content * Increased report STATISTICS info, plus a means to view it without needing a report * More robust (internal) 'Read-Only' text display re-implementation - restores damaged Keyboard scrolling and hotkey usage in addition to GUI traversals * Redesigned internal implementation to restore MacOS network-latency reporting support * Dropped Monochrome support (revivable, but rather pointless) * Incorrect mainwindow MANUAL-resizing logic repaired (improper "gridding") * Tkt#73 - repaired typo causing crash of "conflict" file processing * Tkt#74 - scrolling w/autoselect ON crashed when scrolled prior to the 1st hunk min-bound * + autoselect now operates passively (autocenter NOT triggered) * Tkt#75 - syntactic repair resolves crash of COMBINED merge choice (L+R or R+L) usage * Addressed bug displaying a combobox w/multiple monitors, and a NON-virtual window-manager * Fixed (yet again) un-raised Tooltip windows on Mac (will NOT happen again) * Repaired crash caused by situational ancestral-data corner condition in 3-way Diff * Relaxed popup-position management on 2nd+ usage - now re-appears at most recent location * Minor fix prevents wrong subwins from squeezing shut during a manual resizing to smaller * Repair unintended session-long ASYNc behavior due to incomplete removal of the trigger * Ensure Text window focus-highlighting remains visible when Text FG/BG is altered * Removal of several (5+) internal excess-work situations improving responsiveness * Online help updated to cover aspects of ALL changes (incl. removed restrictions) 5.0 (06/08/2020): * NewDiff Dialog can now request a Conflict file comparison - It also permits adjustment of SCM choice or search-mode - and is now ALWAYS defaulted when no args are given, except - in one specific preference-controlled situation (autoSrch). * Merging when using an Ancestor file now identifies inconsistent - "deletions" similar to additions, among the two versions merging - and factors into the automatic merge choice determinations * CVS is now able to produce a list of candidate comparisons * ALL SCMs doing candidate detection now handle CONFLICTed files * URLs (Svn style) accepted as FileSpec by Dialog and Cmdline - including usage with/without @Rev suffix and for Ancestor * Multiple SCMs and/or cross-branch comparison is now possible * Repaired 'conflict' parsing to accept diff3-style files * Eliminated a TK-updating race condition involving the DiffMap * Interactive diff-region suppression is now possible * Setting a line-comparison Font preference now affects entire Window * Small features: window manager graphic for TkDiff now provided - displayed filenames are relativized when possible (shorter) - failed Diffs no longer considered Fatal - inappropriate (identical) Ancestor cancels 3way w/notification * Minor repairs to: Split/Combine scrolling and single line "push" - line numbering past final hunk corrected - tooltip rendering on a Mac - dblClick "find Nearest hunk" binding when within meta-info window - scrollwheel now works when within Merge meta-info window - Lnum/CBar highlighting no longer fails during hunk-suppresssion - Diffmap draws properly when Diffed text lacked newlines - setting an -I "regex" on the cmdline also activates them, - filenames with "sensitive" characters ($ []) wont crash - Missing/wrong text highlighting on random count of last hunk(s) - Default Filebrowser preferred-view-content filters mis-specified - Online help updated/expanded to cover aspects of ALL changes 4.3.5 (08/08/2018): * NewDiff Dialog now allows browsing for files OR directories - with the Ancestor file also permitted to extract from an SCM - additionally it and browsers now stack above each other properly * Tool arguments now permit cross-branch SCM comparison specification * Ability to view Ancestorfile also denotes 3way mode is active * 3way collisions now findable via toolbar dropdown list highlights * Textwin labels now tooltip the name+modtime of any NON-temp file * Builtin editor now provides Line numbers * Fixed recent new color preference settings to "apply" correctly * Crash fixed when 3way diff was active and Lnum+Chgbars are OFF * Pre-startup latency msg feature now OFF (MacOS X only) fixes Crash * Repaired Lnums,etc. to use CDR preference settings when appropriate 4.3.4 (07/21/2018): * Emergency Re-repair of the (V4.3.3) Merge content corruption issue - previous fix targeted a phantom cause (only fixed SOME cases) 4.3.3 (07/19/2018): * Critical bug that MIGHT corrupt Merge content via Split use fixed * Re-implementation of 3way Diff support now functions properly - merge choices are preset via 3way analysis AHEAD of user preference - resolved collisions (when possible) also removes its display markup * Added status msgs (to a popup), in lieu of a busy cursor, at pgm startup w/SCM use to account for potential network latency delay - new help info for 3way support/strategy plus latency effects * Small bugs/inconsistencies repaired - Collision color in the DiffMap now honors its preference value - DiffMap is redrawn as needed for Split/Combine and/or collisions - Misleading (inactive) filelist per-file 'menu accelerators' removed - Avoids crash (chooses line 1) when no CDR exists and invoking Editor - Report Save-as filename browser lacked the filetypes option setting 4.3.2 (06/28/2018): * Fixed obtuse data-dependant fatal crash caused by inline-diff of IDENTICAL lines (induced by Diff itself). * minor fixes to newDiff dialog (absent V4.3.1 param), resizing * random typos in help info 4.3.1 (06/26/2018): * Repaired crash(v4.3) when using the "-conflict file" option * Supports Diff 'suppresion' options (Empty or RE-matched lines) with ability to enter/manage/save rules, activate from cmdline, and interoperate with any supportable 'diff' engine * Enhanced and expanded preferences coverage - previously hidden settings exposed (map and collision colors) - color used during Split/Combine for boundary movement feedback - provided interactive color chooser for above - added new 'suppression' settings - added new 'default side' choice for merge initialization - redesigned layout of checkboxes for better readability - enhanced feedback for inter-related settings, and or editting * builtin file editor now opens at the current diff region * avoid unneeded display updates when nothing applicable changed * Editorial revisions of online help info (new and old content) - better explanations of 'quoting', interfacing to 'diff', and more uniform typography * minor internal consolidations- dead code removal, upgrade to later version of embedded software, contrib patches, etc. 4.3 (06/06/2018): * Add ability to create a file-pairs list from a Git diff (by Kevin X), then extended (by vampm) facilitating other sources of multi-pairs, including local directory-to-directory comparisons and Subversion. * Rework the main text windows as a text + canvas hybrid so everything stays visually aligned while scrolling with multiple fonts (by vampm) * Add a facility to slice individual Diff records into logical pieces providing more exacting mergefile generation capabilities (by vampm) * Report generation can now suppress NON changed Text lines (by vampm) * Merge Preview now indicates diff line contributors and line numbers * Repaired handling of data files having random bytes embedded * Numerous small enhancements (wheel scrolling, more GUI feedback, ...) * Extensive audit and content update of the online help text (by vampm) 4.2 (2011): * Works with Subversion 1.7 * Make opening file dialog know where it started from, and start in the same directory as the first file when looking for the second one. * You can now specify a preference for filetypes for the file open/save dialogs. * Detect PVCS by environment variable (patch 1839361 by nafmo) * Update BitKeeper support (patch 3053551 by wscott) * Mercurial support (patch 1867700 by damonmc) * Rudimentary Git support (patch 1836293 by cecilh3) * add help menu items to report versions of wish and diff * Fix location of temp files on MacOS X * Gave it a debug (-d) option 4.1.4 (11/15/2007): * Ignore -u option from svn for usage "svn diff --diff-cmd=tkdiff" * Perforce support for P4CONFIG environment variable * Remove an old font work-around for Mac, but add a new one for tk8.5 on Windows * Fix duplicate keyboard accelerator for Preferences 4.1.3 (2/20/2006): * Fixed incompatibility with older versions of Tcl/Tk ("-state disabled"). * Applied Warren Jones' subversion patch, which prevents the svn error that occurs when you omit a revision number. 4.1.2 (2/1/2006): * Can now do "tkdiff OLD-URL[@OLDREV] NEW-URL[@NEWREV]" in Subversion 4.1.1 (12/20/2005): * Security patch for temp files (CVE-2005-4434) 4.1 (7/4/2005): * Clearcase support * Better Subversion support * -L command line option allows you to control the labels above the diff file panes. * tkdiff --help or -h print a usage message for command line without invoking the GUI. * The New Diff Dialog is expanded so you can specify all the options. * The two panes can be resized relative to each other using a sash widget. Tk8.4 is recommended, since the implemetation is much better. 4.0.2 changes (11/08/2004): * Made sure all the prefs are saved (Bug# 878340) * Put all the Aqua stuff in one place 4.0.1 changes (4/27/2004): * Fix detection of a ,v file in the current directory for RCS 4.0 changes (3/10/2004): * Inline diff highlighting * Current line comparison window * Support for Subversion * better tolerance of Windows filenames * CDE, Windows, and MacOSX aware 3.09 changes (5/24/2001): * Removed use of the user name in temp file path. This removed a problem on Windows when the user name had a space in it. * Made diff "edge detection" smarter by using the new smarter overlap code for cases where diff decided to treat whitespace slightly different on missing-EOL files when doing 3-way diffs. * Added the "..." back to the Save options in the merge result window when appropriate. 3.08 changes (1/15/2001): * Made overlap detection smarter 3.07 changes (12/17/2000): * Highlight overlaps in bright yellow during 3-way merge * Added "Exit" and "Save & Exit" buttons to merge preview window * Removed error that popped up when doing a merge that was not necessary. 3.06 changes (unreleased): * Minor changes for AccuRev integration 3.05 changes (11/30/1999): * Added Jean-Francois' 3-way diff/merge feature * Added Bryan Oakley's tabstop feature * Added full support for Accurev 3.04 changes (8/5/1999): * Basic support for AccuRev. Graphical equivalent of 'accurev diff foo.c' * Fixes as a result of running Scriptics' error checker (see archives for details) * 'q' is quit 3.03m changes: * Added -o to set the name of the merge output file 3.03 changes: * includes the new line-by-line comparison window * bug fix for line numbers not being sync'd initially * slight modification for how change bars are colored * bug fix for up/down arrow keys (they were moving by two lines instead of one) * bug fix for Alt-V not opening the View menu (ditto for a few other alt- combinations) * fixed a couple of -underline options for menus * new preferences for enabling the display of the line comparison window, and for configuring how individual characters are highlighted in that window * added " vs. " to the window title (eg: foo-old.txt vs. foo.txt - TkDiff 3.03) -- this more closely aligns with Windows standards, and is equally useful on other platforms, I suppose * online help has been updated to reflect these changes + As of 3.00: (11/06/1998) A new GUI. No more reliance on perl... It's 100% Tcl/Tk now. Built-in editor. A "find" facility. Lots more... And all of this thanks to Bryan Oakley! + GPL'ed (as of 2.03). + RCS, CVS and SCCS support (auto-detected)... Even more SCM systems are supported in 3.00. + Highlighted difference regions, randomly accessible, with a quick overview/navigation bar. + Side-by-side viewing and linked (synchronized) scrolling of files. + On-line help and extensive customization (also much-improved in 3.00). + File-merge and change-summary facilities. + Line-number toggling (for easier cut & paste), with extra goodies as of 3.00. + Windows NT support. ...and more stuff I can't even remember, probably. Much work has been done by Bryan Oakley for this release (in fact, 99% of it). :-) Thanks, Bryan! Keep an eye on the tkdiff home page at http://www.ipass.net/~klassa/tkdiff for developments... I don't think there'll be many, at this point -- Bryan has turned this thing into just about all you could ask for! If you have problems, though, please send bug reports (better yet, patches :-)) against 3.00 to klassa@ipass.net.