Merging KDevPlatform into KDevelop

Kevin Funk kfunk at kde.org
Mon Aug 7 10:18:18 UTC 2017


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!

-- 
Kevin Funk | kfunk at kde.org | http://kfunk.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20170807/1e4d8fed/attachment-0001.sig>


More information about the KDevelop-devel mailing list