As is clearly obvious, TkDiff has had only limited internal work done for quite some time. However in the past 6 months or so, a significant amount of new development has occurred which we would like to offer up for evaluation prior to making an official release. Stated simply, there are 3 major changes that have been undertaken, besides a number of minor fixes spread throughout the tool:
Complete overhaul of scrolling
Some time ago, TK underwent a change in the way a Text widget measured its internal content. This had the unfortunate result of making the TkDiff display tend to misalign vertically, skewing even the relationship between the line numbers and the lines they represented, particularly when tag settings describing different fonts were used to legitimately highlight various aspects of the difference regions. This has been completely redesigned and should no longer have any effect.
Support of multiple file-pairings
There seems to have been some early attempts (somewhere in the V3.x releases) for TkDiff to manage and present multiple pairs of files for comparison. TkDiff is now offering this ability intrinsically. The upshot of this is that TkDiff will now permit comparing two "directories" worth of files in a single invocation. That includes all the various default modes of using a Source Code Management (SCM) to supply missing values. It also includes special support of some SCM tools that can supply such a list of comparison candidates.
Ability to edit the content of an individual diff region
TkDiff has a particularly simple means of choosing which "side" of a difference should particpate in a "merged" result. However, because that has ALWAYS been based on the specific boundaries enumerated by the differencing engine used (classically GNU "diff") you were forced to accept ALL of the Left, or ALL of the Right possibilities, per region. This new capability allows the user to easily slice a single diff-region into just the lines that they wish to merge, while still maintaining the original simple approach. This results in merges having ONLY the content intended, resulting in cleaner and better targeted patch generation.
Although not a "feature" in the conventional sense, the builtin help facility has been seriously reworked to explain the details of these new features, as well as auditted for applicability toward the pre-existing abilities as well. We feel this feature set can offer significanly more comprehensive coverage and ease of use for this venerable tool. We thus would welcome feedback from anyone willing to give the 4.3devel branch a try. Let us know what you think.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can't believe tkdiff is being revived again! I have used it for pretty much all my professional life and the changes described above sound quite exciting. How do I try the beta out? I went to the 'Files' section but there is no 4.3 beta there?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
True - because we're trying to avoid the packaging step just now. If you go under the 'Code' section, you should find the 'v4.3devel' branch. If you pull a copy of that (and you are on a unix/linux platform) you simply need to lay the obtained 'tkdiff' file into your PATH somewhere to try it. Alas, I can't speak to the exact steps needed for Windows or MacOS as I have no experience there; I pray it is not too much more painful to accomplish something equivalent. We'd simply like SOME feedback before pushing it out the door.
Then again, I wrote that before I looked (regarding 'should'). For some reason, the 'Code' section seems to deny that anything exists -- (or is blocking access to it). However, presuming you have a Subversion client on your machine, you CAN use a variation of the displayed command to get the files described - just issue the command as shown replacing "trunk" with "branches/v4.3devel" and you will get a directory of files delivered to your machine. update:: OK -so NOW there is a version 4.3b1 available under "Files" - note its just the pure TCL code itself (not a directly install/runable version unless you are a Unix/Linux user) but if you are motivated enough it, at least its easier to get a hold of.
As far as resuscitation of TkDiff, like you it had never really died for me (I go back at least 30 years with it), but recently found myself forced to update, and then subsequently motivated to at least understand its new (to me) odd behaviors. One thing led to another and I simply figured if I fixed it for me, why not everyone else?
I hope you can try it out and would love to hear any feedback at all.
Last edit: michael-m 2018-05-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As is clearly obvious, TkDiff has had only limited internal work done for quite some time. However in the past 6 months or so, a significant amount of new development has occurred which we would like to offer up for evaluation prior to making an official release. Stated simply, there are 3 major changes that have been undertaken, besides a number of minor fixes spread throughout the tool:
Complete overhaul of scrolling
Some time ago, TK underwent a change in the way a Text widget measured its internal content. This had the unfortunate result of making the TkDiff display tend to misalign vertically, skewing even the relationship between the line numbers and the lines they represented, particularly when tag settings describing different fonts were used to legitimately highlight various aspects of the difference regions. This has been completely redesigned and should no longer have any effect.
Support of multiple file-pairings
There seems to have been some early attempts (somewhere in the V3.x releases) for TkDiff to manage and present multiple pairs of files for comparison. TkDiff is now offering this ability intrinsically. The upshot of this is that TkDiff will now permit comparing two "directories" worth of files in a single invocation. That includes all the various default modes of using a Source Code Management (SCM) to supply missing values. It also includes special support of some SCM tools that can supply such a list of comparison candidates.
Ability to edit the content of an individual diff region
TkDiff has a particularly simple means of choosing which "side" of a difference should particpate in a "merged" result. However, because that has ALWAYS been based on the specific boundaries enumerated by the differencing engine used (classically GNU "diff") you were forced to accept ALL of the Left, or ALL of the Right possibilities, per region. This new capability allows the user to easily slice a single diff-region into just the lines that they wish to merge, while still maintaining the original simple approach. This results in merges having ONLY the content intended, resulting in cleaner and better targeted patch generation.
Although not a "feature" in the conventional sense, the builtin help facility has been seriously reworked to explain the details of these new features, as well as auditted for applicability toward the pre-existing abilities as well. We feel this feature set can offer significanly more comprehensive coverage and ease of use for this venerable tool. We thus would welcome feedback from anyone willing to give the 4.3devel branch a try. Let us know what you think.
I can't believe tkdiff is being revived again! I have used it for pretty much all my professional life and the changes described above sound quite exciting. How do I try the beta out? I went to the 'Files' section but there is no 4.3 beta there?
True - because we're trying to avoid the packaging step just now. If you go under the 'Code' section, you should find the 'v4.3devel' branch. If you pull a copy of that (and you are on a unix/linux platform) you simply need to lay the obtained 'tkdiff' file into your PATH somewhere to try it. Alas, I can't speak to the exact steps needed for Windows or MacOS as I have no experience there; I pray it is not too much more painful to accomplish something equivalent. We'd simply like SOME feedback before pushing it out the door.
Then again, I wrote that before I looked (regarding 'should'). For some reason, the 'Code' section seems to deny that anything exists -- (or is blocking access to it). However, presuming you have a Subversion client on your machine, you CAN use a variation of the displayed command to get the files described - just issue the command as shown replacing "trunk" with "branches/v4.3devel" and you will get a directory of files delivered to your machine.
update:: OK -so NOW there is a version 4.3b1 available under "Files" - note its just the pure TCL code itself (not a directly install/runable version unless you are a Unix/Linux user) but if you are motivated enough it, at least its easier to get a hold of.
As far as resuscitation of TkDiff, like you it had never really died for me (I go back at least 30 years with it), but recently found myself forced to update, and then subsequently motivated to at least understand its new (to me) odd behaviors. One thing led to another and I simply figured if I fixed it for me, why not everyone else?
I hope you can try it out and would love to hear any feedback at all.
Last edit: michael-m 2018-05-08