KDevelop/Plugin Repo Merging

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Merging A Plugin Repo into The KDevelop Repo

Given a plugin which is candidate for inclusion in the main kdevelop repository. So far it has been developed in a separate repository, with a noteworthy commit history which ideally should be kept exactly (e.g. if multiple authors committed).

The recommended way is to import the unmodified history of the subtree and to do a merge commit to move the merged repository to the plugin subdirectory.

# go to local kdevelop repo
cd <path-to-local-kdevelop-repo>
# make repo of plugin known
git remote add plugin_remote <path-or-url-to-plugin-repo>
# get only main branch(es), like master, with all the interesting history
# avoid fetching (version) tags as they might conflict or are confusing in the kdevelop repo
git fetch plugin_remote master
# prepare merge commit
# git 2.9+ needs --allow-unrelated-histories
git merge -s ours --no-commit --allow-unrelated-histories plugin_remote/master
# copy files in the working copy, into its own subdir below plugins/
git read-tree --prefix=plugins/<pluginname> -u plugin_remote/master
# complete the merge commit
git commit -m "Imported <pluginname> as a subtree."
# now integrate the plugin code into the build system and remove no longer needed files
# then commit this

Once this is pushed to the official repo, it is time to mark the old repo as finished in a final commit which...

  • removes all files
  • leaves a README.md file with info about the move
  • leaves a CMakeLists.txt which catches automated builds of the repo

Sample for CMakeLists.txt:

project(<pluginname> LANGUAGES NONE)
message(FATAL_ERROR "<pluginname> was merged into kdevelop.git")

Sample for README.md:

<pluginname> has been moved into kdevelop.git:plugins/<pluginname>


Also to do:

  • Ask translation admins to copy any translation catalogs to the location of kdevelop catalogs.
  • Update sysadmin/repo-metadata to move the plugin repo project data below "unmaintained".
  • Update kde-build-metadata to remove all data about the plugin.