Neon/Git: Difference between revisions
No edit summary |
|||
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
The Neon Git repositories are at | 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. | 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 | 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 <code>~/.gitconfig</code> | Add this to <code>~/.gitconfig</code> | ||
{{Input|1=<nowiki> | {{Input|1=<nowiki> | ||
[url "git | [url "git@invent.kde.org:"] | ||
insteadOf = | insteadOf = invent: | ||
[url " | [url "git@invent.kde.org:"] | ||
pushInsteadOf = | pushInsteadOf = invent: | ||
</nowiki>}} | </nowiki>}} | ||
and clone with: | and clone with: | ||
{{Input|1=<nowiki>git clone neon | {{Input|1=<nowiki>git clone invent:neon/kde/khotkeys</nowiki>}} | ||
=== Anonymous Access === | === Anonymous Access === | ||
If you don't have a KDE account you can still clone the repo at | If you don't have a KDE account you can still clone the repo at | ||
{{Input|1=<nowiki>git clone | {{Input|1=<nowiki>git clone https://invent.kde.org/neon/kde/khotkeys</nowiki>}} | ||
=== | === 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 | |||
{{Input|1=<nowiki>git push -o notification.summarise</nowiki>}} | |||
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 [https://phabricator.kde.org/maniphest/task/edit/form/2/ 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=== | === The Set Up=== | ||
Line 52: | Line 43: | ||
* cron on the gitolite server runs bits to restart the servers and run the check scripts: | * cron on the gitolite server runs bits to restart the servers and run the check scripts: | ||
{{Input|1=<nowiki> | {{Input|1=<nowiki> | ||
# Hourly sync of new repositories from | # Hourly sync of new repositories from salsa.debian.org | ||
@hourly python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py | @hourly python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py | ||
# Daily full sync of all repositories from | # Daily full sync of all repositories from salsa.debian.org | ||
@daily python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py --fetch-all-repositories | @daily python3 ~/config-sync/gitolite-admin/maintenance/update-gitolite-setup.py --fetch-all-repositories | ||
</nowiki>}} | </nowiki>}} |
Latest revision as of 13:46, 18 October 2021
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