This is the page for co-ordinating KDE's move to Git.
If you're interested in helping, you should join the kde-scm-interest@kde.org mailinglist and #kde-git on freenode.
Meetings are wednesdays, 19:30 UTC, in #kde-git.
KDE is, eventually, moving to Git. We will be using gitorious.org servers, with funding from Nokia. We will also have our own mirrors using existing KDE servers.
We are working with the Gitorious people to ensure their server will meet all our needs as well as everyone's privacy requirements. The distributed nature of Git will make it easy for us to migrate off gitorious.org at any time should the need arise (but that's unlikely :).
In the summer of 2009, Amarok moved to Gitorious to test the waters and find problems that would affect KDE. Once those problems have been solved, all of KDE will be able to switch.
Git offers many advantages over svn, including offline commits and much easier to keep a feature branch up-to-date. Many KDE developers are already using git-svn, but this tool has its limitations. We want to have the full power of Git available, and we have people willing to do the work necessary to migrate.
When we move, KDE's svn repository will be migrated into several Git repos, all on gitorious.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The kde.gitorious.org site will have a list (lists?) of all these repositories using the builtin project wiki. Scripts will be provided for downloading, say, all of extragear, so "moving" a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.
A few things will stay in subversion - currently websites, translations and manuals. It's possible they could move to Git later, but they won't be part of the mass migration.
On Gitorious, all KDE developers will be part of the kde-developers group. Developers in this group are required to set their "full name" for their Gitorious account to their real name. If you want to be in this group, file a bugreport for sysadmin on bugs.kde.org. :)
The procedure to move a project from svn to gitorious.org can be found in Steps to follow for Moving.
Tasks that need to get done before we can migrate
30% completed (estimate)
Owner: aseigo, frank
Status: Progressing well; will take a while
0% completed (estimate)
Owner: see below - volunteers needed!
Status: sandsmark: stuck on a svn2git bug. sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]
progress details:
| repo | owner | % | comments |
|---|---|---|---|
| SC/kdeaccessibility | jpwhiting | 99 | "more or less"? |
| SC/kdeadmin | 0 | ||
| SC/kdeartwork | 0 | ||
| SC/kdebase | 0 | ||
| SC/kdebindings | 0 | ||
| SC/kdeedu | cryos? | ? | update me! |
| SC/kdeexamples | 0 | ||
| SC/kdegames | tumaix? | ? | update me! |
| SC/kdegraphics | 0 | ||
| SC/kdelibs | 0 | ||
| SC/kdemultimedia | eean | 0 | |
| SC/kdenetwork | grundleborg | 0 | |
| SC/kdepim | tnyblom | 0 | Just getting started Help needed. |
| SC/kdepimlibs | tnyblom | 0 | Just getting started Help needed. |
| SC/kdeplasma-addons | 0 | ||
| SC/kdesdk | mattr | 0 | just starting |
| SC/kdetoys | mattr | 0 | just starting |
| SC/kdeutils | 0 | ||
| SC/kdewebdev | 0 | ||
| extragear/sdk/kdevelop | apaku | 85 | Misses history from KDE3.3 and older (KDevelop3.2), probably something with layout-changes, might need recurse-action but don't know how to do it. |
| extragear/sdk/kdevplatform | apaku | 100 | done, all tags seem fine all branches are there |
| extragear/*/* | xx | expand the *'s later (let's focus on the base modules first) | |
| kde-common | mattr | 0 | just starting |
| kdesupport | 0 | ||
| koffice | tzander | 100 | |
| promo | 0 | ||
| quality | 0 | ||
| tests | 0 |
0% completed (estimate)
Owner: nobody!!
Status: argonel had a hd failure :( [2010-01-06]
> How about every repo has, by convention, a "commits" branch and > a post commit hook that ensures whatever meta info is required, > however it can be gleaned, is also checked into that commits branch. > A bit like how gitosis uses a repo to store auth/acl info to help > manage the other repos.
That's exactly my idea. And of course it won't be named commits, because we're not talking about commits.
It's a push log, similar to a local repository's reflog.
For every push, log:
- who pushed (not the Unix username, which will be "git") - which branch heads changed (what from, what to) - which tags were created - the state of all other branches and tags
Just use git commit-tree with the empty tree and save everything in the commit message, one after the other.
This does not require help from gitorious.org until the script is actually written: it's just another pre-receive hook for them to install on their servers. it *might* also be possible to run it as a post-receive hook (in which case we can do the whole thing ourselves).
if we self-host, then we won't need this.
0% completed (estimate)
Owner:
Status:
what we already have: two build scripts for kde; kdesvn-build and build-tool. what we want: an easy way for people to get large chunks of kde, without thinking about what urls the repos come from or having to look things up.
do kde-svnbuild and build-tool satisfy this well enough? or do we want a computer-readable file listing all the repos too?
btw, scripty has its own list of repos already. it's just in a rather weird bash file.
Links [1] Projects/MovetoGit/MassCloneScript [2]
0% completed (estimate)
Owner: volunteers needed!!
Discussion: this got accidentally marked as done or something, but it's not.
Notes: > > As for line-endings, be careful because Git is different from Subversion. > > different how?
Just ensure that all files are stored as LF only, except if there's a .gitattributes file saying "-crlf" (i.e., allow it to have CRLF).
0% completed (estimate)
Owner:
Discussion
Owner: Chani, greeneg, - please help out!
10% completed (estimate)
Discussion
0% completed (estimate)
Owner: No one (help!)
Discussion
0% completed (estimate)
Owner: argonel
Discussion ...on the other hand, if we get a lot of bikeshedding about what hooks, then it won't be so nice. so I'd put this in the "very optional" pile. --Chani 19:10, 16 December 2009 (UTC)
2% (initial ideas on the table)
Owner: ruphy
Discussion
0% completed (estimate)
Owner: johan
Discussion
0% completed (estimate)
Owner: eean, johan, boud, dario
Discussion
90% completed (estimate)
Owner: morice Ian Monroe
Discussion: We have a fairly complete set of post-update hooks now. See remotehook. However, it would be nice to have a system that lives on the Gitorious server and/or requires less manual maintenance. But its certainly workable and no longer a blocker.
100% completed (estimate)
Owner: David Faure
Status: ???
Discussion
Exists, but ignorable:
95% completed (estimate)
Owner: drf
Status: Amarok has EBN checks
100% completed (estimate)
Owner: Sebas, Eike
Discussion
100% completed (estimate)
Owner: morice, johan, mattr
Discussion
0% completed (estimate)
Owner: Gitorious, KDE e.V. Board, eean
Discussion
100% completed (estimate)
Owner: darktears
This should be easily done with Gitorious web interface and merge requests actually.
Discussion
100% completed (estimate)
Owner: Gitorious
Have a sensible system for merge request emails. This is now in place - you can join groups, chose whether to have emails on a per repo basis, etc.
100% completed (estimate)
Owner: Unknown
Discussion
100% completed (estimate)
Owner: aseigo
Discussion
They aren't huge fans of git, but are using it. They require a single mainline and can't cope with multiple branches. Otherwise, it's workable, even if it will take an adjustment period.
100% completed (estimate)
Owner: (unknown)
Discussion
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -> email, but we have that now from Gitorious. Answer from David Faure: I strongly disagree. We still need a KDE accounts file. This is very useful for finding people's email addresses, and having an overview on the number of active kde contributors; and if we keep it we can even have a kdepim resource again for filling an addressbook from it, for completion in kmail's composer (so you can write to any other kde contributor by just typing his/her name). It's also used for populating automatically the kde-cvs-announce mailing-list, for announcements. kde-common/accounts is our family tree (well, list), let's not get rid of it.
Here's my proposal for a kde-common/accounts replacement for the git era: We write a post-receive hook that looks at every commit and records all known email addresses for a given real name as well as the commit hash and date of when an address was last encountered. We can then present that data in the form of a file like kde-common/accounts, or write a web interface to query it (with nice links to the commits on Gitorious, etc.) --Eike (Sho_ on IRC)
To clear up possible confusion: The author information for a given commit is baked into the commit object itself, and comes from the configuration of the git repository it was created in. It is unrelated to any Gitorious account. Due to the distributed nature of Git, the one who uses his Gitorious account to push a commit need not be the same who created it. If Developer A creates a commit in his local clone and Developer B fetches it into his local clone directly from Developer A's machine and then pushes it into the public repo, the repo will only show a commit from Developer A. The Gitorious website will show that Developer B has pushed up a commit from Developer A, but that data is not contained in the repository. Thus collecting only Gitorious accounts and their mail addresses is insufficient. --Eike
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.
some of this stuff was from the list from GCDS that was in this email http://markmail.org/message/u6eqfjece7fibfyo
TODO merge this with the todolists above
michael jansen: talking to kdesvn-build/mpyne
jonas: domain name
ML: convert to SSH
chani: techbase docs for scripty
sebas/lydia/leo: communication with teams! tell people! keeping track that everything is being done.