Neon/Git
The Neon Git repositories are at https://invent.kde.org/neon
All KDE contributors can commit to Neon/* branches or any branch for repositories under neon/, forks/, neon-packages/ directories, it will reject commits to other branches.
They are clones of the repositories used by Debian pkg-kde team https://salsa.debian.org/qt-kde-team/. Any commits made to a Debian pkg-kde repository will be pulled into Neon Git immediately.
Add this to ~/.gitconfig
[url "[email protected]:"] insteadOf = invent: [url "[email protected]:"] pushInsteadOf = invent:
and clone with:
git clone invent:neon/kde/khotkeys
Anonymous Access
If you don't have a KDE account you can still clone the repo at
git clone https://invent.kde.org/neon/kde/khotkeys
Settings up new repositories
This is now done through invent.kde.org which can also be set to clone another git repo
Pushing merges
KDE git has a hook to prevent 100s of commits in one push but sometimes that is what we need if we are merging in from e.g. Debian. Push with
git push -o notification.summarise
This will also disable some check with backports-focal etc for when syncing with Debian and their commits have translations and funny e-mail addresses that pre-commit hooks would block.
Archiving Repos
Archiving/removing of a repo can only be done by sysadmins you have to file a ticket. Additionally to hide the projects immediately from the CI tooling you can add the topic 'neon-archived' in the general projects settings on gitlab (obviously only if you have neon admin access) e.g https://invent.kde.org/neon/neon-packaging/plasma-systemmonitor/edit
The Set Up
- neon:gitolite-admin has hooks in .gitolite/hooks/common which are symlinks to neon-hooks/ that get added to new repositories
- .gitolite/hooks/update is the normal hook from gitolite that does whatever gitolite needs
- neon-hooks/post-receive pings jenkins to start a new build
- neon-hooks/pre-receive rejects pushes to non-neon branches and sets up remote to Debian if it exists
- neon/website and neon/releases.neon.kde.org have a post-receive hook to update their websites (no longer used for websites at least)
- cron on the gitolite server runs bits to restart the servers and run the check scripts:
# Hourly sync of new repositories from salsa.debian.org @hourly python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py # Daily full sync of all repositories from salsa.debian.org @daily python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py --fetch-all-repositories