Merging KDevPlatform into KDevelop

Aleix Pol aleixpol at kde.org
Tue Aug 8 15:01:43 UTC 2017


On Mon, Aug 7, 2017 at 8:27 PM, Aleix Pol <aleixpol at kde.org> wrote:
> On Mon, Aug 7, 2017 at 12:18 PM, Kevin Funk <kfunk at kde.org> wrote:
>> On Saturday, 5 August 2017 18:47:58 CEST Aleix Pol wrote:
>>> On Fri, Aug 4, 2017 at 3:09 AM, Aleix Pol <aleixpol at kde.org> wrote:
>>> > On Thu, Aug 3, 2017 at 9:42 PM, Kevin Funk <kfunk at kde.org> wrote:
>>> >> On Thursday, 3 August 2017 01:07:58 CEST Aleix Pol wrote:
>>> >>> Hello everyone,
>>> >>> Here's a proposal for the merge. Since it's a sensitive issue I'd be
>>> >>> happier if someone else could take a look.
>>> >>>
>>> >>> These are the commands to run:
>>> >>> ```
>>> >>> cd kdevelop
>>> >>>
>>> >>> git remote add -f kdevplatform ../kdevplatform
>>> >>> git merge -s ours --allow-unrelated-histories --no-commit
>>> >>> kdevplatform/master git read-tree --prefix=kdevplatform/ -u
>>> >>> kdevplatform/master
>>> >>> git commit -m "Merge KDevPlatform into KDevelop"
>>> >>
>>> >> Just tried this: Works fine for me. This is almost the same script I've
>>> >> used for merging kdev-clang & kdev-qmake into kdevelop.git.
>>> >>
>>> >> The next line (`git pull ...`) messes up things for me though. I'm not
>>> >> sure we want it. Reasons:
>>> >> - Takes several minutes to finish here
>>> >> - I think it flattens the merge and puts all commits from kdevplatform on
>>> >> top of kdevelop master(?)
>>> >> - Ends up in a conflict:
>>> >>
>>> >> ```
>>> >> CONFLICT (rename/rename): Rename
>>> >> "qmake/qmake/qmakeprojectmodel.h"->"qmake/
>>> >> qmakeprojectmodel.h" in branch "d74499f368923838a07d2839523ab543043d9080"
>>> >> rename "qmake/qmake/qmakeprojectmodel.h"->"qmakeprojectmodel.h" in
>>> >> "HEAD~14667"
>>> >> CONFLICT (rename/rename): Rename
>>> >> "qmake/qmake/qmakeprojectmodel.cpp"->"qmake/ qmakeprojectmodel.cpp" in
>>> >> branch "d74499f368923838a07d2839523ab543043d9080" rename
>>> >> "qmake/qmake/qmakeprojectmodel.cpp"->"qmakeprojectmodel.cpp" in
>>> >> "HEAD~14667"
>>> >> ```
>>> >>
>>> >> It seems to conflict with this commit:
>>> >>
>>> >> commit ceff8e0cf5a5a0dcbaad7831f85c1b72a6b624f4
>>> >> Author: Harald Fernengel <harry at kdevelop.org>
>>> >> Date:   Wed Aug 17 13:37:15 2005 +0000
>>> >>
>>> >>      r285 at angua:  harald | 2005-08-12T22:15:51.184479Z
>>> >>>
>>> >>> git pull -s subtree kdevplatform master
>>> >>
>>> >> ^ BAD.
>>> >>
>>> >>
>>> >> IOW: I think if you leave out the `git pull ...` then it should be fine.
>>> >>
>>> >> Git history seems to be appropriate. I can `git blame` files & and do
>>> >> e.g.`git log --follow -- plugins/appwizard` just fine afterwards.
>>> >>
>>> >> that's my HEAD after running those 4 Git commands:
>>> >>
>>> >> ```
>>> >> *   8a4b5a6005 - (HEAD -> master) Merge KDevPlatform into KDevelop (7
>>> >> minutes ago) <Kevin Funk>
>>> >>
>>> >> |\
>>> >> |
>>> >> | *   d74499f368 - (kdevplatform/master) Merge branch '5.1'
>>> >> |
>>> >> | |\
>>> >> | |
>>> >> | | * a95884b6df - (kdevplatform/5.1) welcome page: fix icon for "...
>>> >>
>>> >> ```
>>> >>
>>> >> Looks good.
>>> >>
>>> >> Cheers,
>>> >> Kevin
>>> >>
>>> >>> git apply monolithic-kdev.patch # as attached
>>> >>> ```
>>> >>>
>>> >>> This will create a kdevplatform subdirectory. In the patch you'll see
>>> >>> I added some tweaks so everything still just builds (tm). I thought
>>> >>> that we can do further reorganizations once it's inside. That said, I
>>> >>> think it's fine to keep the KDevPlatform concept for now.
>>> >>>
>>> >>> Thoughts?
>>> >>> Aleix
>>> >
>>> > I'm not sure. In fact for me history doesn't work without it:
>>> > $ git log --follow debugger/framestack/framestackmodel.cpp
>>> > commit de37cf2fd855cd137a5da05b568022f7b5f96e59
>>> > Author: Aleix Pol <aleixpol at kde.org>
>>> > Date:   Fri Aug 4 03:01:20 2017 +0200
>>> >
>>> >     Merge KDevPlatform into KDevelop
>>> >
>>> > $
>>
>> Disclaimer: Sorry, accidentally marked this thread as 'ignored', thus I didn't
>> answer more swiftly.
>>
>>> > Also, can you try it with a new kdevplatform and kdevelop? You
>>> > mentioned before the qmake conflict and that it took really long for
>>> > you to do the merge while for me it's almost instantaneous.
>>
>> Still broken, but now I know why: I have `pull.rebase=true` in my Git config
>> -- which leads to this problem:
>>   https://stackoverflow.com/questions/28144800/git-subtree-pull-rebase-error
>>
>> With this invocation "it works" for me, and `git pull ...` is instant:
>>   git pull --no-rebase -s subtree kdevplatform master
>>
>> Anyhow, afaics in that case this `git pull` is just a no-op. That `git pull`
>> is only for tracking upstream changes (i.e. when kdevplatform.git moved and
>> we'd like to update the copy in kdevelop.git). Which is not something we need
>> for the initial merge.
>>
>> So +1 for going ahead with this, Aleix, if you feel confident enough.
>>
>> You'll need to talk to KDE sysadmins to temporarily remove hooks from
>> kdevelop.git anyway.
>>
>> Cheers,
>> Kevin
>>
>>> > Maybe you have stuff laying around from when you did the qmake merge?
>>> >
>>> > Here's my output, there's no conflicts:
>>> > https://paste.kde.org/prfujegfg/k0gdhx/raw
>>> >
>>> > Aleix
>>>
>>> bump!
>
> Here's a repository with what I'd like to push:
> https://github.com/aleixpol/kdev-monolithic
>
> Tell me if that's what you dreamed of!
>
> Aleix

Pushed.

Enjoy a simpler workflow!

Now let's focus on getting a possibly last 5.1 release and 5.2.0 out ASAP.

Aleix


More information about the KDevelop-devel mailing list