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