Merging KDevPlatform into KDevelop

Aleix Pol aleixpol at kde.org
Mon Aug 7 18:27:06 UTC 2017


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


More information about the KDevelop-devel mailing list