unifying libdiff2

Jeremy Whiting jpwhiting at kde.org
Fri Jul 12 02:18:37 UTC 2013


Ok, it looks like the kdevplatform copy of libdiff gets around needing
diffsettings by copying diffsettings.h|cpp and settingsbase.h|cpp also.
 Which makes me wonder if that ought to just be part of libdiff2 and
kompare's libdialogchanges could get it from libdiff2 itself rather than
owning those classes and code.

The other difference and dependency of libdiff2 is kompare_part.h used in
komparemodellist.cpp to get the actions from the action collection (can't
this be done without casting the parent to komparePart though?) and to get
isReadWrite from the parent.  Maybe isReadWrite should be a property of the
komparemodellist rather than the kompare part? Then when the kompare part
isReadWrite changes, it just changes it on it's modellist also?

thoughts, questions, etc. if not I'll make these changes and put up a
review request.

thanks,
Jeremy



On Thu, Jul 11, 2013 at 7:05 PM, Jeremy Whiting <jpwhiting at kde.org> wrote:

> Step 1 is complete more or less.  I have created libdiff2 git repo
> (currently at scratch/whiting/libdiff2.git) by taking kompare and doing the
> following (documenting here since I'll likely need to repeat these steps at
> some point)
> git checkout -b KDE/X.Y origin/KDE/X.Y for all branches.
> git filter-branch --subdirectory-filter libdiff2 --tag-name-filter cat --
> --all
> then cloning the result with file:/// url to not get the unused objects.
>
> The result is a libdiff2 git repo that only has libdiff2 changes and
> files. It includes all tags and branches, however it doesn't build.
>  There's currently code in libdiff2 that wants files from other libraries
> in kompare (diffsettings.h, kompare_part.h, etc.)  These will need to be
> removed but I'd like input from kompare developers on how this should
> happen before I make any changes.
>
> thanks,
> Jeremy
>
>
> On Wed, Jul 10, 2013 at 3:39 AM, Aleix Pol <aleixpol at kde.org> wrote:
>
>> On Wed, Jul 10, 2013 at 7:31 AM, Jeremy Whiting <jpwhiting at kde.org>wrote:
>>
>>> Hello all,
>>>
>>> Since kdesdk has now safely migrated from svn to git, I thought it would
>>> be a good time to get this ball rolling again.  I just reread this thread
>>> and would like to suggest the following:
>>>
>>> 1. Move libdiff2 out of kompare.git into it's own git repository just
>>> within kdesdk on projects.kde.org
>>> 2. Make sure libdiff2 installs header files and CMakeConfig file, etc.
>>> so it can be easily used by kompare, okteta, kdevplatform patchreview
>>> plugin, and anything else that wants to use it. (Not sure if this is
>>> already the case, Kevin or Konstantin, you guys would know better, or I can
>>> investigate)
>>> 3. Make kdevplatform patchreview plugin use the new libdiff2 that has
>>> everything properly exposed.
>>> 4. Review the difference between the two copies of libdiff2 to see if
>>> any changes in the kdevplatform copy should be merged into the main one in
>>> kdesdk
>>> And lastly, nuke the libdiff2 folder in kdevplatform.git
>>>
>>> Suggestions, questions, or answers to any of the above welcome.
>>>
>>> thanks,
>>> Jeremy
>>>
>>>
>>> On Sun, Dec 11, 2011 at 2:54 PM, Aleix Pol <aleixpol at kde.org> wrote:
>>>
>>>> Hi Jeremy,
>>>> What's the status on this one?
>>>>
>>>> Aleix
>>>>
>>>>
>>>> On Sat, Oct 29, 2011 at 5:35 PM, David Nolden <
>>>> david.nolden.kdevelop at art-master.de> wrote:
>>>>
>>>>> I was the one who once forked libdiff2 many years ago (probably around
>>>>> 2007 or so), and it was mainly for comfort reasons, because libdiff2
>>>>> would have needed a quite big refactoring to be nicely usable by both
>>>>> Kompare and KDevelop:
>>>>> * libdiff2 was a static library living in a subdirectory of the at
>>>>> that time unmaintained kde4 kompare port
>>>>> * libdiff2 contained a lot of UI code, while we were only interested
>>>>> in the 'model' code (that's why I commented out quite a bit of stuff)
>>>>>
>>>>> While it is nice to share some code, I'm also not in favor of adding
>>>>> huge dependencies like 'whole kdesk'.
>>>>>
>>>>> Having the code shared can also make life significantly harder
>>>>> regarding changes in the library: How should the correct versions of
>>>>> the library and the application be synced together? We experience this
>>>>> again and again through the split between kate and kdevelop. Therefore
>>>>> we should ask the question whether KDevelop and Kompare really have so
>>>>> much in common, that they will actually _profit_ from each others
>>>>> potential future improvements in a shared libdiff2. The word 'fork' is
>>>>> often interpreted more evil than it actually is. ;-)
>>>>>
>>>>> Greetings, David
>>>>>
>>>>
>>>>
>>>
>> Hi,
>> As I've said before, I'd welcome such merge. I'm mostly concerned with
>> losing features or introducing new bugs, we should make sure that this
>> doesn't happen.
>>
>> Additionally, if the library can be split between Core and Gui (for
>> example :D) it could also be helpful, but we can review this further in the
>> future, when the library is in place.
>>
>> Thanks Jeremy!
>> Aleix
>>
>> PS: Sent again because the e-mail for the kdevelop mailing list was
>> outdated.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kompare-devel/attachments/20130711/c9e0b986/attachment-0001.html>


More information about the Kompare-devel mailing list