<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Toma&amp;feedformat=atom</id>
		<title>KDE TechBase - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Toma&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Toma"/>
		<updated>2013-05-26T06:31:04Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-28T22:49:53Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Checking out */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
=== Checkout behind a Firewall ===&lt;br /&gt;
If you are behind a firewall and port 22 is blocked, you can do the following if https traffic is allowed:&lt;br /&gt;
&lt;br /&gt;
Add the following to your .ssh/config:&lt;br /&gt;
&lt;br /&gt;
   Host sshsvn.kde.org&lt;br /&gt;
     Port 443&lt;br /&gt;
&lt;br /&gt;
Use sshsvn.kde.org as hostname, for example try:&lt;br /&gt;
&lt;br /&gt;
   svn ls svn+ssh://yourusername@sshsvn.kde.org/home/kde&lt;br /&gt;
Warning: the hostname sshsvn.kde.org will only work in this particular case. Use svn.kde.org if you are not using the above setup.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is made up out of multiple servers spread over the world.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:38:11Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Firewall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
=== Checkout behind a Firewall ===&lt;br /&gt;
If you are behind a firewall and port 22 is blocked, you can do the following if https traffic is allowed:&lt;br /&gt;
&lt;br /&gt;
Add the following to your .ssh/config:&lt;br /&gt;
&lt;br /&gt;
   Host sshsvn.kde.org&lt;br /&gt;
     Port 443&lt;br /&gt;
&lt;br /&gt;
Use sshsvn.kde.org as hostname, for example try:&lt;br /&gt;
&lt;br /&gt;
   svn ls svn+ssh://yourusername@sshsvn.kde.org/home/kde&lt;br /&gt;
Warning: the hostname sshsvn.kde.org will only work in this particular case. Use svn.kde.org if you are not using the above setup.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is made up out of multiple servers spread over the world.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:37:49Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Firewall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
=== Firewall ===&lt;br /&gt;
If you are behind a firewall and port 22 is blocked, you can do the following if https traffic is allowed:&lt;br /&gt;
&lt;br /&gt;
Add the following to your .ssh/config:&lt;br /&gt;
&lt;br /&gt;
   Host sshsvn.kde.org&lt;br /&gt;
     Port 443&lt;br /&gt;
&lt;br /&gt;
Use sshsvn.kde.org as hostname, for example try:&lt;br /&gt;
&lt;br /&gt;
   svn ls svn+ssh://yourusername@sshsvn.kde.org/home/kde&lt;br /&gt;
Warning: the hostname sshsvn.kde.org will only work in this particular case. Use svn.kde.org if you are not using the above setup.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is made up out of multiple servers spread over the world.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:36:16Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
=== Firewall ===&lt;br /&gt;
If you are behind a firewall and port 22 is blocked, you can do the following if https traffic is allowed:&lt;br /&gt;
&lt;br /&gt;
Add the following to your .ssh/config:&lt;br /&gt;
&lt;br /&gt;
   Host sshsvn.kde.org&lt;br /&gt;
     Port 443&lt;br /&gt;
&lt;br /&gt;
Use sshsvn.kde.org as hostname, for example try:&lt;br /&gt;
&lt;br /&gt;
   svn ls svn+ssh://yourusername@sshsvn.kde.org/home/kde&lt;br /&gt;
Warning: the hostname sshsvn.kde.org will only work in this particular case. Use svn.kde.org if you are not using the above setup.&lt;br /&gt;
&lt;br /&gt;
Anonsvn is available via port 443 on the anonsvn4 hostname:&lt;br /&gt;
  svn ls svn://anonsvn4.kde.org:443/home/kde&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is made up out of multiple servers spread over the world.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Also of interest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is made up out of multiple servers spread over the world.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Linking in subdirectories from other places */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Further Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:13:47Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Old Getting_started/Sources/Anonymous SVN Page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Setup Subversion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:12:48Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Checking out trunk using snapshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:12:14Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:10:15Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date — anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install [[Getting_Started/Distribution_Packages|KDE SVN packages from your distribution]].&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:08:37Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Please see the [[Development/Git|KDE Git page]] for more details about git within KDE. Also note that Subversion is currently being dismantled. See [http://community.kde.org/Sysadmin/SVNInfrastructureShutdown this timeline]&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;qt-copy/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The convenience copy of [http://www.trolltech.com/ Trolltech's] Qt library, which KDE is based upon. Remember, this is deprecated, you should be using the git repository, kde-qt instead. Qt-copy is at version 4.5, yet trunk '''requires '''&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;tests/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:khtml, KOffice and ksvg testcases&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date — anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install [[Getting_Started/Distribution_Packages|KDE SVN packages from your distribution]].&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Subversion</id>
		<title>Getting Started/Sources/Subversion</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Subversion"/>
				<updated>2013-01-26T20:05:34Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
name=Using Subversion With KDE|&lt;br /&gt;
reading=[[Contribute/Send Patches|Contributing/Sending Patches]]|&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This is a quick KDE-specific introduction for using Subversion to access files and software in KDE's repositories. For comprehensive coverage of Subversion we recommend reading the book &amp;quot;[http://svnbook.red-bean.com/ Version Control with Subversion]&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
 Please see the [[Development/Git|KDE Git page]] for more details about git within KDE.&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
In order to use the KDE Subversion repository, you will need a&amp;amp;nbsp;Subversion client program. &lt;br /&gt;
&lt;br /&gt;
If you only need SVN for checking out the sources (read-only), use the protocol: &amp;quot;svn&amp;quot; at the server:&amp;amp;nbsp;&amp;quot;anonsvn.kde.org&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So for example, instead of what you see throughout this tutorial, your paths would be similar to this: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop &lt;br /&gt;
&lt;br /&gt;
If you would like to commit changes to the repository, you will need an SVN account, which is obtainable here:&amp;amp;nbsp;[[Get a SVN Account|get an SVN Account]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Installing Subversion:''' instructions on installing the client are not presented here. Refer to your system installation instructions to find out how you can install Subversion. You will need version 1.1 at least &amp;lt;!-- this needs confirmation --&amp;gt;. If you are compiling from sources and want to access the KDE repository by https (and not by svn+ssh), you will need SSL and ZLIB support, so you will need the &amp;lt;tt&amp;gt;--with-ssl --with-zlib&amp;lt;/tt&amp;gt; options. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can install one of the many graphical clients out there (for example, kdesvn, albeit unofficial). This tutorial is intended for people using the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program only, referring to tasks accomplished with the usual &amp;lt;tt&amp;gt;cvs&amp;lt;/tt&amp;gt; program. &lt;br /&gt;
&lt;br /&gt;
'''Getting an account:''' if you have had a CVS account before, it has been migrated to the new Subversion client.&lt;br /&gt;
&lt;br /&gt;
== The KDE repository structure  ==&lt;br /&gt;
&lt;br /&gt;
 svn.kde.org/home/kde&lt;br /&gt;
&lt;br /&gt;
That's the address of the KDE Subversion repository.  &lt;br /&gt;
&lt;br /&gt;
The SSL certificate md5 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 F6BF EDE2 D016 D1B2   4F18 742E 2C8F B7EF&lt;br /&gt;
&lt;br /&gt;
The SSL certificate sha1 fingerprint for the repositories: &lt;br /&gt;
&lt;br /&gt;
 e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f&lt;br /&gt;
&lt;br /&gt;
For people using svn+ssh, here's the fingerprint of the server's RSA key: &lt;br /&gt;
&lt;br /&gt;
 1e:89:fa:0d:c3:11:a4:81:36:84:b6:f2:6b:f0:5b:ad&lt;br /&gt;
&lt;br /&gt;
The repository is organised in main directories: &lt;br /&gt;
&lt;br /&gt;
#/branches &lt;br /&gt;
#/tags &lt;br /&gt;
#/trunk&lt;br /&gt;
&lt;br /&gt;
You can explore the repository structure at [http://websvn.kde.org/ http://websvn.kde.org/] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory /trunk  ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; top-level subdirectory is where the main development for KDE occurs. What you will find here is what will become the next KDE release and its associated programs. Here you will also find the &amp;lt;tt&amp;gt;www&amp;lt;/tt&amp;gt; module, which contains webpages for KDE's site and related ones. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/trunk&amp;lt;/tt&amp;gt; is further subdivided into these sub-directories: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;KDE itself, what will become the next public release. It contains the following modules: &lt;br /&gt;
**'''kdelibs''' - KDE basic libraries, used by all KDE programs &lt;br /&gt;
**'''kdebase''' - KDE base programs, like the KDE Control Center, Kicker (the panel) and Konqueror (the web browser) &lt;br /&gt;
**'''kdeaccessibility''' - Accessibility files &lt;br /&gt;
**'''kdeadmin''' - KDE Administration applications &lt;br /&gt;
**'''kdeartwork''' - Images, themes, sounds and other art files &lt;br /&gt;
**'''kdebindings''' - Bindings for languages other than C++ &lt;br /&gt;
**'''kdeedu''' - KDE Educational applications &lt;br /&gt;
**'''kdegames''' - KDE Games &lt;br /&gt;
**'''kdegraphics''' - KDE Graphical applications &lt;br /&gt;
**'''kdemultimedia''' - KDE Multimedia applications &lt;br /&gt;
**'''kdenetwork''' - KDE Networking applications &lt;br /&gt;
**'''kdepim''' - KDE Personal Information Management applications &lt;br /&gt;
**'''kdepimlibs''' - Libraries used by KDE-PIM applications. &lt;br /&gt;
**'''kdesdk''' - KDE Software Development Kit applications &lt;br /&gt;
**'''kdetoys''' - KDE toy applications &lt;br /&gt;
**'''kdeutils''' - KDE General utilities &lt;br /&gt;
**'''kdewebdev''' - KDE Web development applications &lt;br /&gt;
*&amp;lt;tt&amp;gt;kde-common&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Common admin/ directory&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;bugs/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[http://bugs.kde.org/ Bugzilla] files&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;developer.kde.org/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The content of developer.kde.org&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:KDE programs outside the main KDE releases.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdereview/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Temporary home for KDE applications that are believed to have reached release-quality. From here, once all major issues are resolved, applications are moved either to &amp;lt;tt&amp;gt;/trunk/KDE/&amp;lt;/tt&amp;gt; or to &amp;lt;tt&amp;gt;/trunk/extragear/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;kdesupport/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Supporting applications and libraries for KDE&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;koffice/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;The KDE Office suite, containing the programs: &lt;br /&gt;
**'''karbon''' &lt;br /&gt;
**'''kchart''' &lt;br /&gt;
**'''kexi''' &lt;br /&gt;
**'''kformula''' &lt;br /&gt;
**'''kivio''' &lt;br /&gt;
**'''koshell''' &lt;br /&gt;
**'''kplato''' &lt;br /&gt;
**'''kpresenter''' &lt;br /&gt;
**'''krita''' &lt;br /&gt;
**'''kspread''' &lt;br /&gt;
**'''kword''' &lt;br /&gt;
*&amp;lt;tt&amp;gt;konstruct/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Konstruct, the KDE build program&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde3/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for the &amp;quot;unstable&amp;quot; modules of KDE 3 (extragear, playground)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;l10n-kde4/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Translations for KDE 4&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;playground/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The KDE playground: applications being developed, but not having yet reached release-quality.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;qt-copy/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The convenience copy of [http://www.trolltech.com/ Trolltech's] Qt library, which KDE is based upon. Remember, this is deprecated, you should be using the git repository, kde-qt instead. Qt-copy is at version 4.5, yet trunk '''requires '''&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;tests/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:khtml, KOffice and ksvg testcases&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;valgrind/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:The Valgrind application, which is hosted on the KDE repository, but that is not part of KDE itself. Note that newer versions of Valgrind are developed on their own repository. The KDE Valgrind modules only holds up to Valgrind 2.4.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;www/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Webpages for the KDE site (and related sites). Write access to this directory is restricted.&lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/tags&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the official releases of the programs maintained and developed in the KDE repository. Each individual application has a subdirectory here. Inside it, you will find the release numbers. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.0 code can be found under &amp;lt;tt&amp;gt;/tags/KDE/3.4.0/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== The top-level directory &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the branch versions of the applications after a major release. &lt;br /&gt;
&lt;br /&gt;
Most KDE applications adhere to the philosphy that new features (as well as new user-visible strings) are added only to the next release cycle — the one that lives in &amp;lt;tt&amp;gt;/trunk/&amp;lt;/tt&amp;gt;. However, bugfixes are applied to all applications, even after release. &lt;br /&gt;
&lt;br /&gt;
In order to do that, a branch is created at the moment of the release, indicating the state of the files at that time. Bugfixes are then checked in to those files. Those branches are the ones in &amp;lt;tt&amp;gt;/branches/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For instance, the KDE 3.4.x branch can be found under &amp;lt;tt&amp;gt;/branches/KDE/3.4/&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The subdirectories you will find inside &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt; are the application subdirs, like &amp;lt;tt&amp;gt;akregator/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;amarok/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;arts/&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3b/&amp;lt;/tt&amp;gt;, etc. You will also find a &amp;lt;tt&amp;gt;KDE/&amp;lt;/tt&amp;gt; subdir, containing the official KDE releases since time immemorial. &lt;br /&gt;
&lt;br /&gt;
One special subdir is found in &amp;lt;tt&amp;gt;/branches&amp;lt;/tt&amp;gt;: &amp;lt;tt&amp;gt;work/&amp;lt;/tt&amp;gt;. This subdir contains the so-called &amp;quot;work branches&amp;quot;, that is, branches containing features being worked on, sometimes highly experimental. Multi-application work branches always are checked in to &amp;lt;tt&amp;gt;/branches/work/&amp;lt;/tt&amp;gt;, but single-application branches may be found in each application's subdir. That is a decision left to the developers. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Checking out and updating  ==&lt;br /&gt;
&lt;br /&gt;
=== Checking out  ===&lt;br /&gt;
&lt;br /&gt;
In order to check out something with Subversion, you use the &amp;lt;tt&amp;gt;checkout&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
'''WARNING:''' If you checkout trunk/KDE/ or branches/KDE/foo/ you will download complete kde-i18n! &lt;br /&gt;
&lt;br /&gt;
Suppose you wanted to check out only kdeedu from the KDE repository. You would do: &lt;br /&gt;
&lt;br /&gt;
Subversion users currently using ssh access should use protocol svn+ssh while subversion users currently using password access should use protocol https in the following: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh:://username@svn.kde.org/home/kde/trunk/KDE/kdeedu&lt;br /&gt;
&lt;br /&gt;
For checking out kdevelop from extragear you would do:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn+ssh://username@svn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
If you don't have a KDE developers account, use:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn:://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop&lt;br /&gt;
&lt;br /&gt;
=== Updating  ===&lt;br /&gt;
&lt;br /&gt;
In order to update, you use the &amp;lt;tt&amp;gt;update&amp;lt;/tt&amp;gt; subcommand. &lt;br /&gt;
&lt;br /&gt;
You change into your checked out copy (for those new to this whole process, the checked out copy should be in your Home folder) and issue a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or, shorter, &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt;) command.&lt;br /&gt;
&lt;br /&gt;
== Knowing the status of a file  ==&lt;br /&gt;
&lt;br /&gt;
To know which local files you had modified, you have to do&lt;br /&gt;
&lt;br /&gt;
 svn status&lt;br /&gt;
&lt;br /&gt;
and look at the files with '''M''' (for modified).&lt;br /&gt;
&lt;br /&gt;
== Committing to the repository  ==&lt;br /&gt;
&lt;br /&gt;
Committing to the Subversion repository is accomplished with the &amp;lt;tt&amp;gt;commit&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;ci&amp;lt;/tt&amp;gt; for short) subcommands:&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci&lt;br /&gt;
 # or&lt;br /&gt;
 svn ci filename.cpp&lt;br /&gt;
&lt;br /&gt;
This way, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will launch the editor specified in &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt; for you to compose the commit message. If you prefer, you can give &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; the -m option with your full message: &lt;br /&gt;
&lt;br /&gt;
 svn ci -m &amp;quot;Updating protocol to conform to HTTP/1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Ignoring files  ==&lt;br /&gt;
&lt;br /&gt;
Subversion stores ignored files per directory. To edit the ignored files of the directory you are currently in, do &lt;br /&gt;
&lt;br /&gt;
  svn propedit svn:ignore .&lt;br /&gt;
&lt;br /&gt;
that will launch your editor, write there the names of the files you want to ignore, one file per line. Once you are done, do a commit so the ignored list file gets updated on the server. &lt;br /&gt;
&lt;br /&gt;
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your {{path|~/.subversion/config}} (all in one line): &lt;br /&gt;
&lt;br /&gt;
 global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc&lt;br /&gt;
 *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs&lt;br /&gt;
 SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc&lt;br /&gt;
 *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx&lt;br /&gt;
 *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C&lt;br /&gt;
 *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in&lt;br /&gt;
 Makefile.rules Makefile.calls autom4te.cache *.kidl&lt;br /&gt;
&lt;br /&gt;
== Working with multiple revisions and branches  ==&lt;br /&gt;
&lt;br /&gt;
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster). &lt;br /&gt;
&lt;br /&gt;
So, for instance, when you check out the KDE repository, Subversion will tell you the following: &lt;br /&gt;
&lt;br /&gt;
 Updated to revision 403821.&lt;br /&gt;
&lt;br /&gt;
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run &amp;lt;tt&amp;gt;cvs up&amp;lt;/tt&amp;gt; to update the rest of the files. &lt;br /&gt;
&lt;br /&gt;
If you want to retrieve a specific revision of a file, you can use the &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; switch. Besides the revision number itself, -r accepts a number of other possibilities: &lt;br /&gt;
&lt;br /&gt;
*The revision number: for example, use -r 403819 to retrieve that version &lt;br /&gt;
*'''BASE''': the revision you updated to &lt;br /&gt;
*'''COMMITTED''': the revision a file was last modified, before BASE &lt;br /&gt;
*'''PREV''': the revision of the previous commit to the file before COMMITTED &lt;br /&gt;
*'''HEAD''': the most recent revision available in the server &lt;br /&gt;
*'''{ date }''': between curly brackets, you can specify a date for searching the closest revisions&lt;br /&gt;
&lt;br /&gt;
The following illustrates the evolution of the keywords: &lt;br /&gt;
&lt;br /&gt;
#You run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; to update to the latest available revision. Suppose Subversion tells you it updated to revision 403821. This means that HEAD and BASE are 403821. &lt;br /&gt;
#You modify file README and commit it. Suppose Subversion tells you it committed revision 403822. This means HEAD, BASE and COMMITTED are 403822. &lt;br /&gt;
#You modify the file again and commit it. Now PREV is 403822, but HEAD, BASE and COMMITTED are updated to a new value (suppose it's 403823). &lt;br /&gt;
#Now someone else modifies the repository, and you update your working copy. If Subversion tells you it updated to 403824, this means now HEAD and BASE are moved to 403824 (but PREV and COMMITTED stay the same) &lt;br /&gt;
#If someone modifies the README file now, HEAD is moved. The other keywords stay the same for you, until you update. At this time, we will have HEAD = 403825 (the latest available revision), BASE = 403824 (the revision you last updated to), COMMITTED = 403823 (the revision of the latest change to the file when you last updated) and PREV = 403822 (the revision of the change before COMMITTED)&lt;br /&gt;
&lt;br /&gt;
Those keywords are useful to retrieve logs and diffs for commits to the repository. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your working copy and BASE, you can run: &lt;br /&gt;
&lt;br /&gt;
 svn diff&lt;br /&gt;
&lt;br /&gt;
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation. &lt;br /&gt;
&lt;br /&gt;
If you want to see the difference between your local copy and the latest available on the server, you will run: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see what has changed in the repository since you've last updated, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r BASE:HEAD&lt;br /&gt;
&lt;br /&gt;
If you want to see the last change to a file before BASE, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn diff -r PREV:BASE&lt;br /&gt;
 # or&lt;br /&gt;
 svn diff -r PREV:COMMITTED&lt;br /&gt;
&lt;br /&gt;
That is also valid for the &amp;lt;tt&amp;gt;svn log&amp;lt;/tt&amp;gt; command. &lt;br /&gt;
&lt;br /&gt;
== Linking in subdirectories from other places  ==&lt;br /&gt;
&lt;br /&gt;
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property &amp;lt;tt&amp;gt;svn:external&amp;lt;/tt&amp;gt; of the directory the subdirectory should be added to. So for the current directory you use &lt;br /&gt;
&lt;br /&gt;
 svn propedit svn:externals .&lt;br /&gt;
&lt;br /&gt;
and then enter lines of the form &lt;br /&gt;
&lt;br /&gt;
 libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi&lt;br /&gt;
&lt;br /&gt;
Updating will now fetch &amp;lt;tt&amp;gt;/trunk/playground/pim/khalkhi&amp;lt;/tt&amp;gt; into the subdirectoy &amp;lt;tt&amp;gt;libkhalkhi&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{{warning|Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy.}} &lt;br /&gt;
&lt;br /&gt;
You use &amp;lt;tt&amp;gt;svn://anonsvn.kde.org&amp;lt;/tt&amp;gt; and not another protocol, because &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt; is accessible to everyone. Using &amp;lt;tt&amp;gt;https:&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;svn+ssh:&amp;lt;/tt&amp;gt; would only work for users of that protocol. There are still some small disadvantage with &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;: It is not always in synchronization with &amp;lt;tt&amp;gt;svn.kde.org&amp;lt;/tt&amp;gt;, so updates in the original branch may take a while to appear on &amp;lt;tt&amp;gt;anonsvn.kde.org&amp;lt;/tt&amp;gt;. And some strict firewalls are blocking the &amp;lt;tt&amp;gt;svn:&amp;lt;/tt&amp;gt; protocol. &lt;br /&gt;
&lt;br /&gt;
A special case in KDE 3 is the subdirectory &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt;, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in &amp;lt;tt&amp;gt;/branches/KDE/3.5/kde-common&amp;lt;/tt&amp;gt;. For &amp;lt;tt&amp;gt;admin&amp;lt;/tt&amp;gt; the KDE subversion server is configured to allow readonly access for everyone, so if you see &lt;br /&gt;
&lt;br /&gt;
 admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin&lt;br /&gt;
&lt;br /&gt;
there is no need to change this. &lt;br /&gt;
&lt;br /&gt;
== Further Links  ==&lt;br /&gt;
&lt;br /&gt;
*[[Development/Tools/svnmerge.py|Merge tracking with svnmerge.py]]&lt;br /&gt;
&lt;br /&gt;
= Old Getting_started/Sources/Anonymous SVN Page =&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date — anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install [[Getting_Started/Distribution_Packages|KDE SVN packages from your distribution]].&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules</id>
		<title>Schedules</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules"/>
				<updated>2011-02-08T20:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* KDE4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
During development, the KDE project sets goals in features and dates for upcoming releases. This way, the team knows when it would be a good time to add a new feature or when it's time to&lt;br /&gt;
focus on cleaning up any bugs in preparation for a release. Any plans are tentative schedules and the final dates are generally decided on the kde-core-devel mailing list.&lt;br /&gt;
&lt;br /&gt;
Learn more about [[Schedules/Release Schedules Guide|release schedules]].&lt;br /&gt;
&lt;br /&gt;
== KDE4 ==&lt;br /&gt;
* [[Schedules/KDE4/Goals|KDE 4 Goals]]&lt;br /&gt;
* [[Schedules/KDE4/Application Porting Status|Application Porting Status]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.7'''&lt;br /&gt;
** [[Schedules/KDE4/4.7 Release Schedule|Release Schedule]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.6'''&lt;br /&gt;
** [[Schedules/KDE4/4.6 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.6 Feature Plan|Feature Plan]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.5'''&lt;br /&gt;
** [[Schedules/KDE4/4.5 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.5 Feature Plan|Feature Plan]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.4'''&lt;br /&gt;
** [[Schedules/KDE4/4.4 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.4 for you?|Is KDE 4.4 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.3'''&lt;br /&gt;
** [[Schedules/KDE4/4.3 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.3 for you?|Is KDE 4.3 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.2'''&lt;br /&gt;
** [[Schedules/KDE4/4.2 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.2 for you?|Is KDE 4.2 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.1'''&lt;br /&gt;
** [[Schedules/KDE4/4.1 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.1 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.1 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.1 for you?|Is KDE 4.1 for you?]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.0'''&lt;br /&gt;
** [[Schedules/KDE4/4.0 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Release Roadmap|Release Milestones]] &lt;br /&gt;
** [[Schedules/KDE4/4.0 Module_Status|Module Status and Pending Application Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Announcements|Announcement Information]]&lt;br /&gt;
** [http://developer.kde.org/development-versions/kde-4.0-features.html Feature Plan]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
== KDE3 ==&lt;br /&gt;
&lt;br /&gt;
*'''KDE 3.5''' [[Schedules/KDE 3.5 Release Schedule|release schedule]], [[Schedules/KDE 3.5 Feature Plan|feature plan]]&lt;br /&gt;
&lt;br /&gt;
=== Previous releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KDE 3.4''' [[Schedules/KDE 3.4 Release Schedule|release schedule]], [[Schedules/KDE 3.4 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.3''' [[Schedules/KDE 3.3 Release Schedule|release schedule]], [[Schedules/KDE 3.3 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.2''' [[Schedules/KDE 3.2 Release Schedule|release schedule]], [[Schedules/KDE 3.2 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.1''' [[Schedules/KDE 3.1 Release Schedule|release schedule]], [[Schedules/KDE 3.1 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.0''' [[Schedules/KDE 3.0 Release Schedule|release schedule]], [[Schedules/KDE 3.0 Feature Plan|feature plan]]&lt;br /&gt;
&lt;br /&gt;
== KOffice ==&lt;br /&gt;
&lt;br /&gt;
=== Current releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KOffice 2.3''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.3/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.3/Feature_Plan feature plan]&lt;br /&gt;
*'''KOffice 2.2''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.2/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.2/Feature_Plan feature plan]&lt;br /&gt;
*'''KOffice 2.1''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.1/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.1/Feature_Plan feature plan]&lt;br /&gt;
*'''KOffice 2.0''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.0/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.0/Feature_Plan feature plan]&lt;br /&gt;
&lt;br /&gt;
=== Previous releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KOffice 1.6''' [[Schedules/KOffice 1.6 Release Schedule|release schedule]]&lt;br /&gt;
*'''KOffice 1.5''' [[Schedules/KOffice 1.5 Release Schedule|release schedule]]&lt;br /&gt;
&lt;br /&gt;
== Extragear ==&lt;br /&gt;
* [[Schedules/Extragear|Overview of upcoming Extragear releases]]&lt;br /&gt;
&lt;br /&gt;
== Playground ==&lt;br /&gt;
* [[Schedules/Playground|Overview of upcoming Playground releases]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.7_Release_Schedule</id>
		<title>Schedules/KDE4/4.7 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.7_Release_Schedule"/>
				<updated>2011-02-08T20:21:32Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Created page with 'KDE SC 4.7 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.7 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
You can also add [http://www.kde.org/releaseschedule.ics http://www.kde.org/releaseschedule.ics] as remote calendar to korganizer so you always have the release schedule near you.&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.7 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, April 28, 2011: KDE 4.7 Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 12, 2011: KDE 4.7 Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. You cannot add new strings, if you really need one ask kde-i18n-doc for an exception. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until the Hard Message Freeze, but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 12, 2011: KDE 4.7 Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 12, 2011: KDE 4.7 Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 12, 2011: KDE 4.7 Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 19, 2011: KDE 4.7 Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, May 25, 2011: KDE 4.7 Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, May 30, 2011: KDE 4.7 Documentation Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, June 2, 2011: KDE 4.7 Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, June 8, 2011: KDE 4.7 Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, June 20, 2011: KDE 4.7 Tagging Freeze for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, June 20, 2011: KDE 4.7 Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, June 20, 2011: KDE 4.7 Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need to contact kde-i18n-doc for every single string change, if noone objects in 5 days you can commit the change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, June 20, 2011: KDE 4.7 Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, June 21, 2011: KDE 4.7 Release Candidate 1 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, June 22, 2011: KDE 4.7 Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, July 4, 2011: KDE 4.7 Tagging Freeze for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, July 5, 2011: KDE 4.7 Release Candidate 2 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, July 6, 2011: KDE 4.7 Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, July 20, 2011: KDE 4.7 Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, July 27, 2011: KDE 4.7 Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, September 1, 2011: KDE 4.7.1 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, September 6, 2011: KDE 4.7.1 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, September 29, 2011: KDE 4.7.2 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, October 4, 2011: KDE 4.7.2 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 27, 2011: KDE 4.7.3 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, November 1, 2011: KDE 4.7.3 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 1, 2011: KDE 4.7.4 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 6, 2011: KDE 4.7.4 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2011-02-08T20:00:50Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
You can also add [http://www.kde.org/releaseschedule.ics http://www.kde.org/releaseschedule.ics] as remote calendar to korganizer so you always have the release schedule near you.&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: KDE 4.6 Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: KDE 4.6 Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. You cannot add new strings, if you really need one ask kde-i18n-doc for an exception. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until the Hard Message Freeze, but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: KDE 4.6 Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: KDE 4.6 Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: KDE 4.6 Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: KDE 4.6 Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: KDE 4.6 Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: KDE 4.6 Documentation Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: KDE 4.6 Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: KDE 4.6 Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: KDE 4.6 Tagging Freeze for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: KDE 4.6 Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: KDE 4.6 Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need to contact kde-i18n-doc for every single string change, if noone objects in 5 days you can commit the change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: KDE 4.6 Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: KDE 4.6 Release Candidate 1 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: KDE 4.6 Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: KDE 4.6 Tagging Freeze for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: KDE 4.6 Release Candidate 2 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: KDE 4.6 Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: KDE 4.6 Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: KDE 4.6 Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, February 24, 2011: KDE 4.6.1 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, March 1, 2011: KDE 4.6.1 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, March 31, 2011: KDE 4.6.2 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, April 5, 2011: KDE 4.6.2 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, April 28, 2011: KDE 4.6.3 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, May 3, 2011: KDE 4.6.3 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, June 2, 2011: KDE 4.6.4 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, June 7, 2011: KDE 4.6.4 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, June 30, 2011: KDE 4.6.5 tagging ===&lt;br /&gt;
A KDE minor release is tagged and made available to the packagers.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, July 5, 2011: KDE 4.6.5 release ===&lt;br /&gt;
A KDE minor release is released to the public.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2011-01-01T20:45:24Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
You can also add [http://www.kde.org/releaseschedule.ics http://www.kde.org/releaseschedule.ics] as remote calendar to korganizer so you always have the release schedule near you.&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. You cannot add new strings, if you really need one ask kde-i18n-doc for an exception. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until the Hard Message Freeze, but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentation Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need to contact kde-i18n-doc for every single string change, if noone objects in 5 days you can commit the change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Branch is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-11-28T16:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
You can also add [http://www.kde.org/releaseschedule.ics http://www.kde.org/releaseschedule.ics] as remote calendar to korganizer so you always have the release schedule near you.&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until the Hard Message Freeze, but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need to contact kde-i18n-doc for every single string change, if noone objects in 5 days you can commit the change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2010-11-06T18:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Checkout KDE TRUNK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date — anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install [[Getting_Started/Distribution_Packages|KDE SVN packages from your distribution]].&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE TRUNK ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
You also need to checkout KDESupport:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://anonsvn4.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|The kdebase module has an external dependency, using svn:externals. The problem is, at this time, the externals property is set with an absolute path, pointing to anonsvn. For those using behind a firewall, this is a problem. You can change the property for your workspace, using two commands:&lt;br /&gt;
 [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs]] KDE&lt;br /&gt;
 svn propset svn:externals &amp;quot;lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib&amp;quot; kdebase/workspace/kwin/clients/oxygen &lt;br /&gt;
 svn propset svn:externals &amp;quot;lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib&amp;quot; kdebase/workspace/kwin/clients/ozone&lt;br /&gt;
 This way the external property will look for the additional files in the websvn repository. There are also kdenetwork/kget/transfer-plugins/bittorrent and kdebase/workspace/kwin/clients/ozone that use svn:externals get the url with svn propget svn:externals PATH and replace anonsvn.kde.org with websvn.kde.org:443 here too.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. Instructions on how to get and configure it can be found [[Getting_Started/Build/KDE4/Prerequisites#Qt |here]].&lt;br /&gt;
&lt;br /&gt;
{{tip|	It is recommended to use kde-qt.git instead of qt-copy.&lt;br /&gt;
&lt;br /&gt;
 git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kde&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of KDE TRUNK, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] (KDE4) or [http://websvn.kde.org/trunk/l10n-kde3 l10n-kde3] (KDE3). &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
=== Checkout from behind a proxy ===&lt;br /&gt;
&lt;br /&gt;
If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Since http:// access is open only to developers, you will have to use svn://. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go. &lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* Visit http://websvn.kde.org/ to browse the source code online.&lt;br /&gt;
* anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by [mailto:sysadmin@kde.org the KDE sysadmins]. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
&lt;br /&gt;
* There are also aliases anonsvn1.kde.org, anonsvn2.kde.org and anonsvn3.kde.org which point to the mirrors used in the DNS round robin (the above two plus another mneisen.org mirror). If you experience trouble because one mirror is broken, you can always select a specific mirror using either the fullnames above or simply anonsvn1, 2, or 3.&lt;br /&gt;
&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:sysadmin@kde.org the KDE sysadmins].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* post-update hooks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Scripty operates on a git clone of the repo's. No need for this item imho -- toma&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
:sysadmin will add mirrors as needed and is prepared for it. -- toma&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|50|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
Neverendingo is looking at this as needed --toma&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
Working fine in the new setup, --toma&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:16:52Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Account setup for Gitolite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Scripty operates on a git clone of the repo's. No need for this item imho -- toma&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
:sysadmin will add mirrors as needed and is prepared for it. -- toma&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|50|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
Neverendingo is looking at this as needed --toma&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:16:21Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Website Branding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Scripty operates on a git clone of the repo's. No need for this item imho -- toma&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
:sysadmin will add mirrors as needed and is prepared for it. -- toma&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|50|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
Neverendingo is looking at this as needed --toma&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:15:32Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Setup git mirrors for cloning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Scripty operates on a git clone of the repo's. No need for this item imho -- toma&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
:sysadmin will add mirrors as needed and is prepared for it. -- toma&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|2|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:14:28Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Snapshot to read-only svn */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Scripty operates on a git clone of the repo's. No need for this item imho -- toma&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' No one (help!)&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|2|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MovetoGit</id>
		<title>Projects/MovetoGit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MovetoGit"/>
				<updated>2010-10-25T11:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Setup git.kde.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the page for co-ordinating KDE's move to [http://git-scm.com/ Git].&lt;br /&gt;
&lt;br /&gt;
If you're interested in helping, you should join the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest@kde.org] mailinglist and [irc://chat.freenode.net/kde-git #kde-git] on freenode.&lt;br /&gt;
&lt;br /&gt;
Meetings are wednesdays, 19:30 UTC, in #kde-git.&lt;br /&gt;
&lt;br /&gt;
'''New! [http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting The best way you can help us migrate]'''&lt;br /&gt;
&lt;br /&gt;
=The Plan=&lt;br /&gt;
&lt;br /&gt;
KDE is, eventually, moving to Git. We will be using gitolite + Redmine + reviewboard on our own servers.&lt;br /&gt;
&lt;br /&gt;
In the summer of 2009, [http://gitorious.org/amarok Amarok] moved to Gitorious to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
After it has been decided in Jun 2010 to use our own servers, Amarok and Konversation moved to git.kde.org/projects.kde.org to test the waters and find problems that would affect KDE.&lt;br /&gt;
&lt;br /&gt;
Once those problems have been solved, all of KDE will be able to switch.&lt;br /&gt;
&lt;br /&gt;
A full schedule for the git infrastructure can be found [http://community.kde.org/Sysadmin/GitInfrastructureLaunch here].&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==How?==&lt;br /&gt;
&lt;br /&gt;
When we move, KDE's svn repository will be migrated into several Git repos, all on git.kde.org. Main modules such as kdelibs and kdebase will each become one repository. Projects in extragear will each have their own repository. The projects.kde.org site will have a list (lists?) of all these repositories using the redmine project wiki. Scripts will be provided for downloading, say, all of extragear, so &amp;quot;moving&amp;quot; a project from kdereview to extragear would simply involve editing a file kept online that defined the location of projects.&lt;br /&gt;
Details on the reasoning behind this layout is available [[Projects/MoveToGit/Layout|here]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
All KDE developers will in principle be able to use their existing &amp;quot;svn&amp;quot; accounts. Developers using HTTPS ideally would request their HTTPS SVN account to be converted to SSH as that makes it easiest for the KDE sysadmins, but alternatively they can also just provide a public key. At some point the KDE sysadmins are going to send everybody with a HTTPS SVN account an email with a link to a web app to collect their key (see http://www.omat.nl/2010/06/13/sysamin-update-your-email-address/).&lt;br /&gt;
&lt;br /&gt;
From the times when gitorious.org was the preferred hosting solution, a procedure to move a project from svn to gitorious.org can be found in [[Projects/MoveToGit/StepsToMove|Steps to follow for Moving]].&lt;br /&gt;
Many points probably still apply, but have to be updated.&lt;br /&gt;
&lt;br /&gt;
=Blockers=&lt;br /&gt;
&lt;br /&gt;
Tasks that need to get done before we can migrate&lt;br /&gt;
&lt;br /&gt;
==Setup git.kde.org==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Eike, Jeff, Sysadmin team&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Progressing''&lt;br /&gt;
&lt;br /&gt;
: It [http://lists.kde.org/?l=kde-scm-interest&amp;amp;m=127612957219466&amp;amp;w=2 has been decided] to use gitolite + Redmine + reviewboard on our own servers rather than gitorious.org.  Sysadmin team is preparing git.kde.org for this.&lt;br /&gt;
&lt;br /&gt;
==Write / update importing rules for svn2git==&lt;br /&gt;
{{Progress bar|5}}&lt;br /&gt;
'''Owner:''' see below - volunteers needed!&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''sho: ???, tumaix:started to read the docs, cryos: getting started [2010-01-06]''&lt;br /&gt;
&lt;br /&gt;
:The importer is on gitorious.org as svn2git we have a set of rules to tell the importer what svn dirs turn into which git repos and those need constant updating whenever a new branch or tag or project is created. Currently the rules are mostly a rough draft, as seen by the large amount of rule-editing that had to be done for Konversation and Amarok. This has not been done for quite some time and so someone should rsync the svn repo run svn2git and fix the rules and importer whenever the import stops.&lt;br /&gt;
&lt;br /&gt;
:This is a very big task, too big for one person; it's probably best to tackle it one module at a time&lt;br /&gt;
&lt;br /&gt;
:To get started on a module, read [[Projects/MoveToGit/UsingSvn2Git|Using Svn2Git]]&lt;br /&gt;
&lt;br /&gt;
:TZander has done the koffice ruleset as of 2009-01-06&lt;br /&gt;
&lt;br /&gt;
:Jpwhiting has finished (more or less) the kdeaccessibility ruleset 2010-01-24.&lt;br /&gt;
&lt;br /&gt;
:aavci has done the k3b ruleset as of 2010-01-27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
progress details:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!repo&lt;br /&gt;
!owner&lt;br /&gt;
!%&lt;br /&gt;
!comments&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeaccessibility&lt;br /&gt;
|jpwhiting&lt;br /&gt;
|99&lt;br /&gt;
|&amp;quot;more or less&amp;quot;?&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeadmin&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeartwork&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebase&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdebindings&lt;br /&gt;
|pumphaus/Arno Rehn&lt;br /&gt;
|90&lt;br /&gt;
|Includes nearly everything; some history from playground might be missing. Some tags from the CVS days don't have a parent yet - still have to figure out why.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu&lt;br /&gt;
|cryos?&lt;br /&gt;
|?&lt;br /&gt;
|update me!&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeedu/marble&lt;br /&gt;
|jmho&lt;br /&gt;
|100&lt;br /&gt;
|Contains: trunk with moves (playground-&amp;gt;kdereview-&amp;gt;kdeedu), regular kde branches/tags and the following other branches: marble-0.4, gsoc-2009 and geodata-nt. Checking done: gitk --all, verify-git-from-svn&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeexamples&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegames&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdegraphics&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdelibs&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdemultimedia&lt;br /&gt;
|eean&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdenetwork&lt;br /&gt;
| grundleborg&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepim-runtime&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdepimlibs&lt;br /&gt;
|tnyblom&lt;br /&gt;
|95&lt;br /&gt;
|Needs verification.&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeplasma-addons&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdesdk&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdetoys&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdeutils&lt;br /&gt;
|jobermayr&lt;br /&gt;
|95&lt;br /&gt;
|coolo or mueller do not give me required information for old tags :-(&lt;br /&gt;
|-&lt;br /&gt;
|SC/kdewebdev&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop&lt;br /&gt;
| apaku&lt;br /&gt;
| 95&lt;br /&gt;
| trunk and branches complete, need to cleanup tags from cvs days.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevplatform&lt;br /&gt;
| apaku&lt;br /&gt;
| 100&lt;br /&gt;
| done, all tags seem fine all branches are there&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/kdevelop-plugins&lt;br /&gt;
| nsams&lt;br /&gt;
| 100&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/sdk/quanta&lt;br /&gt;
| nsams&lt;br /&gt;
| 99&lt;br /&gt;
| done&lt;br /&gt;
|-&lt;br /&gt;
|extragear/utils/krecipes&lt;br /&gt;
| santa&lt;br /&gt;
| 85&lt;br /&gt;
| Branches are done, I'm working on tags.&lt;br /&gt;
|-&lt;br /&gt;
|extragear/*/*&lt;br /&gt;
|&lt;br /&gt;
|xx&lt;br /&gt;
|expand the *'s later (let's focus on the base modules first)&lt;br /&gt;
|-&lt;br /&gt;
|kde-common&lt;br /&gt;
|mattr&lt;br /&gt;
|75&lt;br /&gt;
|analyzing import history&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|kdesupport/akonadi&lt;br /&gt;
|cgiboudeaux&lt;br /&gt;
|95&lt;br /&gt;
|In progress...&lt;br /&gt;
|-&lt;br /&gt;
|koffice&lt;br /&gt;
|tzander&lt;br /&gt;
|85&lt;br /&gt;
|All but tags are done&lt;br /&gt;
|-&lt;br /&gt;
|promo&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|quality&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tests&lt;br /&gt;
|&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements of KDEPIM and KDAB ==&lt;br /&gt;
&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' Stephen Kelly&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Proposed workflow identified. Partially depends on KDE policies regarding branches and merging. Gathering estimates for porting of tooling from svn to git. People unfamiliar with the tool are starting to learn to use it.''&lt;br /&gt;
&lt;br /&gt;
'''Estimated completion date''': End of May.&lt;br /&gt;
&lt;br /&gt;
'''Summary of issues'''&lt;br /&gt;
&lt;br /&gt;
* Clean slate&lt;br /&gt;
** The existing backlog of commits which need to be merged or ported to trunk needs to be empty before the change to git so that nothing gets lost. This is a lot of work and will take time. ''Estimate'' 10 calendar weeks.&lt;br /&gt;
* Technical difficulties and limitations.&lt;br /&gt;
** Up to KDE 3.5 there was one kdepim module. For the KDE4 cycle, this was split into kdepimlibs and kdepim. For the above mentioned merging to be possible, it makes sense for both to be in the same git module. This poses extra difficulty to the svn2git script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Email threads'''&lt;br /&gt;
&lt;br /&gt;
* Mid-January thread on scm-interest: http://thread.gmane.org/gmane.comp.kde.devel.pim/26726&lt;br /&gt;
* Early March thread on kde-core-devel (Till email): http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=63970&lt;br /&gt;
* Early March thread on kde-core-devel (Till follow-up):&lt;br /&gt;
http://thread.gmane.org/gmane.comp.kde.devel.core/63915/focus=64069&lt;br /&gt;
&lt;br /&gt;
'''Resolved Issues'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Branch maintenance workflow '''Resolution: http://thread.gmane.org/gmane.comp.kde.scm-interest/1310'''&lt;br /&gt;
** KDAB maintains several branches of legacy versions of KDE for enterprise customer deployments. [http://websvn.kde.org:80/branches/kdepim/enterprise/ Enterprise 3.5] [http://websvn.kde.org:80/branches/kdepim/enterprise4/ Enterprise 4 (based on KDE 4.2)]. The current KDEPIM trunk known as Enterprise 5 and is Akonadi based.&lt;br /&gt;
** Periodically (weekly or so), tags are created from the enterprise branches with bugfixes. http://websvn.kde.org:80/tags/kdepim/ Customers can download the tagged versions with the latest updates. Fixes are merged from the Enterprise 3.5 branch, and into trunk (which sometimes involves a lot of work, as the fix must be ported to Akonadi). Additionally, fixes get merged in the other direction. From official KDE modules into the Enterprise branches.&lt;br /&gt;
** Some fixes from Enterprise 3.5 should not be merged into Enterprise 4 for reasons such as no longer being reproducible. Some fixes do not get merged for a long time because they require so much work that porting the fix or feature is deffered. There needs to be a list of commits which should never be merged (blocked commits), and commits which should be merged, but have not been merged yet. The tool [[Development/Tools/svnmerge.py|svnmerge]] is used to facilitate this. svnmerge uses svn properties to maintain lists of commits that are blocked and that have already been integrated. See for example the svn-blocked and svn-integrated properties here: http://websvn.kde.org:80/trunk/KDE/kdepim/. The lists of commits available to be merged into the various branches are here: http://www.kdab.com/~thomas/avail/&lt;br /&gt;
** There needs to be a way in git to keep track of what commits have been merged, what commits need to be merged, and what commits are blocked. There needs to be a way of merging only specific commits from a branch, but not all, and not blocked commits. Proposed solutions:&lt;br /&gt;
*** git cherry-pick allows 'merging' of individual commits, but does not record where the commits came from. Instead it creates a new commit without any reference to where it came from. This alone is unsuitable.&lt;br /&gt;
*** branch per fix. This would lead to an explosion of branches which is not a problem in git as all commits are branches. It may make gitk un-navigatable. There would need to be a naming convention such as komo-merge-&amp;lt;fixname&amp;gt; for branches which should be merged. The commands &amp;lt;tt&amp;gt;git checkout 4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout enterprise4.5 &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;git checkout master &amp;amp;&amp;amp; git merge $(git branch -a | grep -E ^origin/komo-merge)&amp;lt;/tt&amp;gt;. That could of course be optimized, but gets the point across. If the code has changed so much that the branch is unmergable, but the fix still needs to be in trunk, the system breaks down.&lt;br /&gt;
*** Custom git command with flat text files representing the same information as svnmerge, that is lists of blocked and integrated commits. This is most likely to be a workable solution, possibly together with conventional branch naming.&lt;br /&gt;
* Internal Tools and external customer tools and workflows&lt;br /&gt;
** KDAB is a consumer of KDE software, but also has downstream customers fetching software from where it is developed. That is, KDE SVN. For example packages are created from the tags in tags/kdepim. Some of these downstreams are less close to KDE and depend on current workflows. If KDE SVN is not the place to get those updates anymore, this needs to be communicated to those downstreams, and the tools updated. ''Estimate'' 1 week to port the tools.&lt;br /&gt;
*** Internally used tools have been updated and are now being used to access git repos such as dbus.&lt;br /&gt;
* Other commitments&lt;br /&gt;
** Project deadlines and other commitments prevent the possibility of blocking off time to work on git migration when so many other things need to be done which have milestones separate to KDE cycles. The required work to convert to git can't be prioritized as highly, and so will take more time.&lt;br /&gt;
*** Most of the technical work regarding migration of kdepim repos has been completed by community member Torgny Nyblom.&lt;br /&gt;
* Tool knowledge&lt;br /&gt;
** People who don't currently know how to use git need to get familiar with it so that transitioning will be nearly seamless, and not result in too much development slowdown.&lt;br /&gt;
*** Workshops and use of git-svn have been used to bring developers up to speed on how to use git at some level.&lt;br /&gt;
&lt;br /&gt;
=Nice to have before the migration=&lt;br /&gt;
&lt;br /&gt;
==Push log==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
'''Status:''' finished&lt;br /&gt;
&lt;br /&gt;
It's a push log, similar to a local repository's reflog.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
For every push, log:&lt;br /&gt;
 - who pushed (not the Unix username, which will be &amp;quot;git&amp;quot;)&lt;br /&gt;
 - which branch heads changed (what from, what to)&lt;br /&gt;
 - which tags were created&lt;br /&gt;
 - the state of all other branches and tags&lt;br /&gt;
&lt;br /&gt;
Just use git commit-tree with the empty tree and save everything in the commit &lt;br /&gt;
message, one after the other.&lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
Gitolite includes this functionality inbuilt to itself, although all repositories are logged in the same file - bcooksley&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script for downloading virtual KDE hierarchies==&lt;br /&gt;
{{Progress bar|99}}&lt;br /&gt;
'''Owner''': &lt;br /&gt;
&lt;br /&gt;
'''Status:''' &lt;br /&gt;
&lt;br /&gt;
:we already have kdesvn-build, build-tool and mr: three good tools for managing repos.&lt;br /&gt;
&lt;br /&gt;
Most people use kdesrc-build; it will neither eat babies nor kittens. it has options for updating everything or individual modules, can do fetch-only or build-only, etc..&lt;br /&gt;
Command-line options for updating the configuration would be a nice addition.&lt;br /&gt;
&lt;br /&gt;
TODO: details on mr and build-tool&lt;br /&gt;
&lt;br /&gt;
note: scripty also has its own list of repos. it's just in a rather weird bash file.&lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' &lt;br /&gt;
&lt;br /&gt;
As far as I can see, kdesvn-build is able to do it, it should be just a matter of providing a configuration. As I'm not using build-tool, I can't say anything about it. --jmho&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
*[http://kdesvn-build.kde.org/ kdesvn-build]&lt;br /&gt;
*[[Projects/MovetoGit/MassCloneScript]]&lt;br /&gt;
*[http://rubyforge.org/projects/build-tool/ build-tool]&lt;br /&gt;
*TODO: link to mr&lt;br /&gt;
&lt;br /&gt;
==pre-receive hooks==&lt;br /&gt;
{{Progress bar|50}}&lt;br /&gt;
'''Owner:''' ''volunteers needed!!''&lt;br /&gt;
&lt;br /&gt;
* Line endings and encodings&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
this got accidentally marked as done or something, but it's not.&lt;br /&gt;
&lt;br /&gt;
This has now been ported to Git - bcooksley&lt;br /&gt;
&lt;br /&gt;
Note however that it doesn't look for a .gitattributes file yet - patches welcome ( see sysadmin/repo-management on git.kde.org )&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;gt; &amp;gt; As for line-endings, be careful because Git is different from Subversion.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; different how?&lt;br /&gt;
&lt;br /&gt;
Just ensure that all files are stored as LF only, except if there's a &lt;br /&gt;
.gitattributes file saying &amp;quot;-crlf&amp;quot; (i.e., allow it to have CRLF).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Snapshot to read-only svn==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:'''&lt;br /&gt;
&lt;br /&gt;
:It's work, but maybe some people would like it. NEEDED for documentation, in order to get it back into SVN for the translators/scripty/?&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:Could be done with a git-svn gateway presumably? -Mike Arthur 19/10/2009 16:04&lt;br /&gt;
&lt;br /&gt;
:if we leave the docbook stuff in svn, we can avoid this a bit longer. --[[User:Chani|Chani]] 23:21, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==[[Development/Tutorials/Git|Techbase Documentation]]==&lt;br /&gt;
'''Owner:''' Chani, greeneg, - ''please help out!''&lt;br /&gt;
{{Progress bar|10}}&lt;br /&gt;
&lt;br /&gt;
:At least minimal documentation about how to checkout, how to request a merge needed, other git documentation and links to other git information would be very useful also.&lt;br /&gt;
&lt;br /&gt;
:see the [[Development/Tutorials/Git|Git Tutorial Page]]. help wanted!!&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Setup git mirrors for cloning==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' No one (help!)&lt;br /&gt;
:Re-purpose the anonsvn servers. This item might be a blocker.&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Local pre-commit hooks==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
'''Owner:''' argonel&lt;br /&gt;
&lt;br /&gt;
:A set of recommended local hooks that give useful warnings could be nice to have.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
...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 &amp;quot;very optional&amp;quot; pile. --[[User:Chani|Chani]] 19:10, 16 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=Post-migration Issues=&lt;br /&gt;
&lt;br /&gt;
==Website Branding==&lt;br /&gt;
{{Progress bar|2|text=(initial ideas on the table)}}&lt;br /&gt;
'''Owner:''' ruphy&lt;br /&gt;
&lt;br /&gt;
:KDE Gitorious should be branded accordingly, and should be reachable from git.kde.org as well as kde.gitorious.org&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Is this section still necessary at all? Perhaps some branding has to be done for redmine or cgit, but I don't know. --jmho&lt;br /&gt;
&lt;br /&gt;
=Unscheduled &amp;amp; Open=&lt;br /&gt;
&lt;br /&gt;
==Allow tagging without involving sysadmins==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' sysadmin&lt;br /&gt;
&lt;br /&gt;
:Gitolite allows sysadmin to permit certain people on certain repos only to manage both branches and tag without needing force push rights.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
==Account setup for Gitolite==&lt;br /&gt;
{{Progress bar|0}}&lt;br /&gt;
&lt;br /&gt;
'''Owner:''' ''sysadmin''&lt;br /&gt;
&lt;br /&gt;
:Accounts for existing SVN accounts which use SSH for access have been automatically granted access to Gitolite. Those who are still using HTTPS need to file a sysadmin bug to change their SVN account to SSH and will recieve Git access automatically.&lt;br /&gt;
&lt;br /&gt;
==post-update hooks==&lt;br /&gt;
{{Progress bar|90}}&lt;br /&gt;
'''Owner:''' ''morice'' ''Ian Monroe''&lt;br /&gt;
&lt;br /&gt;
:* License checker&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
We have a fairly complete set of post-update hooks now. See [http://gitorious.org/remotehook 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Completed Tasks=&lt;br /&gt;
&lt;br /&gt;
==Get rid of svn:externals==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' David Faure&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''???''&lt;br /&gt;
&lt;br /&gt;
:not possible with git, broken by design.&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
Exists, but ignorable:&lt;br /&gt;
* kdesupport shared-desktop-ontologies (temporary)&lt;br /&gt;
* playground/utils strigi-chemical/test/ctfr&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/php/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/python/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kdevelop4-extra-plugins/qmake/parser/generated/kdevelop-pg-qt&lt;br /&gt;
* playground/devtools kommander-plugins/database3/admin&lt;br /&gt;
* playground/devtools kommander-plugins/database/admin&lt;br /&gt;
* playground/devtools kommander-plugins/datetimefuncs/admin&lt;br /&gt;
* playground/devtools kommander-plugins/htmlpart/admin&lt;br /&gt;
* playground/devtools kommander-plugins/httpform/admin&lt;br /&gt;
* playground/devtools kommander-plugins/kparts/admin&lt;br /&gt;
* playground/devtools kommander-plugins/qtactionproxy/admin&lt;br /&gt;
* playground/devtools kommander-plugins/timewidget/admin&lt;br /&gt;
* playground/devtools kommander-plugins/webkit3/admin&lt;br /&gt;
* playground/devtools kpackagemaker/admin&lt;br /&gt;
&lt;br /&gt;
==EBN==&lt;br /&gt;
{{Progress bar|95}}&lt;br /&gt;
'''Owner:''' ''drf''&lt;br /&gt;
&lt;br /&gt;
'''Status:''' ''Amarok has EBN checks''&lt;br /&gt;
&lt;br /&gt;
:EBN's krazy checks currently run on kde's svn repo; it needs upgrading to download and check our git repos too.&lt;br /&gt;
&lt;br /&gt;
:This would be easier if there was a repo-list that EBN could parse, as it can no longer just svn up to get everything.&lt;br /&gt;
&lt;br /&gt;
==Talk to people using other distros about git==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' Sebas, Eike&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
* Gentoo: They seem to be prepared for moving their live SVN packages to git; their package manager has easily-reusable classes to fetch from an SCM and moving the ebuilds to using the git class rather than the SVN class should be easy. Positive comments to that end from people in #gentoo-kde.&lt;br /&gt;
* Fedora: Some unhappyness about git because SVN allows them to remotely produce a diff between two SVN URLs (or two revisions of one and the same URL) without making a checkout first, while git requires making a clone. Kevin Kofler (IRC nick Kevin_Kofler, #fedora-kde) says this will make their packager work harder.&lt;br /&gt;
* Debian: Is indifferent about the SCM switch.&lt;br /&gt;
&lt;br /&gt;
==Post Update hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''morice, johan, mattr&lt;br /&gt;
&lt;br /&gt;
:List of scripts needed:&lt;br /&gt;
:* BUG/CCMAIL&lt;br /&gt;
:* email/CIA&lt;br /&gt;
&lt;br /&gt;
:Gitorious needs to provide a way for hooks to be called; KDE needs to write said hooks.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:There is a branch of gitorious called web-hooks http://gitorious.org/gitorious/mainline/commits/web-hooks --Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
:Same situation as commit emails. I can do it but it doesn't scale well and a Gitorious-supported solution would be nicer. --[[User:Eean|eean]] 16:07, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Reviewboard==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' darktears&lt;br /&gt;
&lt;br /&gt;
This should be easily done with Gitorious web interface and merge requests actually.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:but reviewboard has features gitorious (right now) doesn't, like commenting on specific lines and not having to set up a merge request. --chani&lt;br /&gt;
::Also email notifications when someone reviews are needed --thomasz&lt;br /&gt;
:We're working on this for someone else right now, so pretty soon --johan-s&lt;br /&gt;
:I consider the latest changes to gitorious to finish this. If more reviewboard features are still needed, and git supports reviewboard, I think this is something we can look at doing post-conversion. --Ian Monroe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gitorious Needs a feature to disable merge request emails for certain repos==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' [http://gitorious.org/gitorious Gitorious]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==SSH blocked in corporations and universities.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''Unknown''&lt;br /&gt;
&lt;br /&gt;
:Some universities tend to block the SSH port. There should be a workaround to use SSH on some different port. github.com already runs a SSH server on port 443. But that assumes you are using a proxy. It has been found that this hasn't worked with a lot of people, especially those who have a direct connection to the internet ( so some transparent blocking by the ISP ). It would be great if (almost) every KDE developer were to be asked to check if other ports work before KDE made the switch. Otherwise there could be an automated email where the git patches could be sent, and appropriately patched to the right location too.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:http://blog.gitorious.org/2009/10/20/stuck-behind-a-firewall/, and there's always been HTTP cloning (although the current impl. in Git is a bit on the slow side) --johan-s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Talk to windows guys about git.==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:'''  aseigo&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==pre-commit hooks==&lt;br /&gt;
{{Progress bar|100}}&lt;br /&gt;
'''Owner:''' ''(unknown)''&lt;br /&gt;
&lt;br /&gt;
:acltest, docbook, EOL/UTF-8&lt;br /&gt;
&lt;br /&gt;
:A web hook isn't good enough for these because they have to run and return whether to allow the push, for every single push to every KDE repo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
&lt;br /&gt;
:gitorious guys said they *might* be willing to allow a few scripts on their server for KDE as a special exception, iirc. --chani&lt;br /&gt;
&lt;br /&gt;
:: Yes, at least for basic things, heavier things like doc building would probably have to be mirrored (goes for pre/post) --johan-s&lt;br /&gt;
&lt;br /&gt;
:It turns out that acl and docbook might not be needed so long as web and docs/ stuff stays in svn.&lt;br /&gt;
&lt;br /&gt;
:: Here's where to find the current scripts - http://websvn.kde.org/trunk/kde-common/svn/hooks/ --[[User:Argonel|Argonel]] 23:06, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::So: this is actually done because it needs no longer to be done? (boud)&lt;br /&gt;
&lt;br /&gt;
::Apparently, so; moving to complete. (aseigo)&lt;br /&gt;
&lt;br /&gt;
= other notes =&lt;br /&gt;
&lt;br /&gt;
==kde-common/accounts==&lt;br /&gt;
&lt;br /&gt;
Someone said: KDE accounts file is no longer necessary---used for mapping svn ID -&amp;gt; email, but we have that now from Gitorious.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
==Random==&lt;br /&gt;
http://mail.kde.org/pipermail/dot-stories/2005-May/000509.html might be a good guide on what docs we need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
some of this stuff was from the list from GCDS that was in this email [http://markmail.org/message/u6eqfjece7fibfyo http://markmail.org/message/u6eqfjece7fibfyo]&lt;br /&gt;
&lt;br /&gt;
==IRC Meetings==&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1111|Minutes]] of meeting 11 November 2009&lt;br /&gt;
* [[Projects/MovetoGit/Meeting1118|Next meeting]] 18:00, 25 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= jobs =&lt;br /&gt;
''TODO merge this with the todolists above''&lt;br /&gt;
&lt;br /&gt;
michael jansen: talking to kdesvn-build/mpyne&lt;br /&gt;
:--Done? -&amp;gt; http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php -- Panagiotis Papadopoulos 1 November 2009&lt;br /&gt;
::Yes, but the __kdesvn-build-remote used in the impl isn't pleasant for users already on git so it still needs more work for them. [[User:Mpyne|Mpyne]] 20:32, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
jonas: domain name &lt;br /&gt;
&lt;br /&gt;
chani: techbase docs for scripty &lt;br /&gt;
&lt;br /&gt;
sebas/lydia/leo: communication with teams! tell people! keeping track that &lt;br /&gt;
everything is being done.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git</id>
		<title>Projects/MoveToGit/UsingSvn2Git</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git"/>
				<updated>2010-10-23T12:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Getting the tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents how to go about getting a KDE module ready for the Great Git Migration of 2010.&lt;br /&gt;
&lt;br /&gt;
=== Servers to use for all developers ===&lt;br /&gt;
&lt;br /&gt;
KDE Sysadmin provides 3 servers which are fully setup for writing rules. You can find more information about that on: http://community.kde.org/Sysadmin/DeveloperAccessForRuleWriting.&lt;br /&gt;
&lt;br /&gt;
All registered KDE developers have access to these machines. The rest of this document assumes a setup on your local computer, you are free to set it up on your local computer, but there is no need to. You can use the servers provided by KDE Sysadmin.&lt;br /&gt;
&lt;br /&gt;
=== Getting the tools ===&lt;br /&gt;
&lt;br /&gt;
The necessary tools are hosted at [http://www.gitorious.org/svn2git http://www.gitorious.org/svn2git]. To get started do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/svn2git/svn2git.git&lt;br /&gt;
git clone git://git.kde.org/kde-ruleset.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install the libsvn-dev package.&lt;br /&gt;
&lt;br /&gt;
This will get you the source code to build svn2git and the KDE ruleset files as they currently exist. Build the svn2git tool before moving on to the next step.&lt;br /&gt;
&lt;br /&gt;
==== Building svn2git ====&lt;br /&gt;
Make sure you have Qt4 installed, then simply issue&lt;br /&gt;
&amp;lt;nowiki&amp;gt;qmake &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt; to build the executable called &amp;quot;svn-all-fast-export&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== How rulesets work ===&lt;br /&gt;
The format for the svn2git rules is pretty simple. First and foremost you&lt;br /&gt;
have to declare some repositories:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create repository kdelibs&lt;br /&gt;
end repository&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells svn2git that it should create a git repository called &amp;quot;kdelibs&amp;quot; that we can later on use to put commits into it.&lt;br /&gt;
&lt;br /&gt;
The rest of the file are rules matching specific paths in Subversion, each rule&lt;br /&gt;
specifies what to do with the commits that appeared at the given path. The&lt;br /&gt;
possible actions are ignoring them or adding them to a particular branch in a particular repository. '''Note:''' Ignoring is done by simply leaving out the information about the repository and the branch.&lt;br /&gt;
&lt;br /&gt;
As examples are more explanatory, the following rule would put all commits from 123453 to 456789 from the path /trunk/KDE/kdelibs into the master branch of&lt;br /&gt;
the kdelibs repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /trunk/KDE/kdelibs/&lt;br /&gt;
  min revision 123453&lt;br /&gt;
  max revision 456789&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch master&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The min and max revision are useful in cases where the same path in SVN contains&lt;br /&gt;
code for different branches. An example would be KDevelop3, where KDevelop 3.3 was shipped with KDE 3.5 until 3.5.7, 3.5.8 contained KDevelop 3.4 and 3.5.9 contained KDevelop 3.5 and all of those kdevelop versions are now under /branches/KDE/3.5/kdevelop.&lt;br /&gt;
&lt;br /&gt;
The two revision parameters are however not mandatory, if they're left out, then all commits that went to the given matching path in SVN are taken over into the specified branch.&lt;br /&gt;
&lt;br /&gt;
To generate tags with git you use a special format for the branch parameter: refs/tags/&amp;lt;tagname&amp;gt;. So to put all commits from /tags/KDE/4.4.0/kdelibs into the v4.4.0 tag in the kdelibs git repository the rule would be like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /tags/KDE/4.4.0/kdelibs/&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch refs/tags/v4.4.0&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more examples see the svn2git/samples/ directory and the rules in the kde-ruleset repository.&lt;br /&gt;
&lt;br /&gt;
The recurse action is a hack to tell svn2git to recurse into a directory it &lt;br /&gt;
has just copied or that existed because it is of interest. Example: if we are importing kdelibs, it exists in {{path|trunk/KDE/kdelibs}}. At branching, someone did: &amp;lt;code bash&amp;gt;svn cp $SVNROOT/trunk/KDE $SVNROOT/branches/KDE/4.4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SVN recorded in that commit that branches/KDE/4.4 was the only path changed. &lt;br /&gt;
That means the rule &amp;lt;pre&amp;gt;branches/KDE/[^/]+/kdelibs/&amp;lt;/pre&amp;gt; will not match.&lt;br /&gt;
&lt;br /&gt;
We need to tell the tool that something interesting happened inside and it &lt;br /&gt;
should recurse. Then it will apply again all rules to the files that exist at &lt;br /&gt;
that point, at which point the rules will match.&lt;br /&gt;
&lt;br /&gt;
==== Important Details ====&lt;br /&gt;
&lt;br /&gt;
* All matching rules need to end with a '/', else the tool will crash at some point. This is a known bug. The only exception are the rules using the recurse-action.&lt;br /&gt;
&lt;br /&gt;
* Matching rules can use Regular Expressions (according to the QRegExp syntax) in the match line and can use backreferences in the repository and branch parameters using \n (n=1,2,3,...) to reduce the amount of rules.&lt;br /&gt;
&lt;br /&gt;
* The rules form an ordered list that the tool goes through while matching the changed paths for each commit. So if two rules match the same path and neither of the two has more matching criteria, then the rule that is written further up in the file wins. This is useful to exclude certain commits from the extraction process, if you look at the existing kde ruleset  you'll notice that at the top some revisions are ignored.&lt;br /&gt;
&lt;br /&gt;
=== Setting up your system ===&lt;br /&gt;
&lt;br /&gt;
You will need ~65GB of disk space to get started, as the process requires a copy of the KDE svn database. There is a script that will download this for you (and which can be used to update it periodically using rsync) in kde-ruleset/bin/startSync.&lt;br /&gt;
&lt;br /&gt;
more stuff goes here ...&lt;br /&gt;
&lt;br /&gt;
=== Step-by-Step on writing rules for a module ===&lt;br /&gt;
&lt;br /&gt;
==== Analyzing Subversion history to write rules ====&lt;br /&gt;
First of all you should check wether there are already rules for this module in the kde-ruleset repository. If there are rules already please go down to &amp;quot;Running svn2git&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If there are no rules yet, lets start with the master (aka trunk) branch. The easiest way to find out history with svn is executing:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn log -v --stop-on-copy file:///path/to/kde_svn/trunk/KDE/module&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that '/path/to/kde_svn/' is the path to the 65GB you downloaded, and the 'trunk/KDE/module' is the module you want to write rules for, but those two put together is *not* a path that physically exists on your disk. svn log is smart enough to do what you want.&lt;br /&gt;
&lt;br /&gt;
This will give you a history of the given module in trunk, it'll stop on the first commit that copied the code from somewhere else. The verbose output will allow you to see where this copy came from.&lt;br /&gt;
&lt;br /&gt;
Now we have a starting point to write a rule, we want all commits from this path in our module repository in the master branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /trunk/KDE/module/&lt;br /&gt;
  repository module&lt;br /&gt;
  branch master&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the log stops at a commit that copied the module from somewhere, we need to&lt;br /&gt;
follow this to also get the history imported from the &amp;quot;old&amp;quot; place the module resided. The same svn command can be used with slightly different path argument:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn log -v --stop-on-copy file:///path/to/kde_svn/some/other/path@revision&amp;lt;/pre&amp;gt;&lt;br /&gt;
The @revision is important as the original path usually doesn't exist anymore. With this we can write the next rule to the rules file and repeat until we've finally reached the point where the code was initially imported into svn (or probably cvs in the old days)&lt;br /&gt;
&lt;br /&gt;
Now we can take care of the branches, this is a bit more involved as there may be multiple branches scattered over the /branches directory in svn. You can use the same commands as before to find out the history of a branch if you know the path. This time however you can stop following the source of copy-operations once you've found a source that you've already matched in a rule. That way your branch will be connected to the branch it originated from (which is often trunk aka master) in git.&lt;br /&gt;
&lt;br /&gt;
A useful help with finding branches is svn ls in combination with the path@revision syntax, that way you can view the content of a particular svn directory as it was in an older revision. With this you can even find branches that are not visible (have been deleted) in the current revision.&lt;br /&gt;
&lt;br /&gt;
The rule for putting commits into a git branch in the final repository is only slightly different (the example is for a core module):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/KDE/4.4/module&lt;br /&gt;
  repository module&lt;br /&gt;
  branch 4.4&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And last are the tags, this works the same as branches and trunk, except for using branch refs/tags/v&amp;lt;tag-version&amp;gt; for the branch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Running svn2git ====&lt;br /&gt;
This is the easiest, but most time-consuming part. As example lets say that in our current working directory we have the kde rules repository in kde-ruleset subdir, the svn2git tool in the svn2git subdir and the KDE repository in the kde_svn subdir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn2git/svn-all-fast-export --identity-map kde-ruleset/account-map --rules kde-ruleset/module kde_svn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a few hours usually, but it'll spit out the progress. The tool also writes a logfile to module.log, so in case something goes wrong you can find more details in there.&lt;br /&gt;
&lt;br /&gt;
Once its done you should have a new &amp;quot;module&amp;quot; git repository in your current working directory. &lt;br /&gt;
&lt;br /&gt;
==== Checking for proper history in the new git repository ====&lt;br /&gt;
A very easy way to check wether the history was imported properly is to use the gitk tool from git. It shows you a graphical representation of the history in the git repository which makes it easy to identify where something is wrong.&lt;br /&gt;
&lt;br /&gt;
The tool should be run with the --all switch so it shows all branches.&lt;br /&gt;
&lt;br /&gt;
You can now scroll through the history to check wether things have been imported correctly.&lt;br /&gt;
&lt;br /&gt;
First and foremost there should be the master branch starting at the top with the most recent commit to trunk/ and ending in the oldest commit that imported the code into KDE's svn or cvs repository. &lt;br /&gt;
&lt;br /&gt;
From the master branch there should be several branches going away for each branch you imported. And eventually also branches that start from another non-master branch.&lt;br /&gt;
&lt;br /&gt;
Things that you should look out for are branches that start &amp;quot;nowhere&amp;quot;, that is the first commit in the branch has no parent in another branch or master. This means that svn2git didn't see a commit that created this branch from another using a svn cp command. That can mean that you may have forgotton to add a match rule for some path or that the same path was used for different branches in different revisions. The same applies to tags which have a commit without any parent.&lt;br /&gt;
&lt;br /&gt;
This can usually be fixed by using svn log and svn ls to follow the history of the branch. Eventually you might need to apply the min/max revision paramters.&lt;br /&gt;
&lt;br /&gt;
You'll notice that some tags are looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* * &amp;lt;v1.2.3&amp;gt;&lt;br /&gt;
| |&lt;br /&gt;
* *&lt;br /&gt;
| /&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats normal for our tags even if a bit ugly. The reason is that often compile-fixes are done in trunk/ after the tag has been created and then the commit has been merged over to the tag.&lt;br /&gt;
&lt;br /&gt;
Another thing however are tags that are named vx.y.z_124321. These are tags that have been deleted and re-created later. You can usually see that in the svn log history, these tags can either be manually deleted after the repository creation using git tag or you can add rules that ignore certain revisions of the tag-path before the one putting the commits into the git repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /tags/KDE/3.3.2/kdelibs&lt;br /&gt;
  min revision 424234&lt;br /&gt;
  max revision 424236&lt;br /&gt;
end match&lt;br /&gt;
match /tags/KDE/3.3.2/kdelibs&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch refs/tags/3.3.2&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to delete them manually please make sure to document this with a textfile or inside the rule file so if someone else does the conversion later again he'll know what manual steps you did.&lt;br /&gt;
&lt;br /&gt;
Before publishing the newly created git repository make sure to repack it. This can greatly reduce it's size (i.e. Phonon's git repository could be shrunken from 18 MB to 5.2 MB)&lt;br /&gt;
&lt;br /&gt;
==== How to update the account-map file ====&lt;br /&gt;
&lt;br /&gt;
Currently, account-map file is being generated with 'generateAccountMap'[http://gitorious.org/svn2git/kde-ruleset/blobs/master/bin/generateAccountMap] script which parses kde-common/accounts[http://websvn.kde.org/trunk/kde-common/accounts?view=log] and kde-common/disabled-accounts[http://websvn.kde.org/trunk/kde-common/disabled-accounts?view=log] from SVN.&lt;br /&gt;
&lt;br /&gt;
Once you have your git repository you should check if there are accounts not listed in account-map file (you can use checkMissingAccounts[http://gitorious.org/svn2git/kde-ruleset/blobs/master/bin/checkMissingAccounts]), if that is the case, check if the missing accounts are listed in kde-common/accounts or kde-common/disabled-accounts, if it's not there file a sysadmin bug report[https://bugs.kde.org/enter_sysadmin_request.cgi] to get your missing account included in disabled-accounts. Once you get your missing accounts included in disabled accounts, you could generate the account-map file running 'bin/generateAccountMap', then run svn-all-fast-export again. Do not edit account-map file directly!&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== Recurse action doesn't work with cvs2svn tag commits ====&lt;br /&gt;
&lt;br /&gt;
You may have to deal with a commit done by cvs2svn to create a tag, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r386536 | (no author) | 2005-02-05 22:16:00 +0100 (Sat, 05 Feb 2005) | 2 lines&lt;br /&gt;
Changed paths:&lt;br /&gt;
   A /branches/beta_0_7_branch (from /trunk:386535)&lt;br /&gt;
   D /branches/beta_0_7_branch/art-devel&lt;br /&gt;
   D /branches/beta_0_7_branch/arts&lt;br /&gt;
   D /branches/beta_0_7_branch/bugs&lt;br /&gt;
   D /branches/beta_0_7_branch/devel-home&lt;br /&gt;
   D /branches/beta_0_7_branch/developer.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/enterprise.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/events.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/foundation&lt;br /&gt;
   D /branches/beta_0_7_branch/kckde&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-common&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-i18n&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-qt-addon&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-women.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeaccessibility&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeaddons&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeadmin&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeartwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdebase&lt;br /&gt;
   D /branches/beta_0_7_branch/kdebindings&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeedu&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-1&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-2&lt;br /&gt;
   M /branches/beta_0_7_branch/kdeextragear-3&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/Makefile.am.in&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/Makefile.cvs&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/README&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/configure.in.bot&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/configure.in.in&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/digikam&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/digikamimageplugins&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/doc&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/filelight&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kcfgcreator&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kconfigeditor&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kdebluetooth&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kdetv&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/keurocalc&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kiosktool&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/klicker&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kplayer&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/pwmanager&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-libs-1&lt;br /&gt;
   D /branches/beta_0_7_branch/kdegames&lt;br /&gt;
   D /branches/beta_0_7_branch/kdegraphics&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeinstaller&lt;br /&gt;
   D /branches/beta_0_7_branch/kdejava&lt;br /&gt;
   D /branches/beta_0_7_branch/kdekiosk&lt;br /&gt;
   D /branches/beta_0_7_branch/kdelibs&lt;br /&gt;
   D /branches/beta_0_7_branch/kdemultimedia&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenetwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenonbeta&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenox&lt;br /&gt;
   D /branches/beta_0_7_branch/kdepim&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-artwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-base&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-edu&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-games&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-ioslaves&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-multimedia&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-network&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-pim&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-utils&lt;br /&gt;
   D /branches/beta_0_7_branch/kdereview&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesdk&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesecurity&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesupport&lt;br /&gt;
   D /branches/beta_0_7_branch/kdetoys&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeutils&lt;br /&gt;
   D /branches/beta_0_7_branch/kdevelop&lt;br /&gt;
   D /branches/beta_0_7_branch/kdewebdev&lt;br /&gt;
   D /branches/beta_0_7_branch/kdoc&lt;br /&gt;
   D /branches/beta_0_7_branch/kfte&lt;br /&gt;
   D /branches/beta_0_7_branch/khtmltests&lt;br /&gt;
   D /branches/beta_0_7_branch/klyx&lt;br /&gt;
   D /branches/beta_0_7_branch/kmusic&lt;br /&gt;
   D /branches/beta_0_7_branch/koffice&lt;br /&gt;
   D /branches/beta_0_7_branch/kofficetests&lt;br /&gt;
   D /branches/beta_0_7_branch/konstruct&lt;br /&gt;
   D /branches/beta_0_7_branch/qt-copy&lt;br /&gt;
   D /branches/beta_0_7_branch/quanta&lt;br /&gt;
   D /branches/beta_0_7_branch/sysconfig&lt;br /&gt;
   D /branches/beta_0_7_branch/valgrind&lt;br /&gt;
   D /branches/beta_0_7_branch/www&lt;br /&gt;
&lt;br /&gt;
This commit was manufactured by cvs2svn to create branch&lt;br /&gt;
'beta_0_7_branch'.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/krecipes/&lt;br /&gt;
  repository krecipes&lt;br /&gt;
  branch 0.7&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
svn-all-fast-export will fail, you'll get an error sayining that '/foo/bar/path' was not found where '/foo/bar/path' is one of the deleted paths in the cvs2svn commit. This is because some paths were deleted in the same commit where you want to do an 'action recurse'. Therefore, to avoid matching the deleted paths you should do an action recurse on each intermediate directory from '/branches/beta_0_7_branch/' to '/branches/beta_0_7_branch/kdeextragear-3/krecipes/' and you should use a final '$' to make sure that the deleted paths will not be considered, thusly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/krecipes/&lt;br /&gt;
  repository krecipes&lt;br /&gt;
  branch 0.7&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/$&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/$&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Getting Help ===&lt;br /&gt;
If you run into strange things or can't find a rule for something you can reach the KDE Git migration team on IRC: irc.freenode.org, #kde-git or on the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest mailinglist]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git</id>
		<title>Projects/MoveToGit/UsingSvn2Git</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git"/>
				<updated>2010-10-05T20:53:09Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Analyzing Subversion history to write rules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents how to go about getting a KDE module ready for the Great Git Migration of 2010.&lt;br /&gt;
&lt;br /&gt;
=== Getting the tools ===&lt;br /&gt;
&lt;br /&gt;
The necessary tools are hosted at [http://www.gitorious.org/svn2git http://www.gitorious.org/svn2git]. To get started do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/svn2git/svn2git.git&lt;br /&gt;
git clone git://gitorious.org/svn2git/kde-ruleset.git&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install the libsvn-dev package.&lt;br /&gt;
&lt;br /&gt;
This will get you the source code to build svn2git and the KDE ruleset files as they currently exist. Build the svn2git tool before moving on to the next step.&lt;br /&gt;
&lt;br /&gt;
==== Building svn2git ====&lt;br /&gt;
Make sure you have Qt4 installed, then simply issue&lt;br /&gt;
&amp;lt;nowiki&amp;gt;qmake &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt; to build the executable called &amp;quot;svn-all-fast-export&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== How rulesets work ===&lt;br /&gt;
The format for the svn2git rules is pretty simple. First and foremost you&lt;br /&gt;
have to declare some repositories:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create repository kdelibs&lt;br /&gt;
end repository&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells svn2git that it should create a git repository called &amp;quot;kdelibs&amp;quot; that we can later on use to put commits into it.&lt;br /&gt;
&lt;br /&gt;
The rest of the file are rules matching specific paths in Subversion, each rule&lt;br /&gt;
specifies what to do with the commits that appeared at the given path. The&lt;br /&gt;
possible actions are ignoring them or adding them to a particular branch in a particular repository. '''Note:''' Ignoring is done by simply leaving out the information about the repository and the branch.&lt;br /&gt;
&lt;br /&gt;
As examples are more explanatory, the following rule would put all commits from 123453 to 456789 from the path /trunk/KDE/kdelibs into the master branch of&lt;br /&gt;
the kdelibs repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /trunk/KDE/kdelibs/&lt;br /&gt;
  min revision 123453&lt;br /&gt;
  max revision 456789&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch master&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The min and max revision are useful in cases where the same path in SVN contains&lt;br /&gt;
code for different branches. An example would be KDevelop3, where KDevelop 3.3 was shipped with KDE 3.5 until 3.5.7, 3.5.8 contained KDevelop 3.4 and 3.5.9 contained KDevelop 3.5 and all of those kdevelop versions are now under /branches/KDE/3.5/kdevelop.&lt;br /&gt;
&lt;br /&gt;
The two revision parameters are however not mandatory, if they're left out, then all commits that went to the given matching path in SVN are taken over into the specified branch.&lt;br /&gt;
&lt;br /&gt;
To generate tags with git you use a special format for the branch parameter: refs/tags/&amp;lt;tagname&amp;gt;. So to put all commits from /tags/KDE/4.4.0/kdelibs into the v4.4.0 tag in the kdelibs git repository the rule would be like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /tags/KDE/4.4.0/kdelibs/&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch refs/tags/v4.4.0&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more examples see the svn2git/samples/ directory and the rules in the kde-ruleset repository.&lt;br /&gt;
&lt;br /&gt;
The recurse action is a hack to tell svn2git to recurse into a directory it &lt;br /&gt;
has just copied or that existed because it is of interest. Example: if we are importing kdelibs, it exists in {{path|trunk/KDE/kdelibs}}. At branching, someone did: &amp;lt;code bash&amp;gt;svn cp $SVNROOT/trunk/KDE $SVNROOT/branches/KDE/4.4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SVN recorded in that commit that branches/KDE/4.4 was the only path changed. &lt;br /&gt;
That means the rule &amp;lt;pre&amp;gt;branches/KDE/[^/]+/kdelibs/&amp;lt;/pre&amp;gt; will not match.&lt;br /&gt;
&lt;br /&gt;
We need to tell the tool that something interesting happened inside and it &lt;br /&gt;
should recurse. Then it will apply again all rules to the files that exist at &lt;br /&gt;
that point, at which point the rules will match.&lt;br /&gt;
&lt;br /&gt;
==== Important Details ====&lt;br /&gt;
&lt;br /&gt;
* All matching rules need to end with a '/', else the tool will crash at some point. This is a known bug. The only exception are the rules using the recurse-action.&lt;br /&gt;
&lt;br /&gt;
* Matching rules can use Regular Expressions (according to the QRegExp syntax) in the match line and can use backreferences in the repository and branch parameters using \n (n=1,2,3,...) to reduce the amount of rules.&lt;br /&gt;
&lt;br /&gt;
* The rules form an ordered list that the tool goes through while matching the changed paths for each commit. So if two rules match the same path and neither of the two has more matching criteria, then the rule that is written further up in the file wins. This is useful to exclude certain commits from the extraction process, if you look at the existing kde ruleset  you'll notice that at the top some revisions are ignored.&lt;br /&gt;
&lt;br /&gt;
=== Setting up your system ===&lt;br /&gt;
&lt;br /&gt;
You will need ~65GB of disk space to get started, as the process requires a copy of the KDE svn database. There is a script that will download this for you (and which can be used to update it periodically using rsync) in kde-ruleset/bin/startSync.&lt;br /&gt;
&lt;br /&gt;
more stuff goes here ...&lt;br /&gt;
&lt;br /&gt;
=== Step-by-Step on writing rules for a module ===&lt;br /&gt;
&lt;br /&gt;
==== Analyzing Subversion history to write rules ====&lt;br /&gt;
First of all you should check wether there are already rules for this module in the kde-ruleset repository. If there are rules already please go down to &amp;quot;Running svn2git&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If there are no rules yet, lets start with the master (aka trunk) branch. The easiest way to find out history with svn is executing:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn log -v --stop-on-copy file:///path/to/kde_svn/trunk/KDE/module&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that '/path/to/kde_svn/' is the path to the 65GB you downloaded, and the 'trunk/KDE/module' is the module you want to write rules for, but those two put together is *not* a path that physically exists on your disk. svn log is smart enough to do what you want.&lt;br /&gt;
&lt;br /&gt;
This will give you a history of the given module in trunk, it'll stop on the first commit that copied the code from somewhere else. The verbose output will allow you to see where this copy came from.&lt;br /&gt;
&lt;br /&gt;
Now we have a starting point to write a rule, we want all commits from this path in our module repository in the master branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /trunk/KDE/module/&lt;br /&gt;
  repository module&lt;br /&gt;
  branch master&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the log stops at a commit that copied the module from somewhere, we need to&lt;br /&gt;
follow this to also get the history imported from the &amp;quot;old&amp;quot; place the module resided. The same svn command can be used with slightly different path argument:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;svn log -v --stop-on-copy file:///path/to/kde_svn/some/other/path@revision&amp;lt;/pre&amp;gt;&lt;br /&gt;
The @revision is important as the original path usually doesn't exist anymore. With this we can write the next rule to the rules file and repeat until we've finally reached the point where the code was initially imported into svn (or probably cvs in the old days)&lt;br /&gt;
&lt;br /&gt;
Now we can take care of the branches, this is a bit more involved as there may be multiple branches scattered over the /branches directory in svn. You can use the same commands as before to find out the history of a branch if you know the path. This time however you can stop following the source of copy-operations once you've found a source that you've already matched in a rule. That way your branch will be connected to the branch it originated from (which is often trunk aka master) in git.&lt;br /&gt;
&lt;br /&gt;
A useful help with finding branches is svn ls in combination with the path@revision syntax, that way you can view the content of a particular svn directory as it was in an older revision. With this you can even find branches that are not visible (have been deleted) in the current revision.&lt;br /&gt;
&lt;br /&gt;
The rule for putting commits into a git branch in the final repository is only slightly different (the example is for a core module):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/KDE/4.4/module&lt;br /&gt;
  repository module&lt;br /&gt;
  branch 4.4&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And last are the tags, this works the same as branches and trunk, except for using branch refs/tags/v&amp;lt;tag-version&amp;gt; for the branch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Running svn2git ====&lt;br /&gt;
This is the easiest, but most time-consuming part. As example lets say that in our current working directory we have the kde rules repository in kde-ruleset subdir, the svn2git tool in the svn2git subdir and the KDE repository in the kde_svn subdir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn2git/svn-all-fast-export --identity-map kde-ruleset/account-map --rules kde-ruleset/module kde_svn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a few hours usually, but it'll spit out the progress. The tool also writes a logfile to module.log, so in case something goes wrong you can find more details in there.&lt;br /&gt;
&lt;br /&gt;
Once its done you should have a new &amp;quot;module&amp;quot; git repository in your current working directory. &lt;br /&gt;
&lt;br /&gt;
==== Checking for proper history in the new git repository ====&lt;br /&gt;
A very easy way to check wether the history was imported properly is to use the gitk tool from git. It shows you a graphical representation of the history in the git repository which makes it easy to identify where something is wrong.&lt;br /&gt;
&lt;br /&gt;
The tool should be run with the --all switch so it shows all branches.&lt;br /&gt;
&lt;br /&gt;
You can now scroll through the history to check wether things have been imported correctly.&lt;br /&gt;
&lt;br /&gt;
First and foremost there should be the master branch starting at the top with the most recent commit to trunk/ and ending in the oldest commit that imported the code into KDE's svn or cvs repository. &lt;br /&gt;
&lt;br /&gt;
From the master branch there should be several branches going away for each branch you imported. And eventually also branches that start from another non-master branch.&lt;br /&gt;
&lt;br /&gt;
Things that you should look out for are branches that start &amp;quot;nowhere&amp;quot;, that is the first commit in the branch has no parent in another branch or master. This means that svn2git didn't see a commit that created this branch from another using a svn cp command. That can mean that you may have forgotton to add a match rule for some path or that the same path was used for different branches in different revisions. The same applies to tags which have a commit without any parent.&lt;br /&gt;
&lt;br /&gt;
This can usually be fixed by using svn log and svn ls to follow the history of the branch. Eventually you might need to apply the min/max revision paramters.&lt;br /&gt;
&lt;br /&gt;
You'll notice that some tags are looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
* * &amp;lt;v1.2.3&amp;gt;&lt;br /&gt;
| |&lt;br /&gt;
* *&lt;br /&gt;
| /&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats normal for our tags even if a bit ugly. The reason is that often compile-fixes are done in trunk/ after the tag has been created and then the commit has been merged over to the tag.&lt;br /&gt;
&lt;br /&gt;
Another thing however are tags that are named vx.y.z_124321. These are tags that have been deleted and re-created later. You can usually see that in the svn log history, these tags can either be manually deleted after the repository creation using git tag or you can add rules that ignore certain revisions of the tag-path before the one putting the commits into the git repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /tags/KDE/3.3.2/kdelibs&lt;br /&gt;
  min revision 424234&lt;br /&gt;
  max revision 424236&lt;br /&gt;
end match&lt;br /&gt;
match /tags/KDE/3.3.2/kdelibs&lt;br /&gt;
  repository kdelibs&lt;br /&gt;
  branch refs/tags/3.3.2&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to delete them manually please make sure to document this with a textfile or inside the rule file so if someone else does the conversion later again he'll know what manual steps you did.&lt;br /&gt;
&lt;br /&gt;
Before publishing the newly created git repository make sure to repack it. This can greatly reduce it's size (i.e. Phonon's git repository could be shrunken from 18 MB to 5.2 MB)&lt;br /&gt;
&lt;br /&gt;
==== How to update the account-map file ====&lt;br /&gt;
&lt;br /&gt;
Currently, account-map file is being generated with 'generateAccountMap'[http://gitorious.org/svn2git/kde-ruleset/blobs/master/bin/generateAccountMap] script which parses kde-common/accounts[http://websvn.kde.org/trunk/kde-common/accounts?view=log] and kde-common/disabled-accounts[http://websvn.kde.org/trunk/kde-common/disabled-accounts?view=log] from SVN.&lt;br /&gt;
&lt;br /&gt;
Once you have your git repository you should check if there are accounts not listed in account-map file (you can use checkMissingAccounts[http://gitorious.org/svn2git/kde-ruleset/blobs/master/bin/checkMissingAccounts]), if that is the case, check if the missing accounts are listed in kde-common/accounts or kde-common/disabled-accounts, if it's not there file a sysadmin bug report[https://bugs.kde.org/enter_sysadmin_request.cgi] to get your missing account included in disabled-accounts. Once you get your missing accounts included in disabled accounts, you could generate the account-map file running 'bin/generateAccountMap', then run svn-all-fast-export again. Do not edit account-map file directly!&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== Recurse action doesn't work with cvs2svn tag commits ====&lt;br /&gt;
&lt;br /&gt;
You may have to deal with a commit done by cvs2svn to create a tag, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r386536 | (no author) | 2005-02-05 22:16:00 +0100 (Sat, 05 Feb 2005) | 2 lines&lt;br /&gt;
Changed paths:&lt;br /&gt;
   A /branches/beta_0_7_branch (from /trunk:386535)&lt;br /&gt;
   D /branches/beta_0_7_branch/art-devel&lt;br /&gt;
   D /branches/beta_0_7_branch/arts&lt;br /&gt;
   D /branches/beta_0_7_branch/bugs&lt;br /&gt;
   D /branches/beta_0_7_branch/devel-home&lt;br /&gt;
   D /branches/beta_0_7_branch/developer.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/enterprise.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/events.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/foundation&lt;br /&gt;
   D /branches/beta_0_7_branch/kckde&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-common&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-i18n&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-qt-addon&lt;br /&gt;
   D /branches/beta_0_7_branch/kde-women.kde.org&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeaccessibility&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeaddons&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeadmin&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeartwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdebase&lt;br /&gt;
   D /branches/beta_0_7_branch/kdebindings&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeedu&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-1&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-2&lt;br /&gt;
   M /branches/beta_0_7_branch/kdeextragear-3&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/Makefile.am.in&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/Makefile.cvs&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/README&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/configure.in.bot&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/configure.in.in&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/digikam&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/digikamimageplugins&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/doc&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/filelight&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kcfgcreator&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kconfigeditor&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kdebluetooth&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kdetv&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/keurocalc&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kiosktool&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/klicker&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/kplayer&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-3/pwmanager&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeextragear-libs-1&lt;br /&gt;
   D /branches/beta_0_7_branch/kdegames&lt;br /&gt;
   D /branches/beta_0_7_branch/kdegraphics&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeinstaller&lt;br /&gt;
   D /branches/beta_0_7_branch/kdejava&lt;br /&gt;
   D /branches/beta_0_7_branch/kdekiosk&lt;br /&gt;
   D /branches/beta_0_7_branch/kdelibs&lt;br /&gt;
   D /branches/beta_0_7_branch/kdemultimedia&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenetwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenonbeta&lt;br /&gt;
   D /branches/beta_0_7_branch/kdenox&lt;br /&gt;
   D /branches/beta_0_7_branch/kdepim&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-artwork&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-base&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-edu&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-games&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-ioslaves&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-multimedia&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-network&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-pim&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeplayground-utils&lt;br /&gt;
   D /branches/beta_0_7_branch/kdereview&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesdk&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesecurity&lt;br /&gt;
   D /branches/beta_0_7_branch/kdesupport&lt;br /&gt;
   D /branches/beta_0_7_branch/kdetoys&lt;br /&gt;
   D /branches/beta_0_7_branch/kdeutils&lt;br /&gt;
   D /branches/beta_0_7_branch/kdevelop&lt;br /&gt;
   D /branches/beta_0_7_branch/kdewebdev&lt;br /&gt;
   D /branches/beta_0_7_branch/kdoc&lt;br /&gt;
   D /branches/beta_0_7_branch/kfte&lt;br /&gt;
   D /branches/beta_0_7_branch/khtmltests&lt;br /&gt;
   D /branches/beta_0_7_branch/klyx&lt;br /&gt;
   D /branches/beta_0_7_branch/kmusic&lt;br /&gt;
   D /branches/beta_0_7_branch/koffice&lt;br /&gt;
   D /branches/beta_0_7_branch/kofficetests&lt;br /&gt;
   D /branches/beta_0_7_branch/konstruct&lt;br /&gt;
   D /branches/beta_0_7_branch/qt-copy&lt;br /&gt;
   D /branches/beta_0_7_branch/quanta&lt;br /&gt;
   D /branches/beta_0_7_branch/sysconfig&lt;br /&gt;
   D /branches/beta_0_7_branch/valgrind&lt;br /&gt;
   D /branches/beta_0_7_branch/www&lt;br /&gt;
&lt;br /&gt;
This commit was manufactured by cvs2svn to create branch&lt;br /&gt;
'beta_0_7_branch'.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/krecipes/&lt;br /&gt;
  repository krecipes&lt;br /&gt;
  branch 0.7&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
svn-all-fast-export will fail, you'll get an error sayining that '/foo/bar/path' was not found where '/foo/bar/path' is one of the deleted paths in the cvs2svn commit. This is because some paths were deleted in the same commit where you want to do an 'action recurse'. Therefore, to avoid matching the deleted paths you should do an action recurse on each intermediate directory from '/branches/beta_0_7_branch/' to '/branches/beta_0_7_branch/kdeextragear-3/krecipes/' and you should use a final '$' to make sure that the deleted paths will not be considered, thusly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/krecipes/&lt;br /&gt;
  repository krecipes&lt;br /&gt;
  branch 0.7&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/kdeextragear-3/$&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&lt;br /&gt;
match /branches/beta_0_7_branch/$&lt;br /&gt;
  min revision 386536&lt;br /&gt;
  max revision 386536&lt;br /&gt;
  action recurse&lt;br /&gt;
end match&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Getting Help ===&lt;br /&gt;
If you run into strange things or can't find a rule for something you can reach the KDE Git migration team on IRC: irc.freenode.org, #kde-git or on the [https://mail.kde.org/mailman/listinfo/kde-scm-interest kde-scm-interest mailinglist]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Get_a_Contributor_Account</id>
		<title>Contribute/Get a Contributor Account</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Get_a_Contributor_Account"/>
				<updated>2010-09-09T16:22:36Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Updating Existing Account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Contribute/Get a SVN Account}}&lt;br /&gt;
This tutorial is about how to apply for a SVN account for KDE.&lt;br /&gt;
&lt;br /&gt;
== Notations ==&lt;br /&gt;
&lt;br /&gt;
* The word ''SVN'' applies to all SVN servers.&lt;br /&gt;
* The phrase ''KDE SVN'' refers only to KDE's SVN server.&lt;br /&gt;
* The phrase ''anonymous SVN'' means KDE's anonymous SVN mirrors.&lt;br /&gt;
&lt;br /&gt;
== What is KDE SVN? ==&lt;br /&gt;
&lt;br /&gt;
To have write access to KDE SVN, you have to use the main SVN server of KDE. (Anonymous SVN uses mirrors of this server. SVN does not allow you to read from one server and write to another.)&lt;br /&gt;
&lt;br /&gt;
To be able to use the main KDE SVN server, you need an account there. An account is made up of a ''username'' (normally your family name), a password and an email address. The username is for getting in, the password for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder. (The username is sometimes known also as the ''login''.)&lt;br /&gt;
&lt;br /&gt;
A KDE SVN account allows you to write to nearly anywhere in the KDE SVN. However, there are exceptions:&lt;br /&gt;
* the KDE SVN internals&lt;br /&gt;
* the www module (exceptions can be made for this.)&lt;br /&gt;
&lt;br /&gt;
'''Note''': you can see the accounts in [http://websvn.kde.org/trunk/kde-common/accounts kde-common/accounts]. That is the list of all accounts. Yes, '''the account list is public''', for example on [http://websvn.kde.org WebSVN].&lt;br /&gt;
&lt;br /&gt;
== Who Can Apply For a KDE SVN Account? ==&lt;br /&gt;
&lt;br /&gt;
Normally, any developer who has done some work on KDE can apply for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.&lt;br /&gt;
&lt;br /&gt;
Please also [[Policies/SVN Commit Policy|read the KDE SVN commit policy]]. You must accept these rules when using your future KDE SVN account. Please also familiarize yourself with the [http://www.kde.org/code-of-conduct/ KDE Code of Conduct] which describes the social foundations within KDE.&lt;br /&gt;
&lt;br /&gt;
Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE SVN account but still, do continue to send patches.&lt;br /&gt;
&lt;br /&gt;
The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.&lt;br /&gt;
&lt;br /&gt;
Of course, to be clear: ''the KDE's sysadmins have the last word about whether or not to create a KDE SVN account for somebody''.&lt;br /&gt;
&lt;br /&gt;
== SSH ==&lt;br /&gt;
&lt;br /&gt;
You need a SSH public key in order to access your KDE SVN account. If you already have one, you can skip the next subsection and go to [[#Setting up the SVN+SSH protocol|Setting up the SVN+SSH protocol]].&lt;br /&gt;
&lt;br /&gt;
=== Generating the SSH keys ===&lt;br /&gt;
&lt;br /&gt;
To be able to use your KDE SVN account with SSH, you need a SSH public key. Please notice that it is '''not''' a GPG (OpenPGP) key, which is completely unrelated!&lt;br /&gt;
&lt;br /&gt;
The password in the sense of this documentation is the '''public key''' that you are creating.&lt;br /&gt;
&lt;br /&gt;
For more information on how to create a pair o SSH keys, please refer to a [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen SSH documentation] or book.&lt;br /&gt;
&lt;br /&gt;
In short, the command to create a pair of keys is '''ssh-keygen''' and it requires the type of key you will create, either DSA or RSA - both are fine.&lt;br /&gt;
&lt;br /&gt;
To create a new pair of keys, use &amp;lt;code bash&amp;gt;ssh-keygen -t dsa&amp;lt;/code&amp;gt; or &amp;lt;code bash&amp;gt;ssh-keygen -t rsa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a type called RSA1 which was used in version 1 of the SSH protocol. See the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen ssh documentation] for more details.&lt;br /&gt;
&lt;br /&gt;
You can then accept the default filename for your key (either {{path|$HOME/.ssh/id_dsa}} or {{path|$HOME/.ssh/id_rsa}}, depending on the type of key you have chosen). After that, a passphrase is asked. It is recommended that you do not leave it blank.&lt;br /&gt;
&lt;br /&gt;
Now that you are finished generating your key pair, you will have two files: a private key and a public key. If you have accepted the default filename, they will be respectively {{path|$HOME/.ssh/id_dsa}} and {{path|$HOME/.ssh/id_dsa.pub}} or {{path|$HOME/.ssh/id_rsa}} and {{path|$HOME/.ssh/id_rsa.pub}}, depending on the type of key you have specified.&lt;br /&gt;
&lt;br /&gt;
The private key '''must''' remain secret, do not publish it to anyone under any circumstance.&lt;br /&gt;
&lt;br /&gt;
The public key can be published and shall be sent when you are applying for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
You should also set up &amp;lt;tt&amp;gt;ssh-agent&amp;lt;/tt&amp;gt; so you do not have to type the password every time you connect via SSH. There are several tutorials available explaining how to do this, for example [http://mah.everybody.org/docs/ssh this one]. [http://www.gentoo.org/proj/en/keychain Keychain] is a program that makes this task easier.&lt;br /&gt;
&lt;br /&gt;
'''Note''': if you already have an ssh key, you can just use the existing key instead of creating a new one.&lt;br /&gt;
&lt;br /&gt;
{{tip|&lt;br /&gt;
If you want to use SVN with SSH with another user than the one who created the keys, you need to copy &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa&amp;lt;/tt&amp;gt; to the other user's &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
You should probably also backup those files.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Setting up the SVN+SSH protocol ===&lt;br /&gt;
&lt;br /&gt;
Once you created your key, you'll have to tell SSH that this one should be used for all connections to KDE sites. Add the following lines to the &amp;lt;tt&amp;gt;~/.ssh/config&amp;lt;/tt&amp;gt; file. Replace USERNAME with yours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host *.kde.org&lt;br /&gt;
        User USERNAME&lt;br /&gt;
        IdentityFile ~/.ssh/id_dsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The linked IdentityFile must belong to the public key you send in when applying for the SVN account. But it is ''not'' the public key (&amp;lt;tt&amp;gt;*.pub&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Apply for an account ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to apply for for a KDE SVN account. Go to [https://identity.kde.org/ https://identity.kde.org/svnaccount/] and create an account if you don't have one already. If you already have an account, you can use that. After you entered the site you will find a form which you can fill in to apply for an account.&lt;br /&gt;
&lt;br /&gt;
When you register on identity.kde.org, you will need to enter your name and an e-mail address, which has to be your own (a normal address or a KDE Mail address). Of course, do not forget that '''this email address becomes public''' (at least by [http://websvn.kde.org WebSVN]) so you will unfortunately get spam.&lt;br /&gt;
&lt;br /&gt;
Also note that this email address should be the same one that you use on [http://bugs.kde.org bugs.kde.org]. If you don't have an account in [http://bugs.kde.org bugs.kde.org], please create one so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address of your Subversion and [http://bugs.kde.org bugs.kde.org] accounts match.&lt;br /&gt;
&lt;br /&gt;
After that, you must choose a username for your KDE SVN account between the suggestions presented to you. Please notice it is not possible to propose something else such as a nickname, as the username must be as close as possible to someone's real name.&lt;br /&gt;
&lt;br /&gt;
If you ask for a KDE email address one day, this will be the base for your address. For example: &amp;lt;tt&amp;gt;username@kde.org&amp;lt;/tt&amp;gt;. (Note, however, that KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, [http://www.kdemail.net KDE Mail] was created for if you need a permanent address.)&lt;br /&gt;
&lt;br /&gt;
When applying for developer access you have to provide your public key. This key will be added to your profile. You can always add more keys, delete keys you don't use anymore from your profile page on identity.kde.org.&lt;br /&gt;
&lt;br /&gt;
The form also holds a field ''Why do you want an account?'', where you can explain what you want to do with your future KDE SVN account, like for example developing a certain application, making documentations or being the team leader of a translation.&lt;br /&gt;
&lt;br /&gt;
Also note that the form will ask you who has encouraged you to apply. He or she will also get an email to verify your request.&lt;br /&gt;
&lt;br /&gt;
== Updating Existing Account ==&lt;br /&gt;
&lt;br /&gt;
If you already have a KDE SVN account but want to update the ssh key, you should go to [https://identity.kde.org/ identity.kde.org] and change the keys in your profile.&lt;br /&gt;
&lt;br /&gt;
== And Now? ==&lt;br /&gt;
&lt;br /&gt;
After having sent the form and clicking the link in the email, you have to wait for the answer (typically within two or three days).&lt;br /&gt;
&lt;br /&gt;
Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the [[Contribute/First Steps with your KDE SVN Account|next tutorial]] for your first steps with your new account.&lt;br /&gt;
&lt;br /&gt;
Please add your geographical location (what country are you in?) and other details at the [http://commit-digest.org/data/ Commit Digest data page] so that the Commit Digest can accurately reflect who is working where.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Get_a_Contributor_Account</id>
		<title>Contribute/Get a Contributor Account</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Get_a_Contributor_Account"/>
				<updated>2010-09-09T16:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Change in the way you need to apply for an account.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Contribute/Get a SVN Account}}&lt;br /&gt;
This tutorial is about how to apply for a SVN account for KDE.&lt;br /&gt;
&lt;br /&gt;
== Notations ==&lt;br /&gt;
&lt;br /&gt;
* The word ''SVN'' applies to all SVN servers.&lt;br /&gt;
* The phrase ''KDE SVN'' refers only to KDE's SVN server.&lt;br /&gt;
* The phrase ''anonymous SVN'' means KDE's anonymous SVN mirrors.&lt;br /&gt;
&lt;br /&gt;
== What is KDE SVN? ==&lt;br /&gt;
&lt;br /&gt;
To have write access to KDE SVN, you have to use the main SVN server of KDE. (Anonymous SVN uses mirrors of this server. SVN does not allow you to read from one server and write to another.)&lt;br /&gt;
&lt;br /&gt;
To be able to use the main KDE SVN server, you need an account there. An account is made up of a ''username'' (normally your family name), a password and an email address. The username is for getting in, the password for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder. (The username is sometimes known also as the ''login''.)&lt;br /&gt;
&lt;br /&gt;
A KDE SVN account allows you to write to nearly anywhere in the KDE SVN. However, there are exceptions:&lt;br /&gt;
* the KDE SVN internals&lt;br /&gt;
* the www module (exceptions can be made for this.)&lt;br /&gt;
&lt;br /&gt;
'''Note''': you can see the accounts in [http://websvn.kde.org/trunk/kde-common/accounts kde-common/accounts]. That is the list of all accounts. Yes, '''the account list is public''', for example on [http://websvn.kde.org WebSVN].&lt;br /&gt;
&lt;br /&gt;
== Who Can Apply For a KDE SVN Account? ==&lt;br /&gt;
&lt;br /&gt;
Normally, any developer who has done some work on KDE can apply for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.&lt;br /&gt;
&lt;br /&gt;
Please also [[Policies/SVN Commit Policy|read the KDE SVN commit policy]]. You must accept these rules when using your future KDE SVN account. Please also familiarize yourself with the [http://www.kde.org/code-of-conduct/ KDE Code of Conduct] which describes the social foundations within KDE.&lt;br /&gt;
&lt;br /&gt;
Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE SVN account but still, do continue to send patches.&lt;br /&gt;
&lt;br /&gt;
The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.&lt;br /&gt;
&lt;br /&gt;
Of course, to be clear: ''the KDE's sysadmins have the last word about whether or not to create a KDE SVN account for somebody''.&lt;br /&gt;
&lt;br /&gt;
== SSH ==&lt;br /&gt;
&lt;br /&gt;
You need a SSH public key in order to access your KDE SVN account. If you already have one, you can skip the next subsection and go to [[#Setting up the SVN+SSH protocol|Setting up the SVN+SSH protocol]].&lt;br /&gt;
&lt;br /&gt;
=== Generating the SSH keys ===&lt;br /&gt;
&lt;br /&gt;
To be able to use your KDE SVN account with SSH, you need a SSH public key. Please notice that it is '''not''' a GPG (OpenPGP) key, which is completely unrelated!&lt;br /&gt;
&lt;br /&gt;
The password in the sense of this documentation is the '''public key''' that you are creating.&lt;br /&gt;
&lt;br /&gt;
For more information on how to create a pair o SSH keys, please refer to a [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen SSH documentation] or book.&lt;br /&gt;
&lt;br /&gt;
In short, the command to create a pair of keys is '''ssh-keygen''' and it requires the type of key you will create, either DSA or RSA - both are fine.&lt;br /&gt;
&lt;br /&gt;
To create a new pair of keys, use &amp;lt;code bash&amp;gt;ssh-keygen -t dsa&amp;lt;/code&amp;gt; or &amp;lt;code bash&amp;gt;ssh-keygen -t rsa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a type called RSA1 which was used in version 1 of the SSH protocol. See the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen ssh documentation] for more details.&lt;br /&gt;
&lt;br /&gt;
You can then accept the default filename for your key (either {{path|$HOME/.ssh/id_dsa}} or {{path|$HOME/.ssh/id_rsa}}, depending on the type of key you have chosen). After that, a passphrase is asked. It is recommended that you do not leave it blank.&lt;br /&gt;
&lt;br /&gt;
Now that you are finished generating your key pair, you will have two files: a private key and a public key. If you have accepted the default filename, they will be respectively {{path|$HOME/.ssh/id_dsa}} and {{path|$HOME/.ssh/id_dsa.pub}} or {{path|$HOME/.ssh/id_rsa}} and {{path|$HOME/.ssh/id_rsa.pub}}, depending on the type of key you have specified.&lt;br /&gt;
&lt;br /&gt;
The private key '''must''' remain secret, do not publish it to anyone under any circumstance.&lt;br /&gt;
&lt;br /&gt;
The public key can be published and shall be sent when you are applying for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
You should also set up &amp;lt;tt&amp;gt;ssh-agent&amp;lt;/tt&amp;gt; so you do not have to type the password every time you connect via SSH. There are several tutorials available explaining how to do this, for example [http://mah.everybody.org/docs/ssh this one]. [http://www.gentoo.org/proj/en/keychain Keychain] is a program that makes this task easier.&lt;br /&gt;
&lt;br /&gt;
'''Note''': if you already have an ssh key, you can just use the existing key instead of creating a new one.&lt;br /&gt;
&lt;br /&gt;
{{tip|&lt;br /&gt;
If you want to use SVN with SSH with another user than the one who created the keys, you need to copy &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa&amp;lt;/tt&amp;gt; to the other user's &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
You should probably also backup those files.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Setting up the SVN+SSH protocol ===&lt;br /&gt;
&lt;br /&gt;
Once you created your key, you'll have to tell SSH that this one should be used for all connections to KDE sites. Add the following lines to the &amp;lt;tt&amp;gt;~/.ssh/config&amp;lt;/tt&amp;gt; file. Replace USERNAME with yours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host *.kde.org&lt;br /&gt;
        User USERNAME&lt;br /&gt;
        IdentityFile ~/.ssh/id_dsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The linked IdentityFile must belong to the public key you send in when applying for the SVN account. But it is ''not'' the public key (&amp;lt;tt&amp;gt;*.pub&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Apply for an account ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to apply for for a KDE SVN account. Go to [https://identity.kde.org/ https://identity.kde.org/svnaccount/] and create an account if you don't have one already. If you already have an account, you can use that. After you entered the site you will find a form which you can fill in to apply for an account.&lt;br /&gt;
&lt;br /&gt;
When you register on identity.kde.org, you will need to enter your name and an e-mail address, which has to be your own (a normal address or a KDE Mail address). Of course, do not forget that '''this email address becomes public''' (at least by [http://websvn.kde.org WebSVN]) so you will unfortunately get spam.&lt;br /&gt;
&lt;br /&gt;
Also note that this email address should be the same one that you use on [http://bugs.kde.org bugs.kde.org]. If you don't have an account in [http://bugs.kde.org bugs.kde.org], please create one so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address of your Subversion and [http://bugs.kde.org bugs.kde.org] accounts match.&lt;br /&gt;
&lt;br /&gt;
After that, you must choose a username for your KDE SVN account between the suggestions presented to you. Please notice it is not possible to propose something else such as a nickname, as the username must be as close as possible to someone's real name.&lt;br /&gt;
&lt;br /&gt;
If you ask for a KDE email address one day, this will be the base for your address. For example: &amp;lt;tt&amp;gt;username@kde.org&amp;lt;/tt&amp;gt;. (Note, however, that KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, [http://www.kdemail.net KDE Mail] was created for if you need a permanent address.)&lt;br /&gt;
&lt;br /&gt;
When applying for developer access you have to provide your public key. This key will be added to your profile. You can always add more keys, delete keys you don't use anymore from your profile page on identity.kde.org.&lt;br /&gt;
&lt;br /&gt;
The form also holds a field ''Why do you want an account?'', where you can explain what you want to do with your future KDE SVN account, like for example developing a certain application, making documentations or being the team leader of a translation.&lt;br /&gt;
&lt;br /&gt;
Also note that the form will ask you who has encouraged you to apply. He or she will also get an email to verify your request.&lt;br /&gt;
&lt;br /&gt;
== Updating Existing Account ==&lt;br /&gt;
&lt;br /&gt;
If you already have a KDE SVN account but want to update the ssh key, [https://bugs.kde.org/enter_sysadmin_request.cgi send a request] to the sysadmins, selecting the &amp;quot;svn account&amp;quot; component and attaching your ssh key.&lt;br /&gt;
&lt;br /&gt;
== And Now? ==&lt;br /&gt;
&lt;br /&gt;
After having sent the form and clicking the link in the email, you have to wait for the answer (typically within two or three days).&lt;br /&gt;
&lt;br /&gt;
Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the [[Contribute/First Steps with your KDE SVN Account|next tutorial]] for your first steps with your new account.&lt;br /&gt;
&lt;br /&gt;
Please add your geographical location (what country are you in?) and other details at the [http://commit-digest.org/data/ Commit Digest data page] so that the Commit Digest can accurately reflect who is working where.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MoveToGit/Layout</id>
		<title>Projects/MoveToGit/Layout</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MoveToGit/Layout"/>
				<updated>2010-09-08T21:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Reviewboard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Definitions==&lt;br /&gt;
modules:&lt;br /&gt;
*each SC module is one repository.&lt;br /&gt;
*each extragear application is one repository.&lt;br /&gt;
*kdereview and playground are implemented with individual repos and/or branches?&lt;br /&gt;
*tarballs stay the same as it is now&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*each SC application is one repository.&lt;br /&gt;
*kdelibs and pimlibs are one repo each. kdebase can be split on workspace/runtime/apps, where optionally apps could be split further&lt;br /&gt;
*extragear and review/playground as above.&lt;br /&gt;
*tarballs stay the same as it is now&lt;br /&gt;
&lt;br /&gt;
==Comparison==&lt;br /&gt;
Pros for each option (cons are rephrased as a pro for the other one)&lt;br /&gt;
Note: no mention of the magnitude of each point has been made yet.&lt;br /&gt;
&lt;br /&gt;
===svn2git===&lt;br /&gt;
modules:&lt;br /&gt;
*some work has already been done on creating module repos&lt;br /&gt;
*moves within modules can be ignored&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
&lt;br /&gt;
===Reviewboard===&lt;br /&gt;
modules:&lt;br /&gt;
*less projects to choose from when submitting a patch? [web only, not an issue with post-review]&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*if something moves to another module, no changes are needed&lt;br /&gt;
*ability to assign a dedicated review group per app&lt;br /&gt;
&lt;br /&gt;
comments:&lt;br /&gt;
*the reviewer groups won't be affected&lt;br /&gt;
&lt;br /&gt;
===Redmine===&lt;br /&gt;
modules:&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*source code links are automatically available on each applicaton page, instead of the module page&lt;br /&gt;
&lt;br /&gt;
===gitolite===&lt;br /&gt;
modules:&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*easier to find projects&lt;br /&gt;
&lt;br /&gt;
===git===&lt;br /&gt;
modules:&lt;br /&gt;
*projects can keep their interdependencies, module-wide libraries and so on&lt;br /&gt;
*less server space&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*moving a project (eg. to unmaintained) moves its whole history&lt;br /&gt;
&lt;br /&gt;
===user workflow===&lt;br /&gt;
modules:&lt;br /&gt;
*keeps a sense of community by having a whole module kept together&lt;br /&gt;
*increases passive testing of trunk (more people to notice if the build's broken)&lt;br /&gt;
*lower barrier to hacking on other projects in the module&lt;br /&gt;
*easier to refactor a module [rare]&lt;br /&gt;
*less downloading &amp;amp; disk space for those who want entire modules&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*less downloading &amp;amp; disk space for people who only want a small part of a module&lt;br /&gt;
*easier to get started on one little app?&lt;br /&gt;
*easier to avoid being exposed to unstable versions of other projects [I think that's a bit selfish though]&lt;br /&gt;
&lt;br /&gt;
comments:&lt;br /&gt;
*kdesrc-build, build-tool and mr make it easy to handle large numbers of repos, although there's still room for improvement on userfriendliness.&lt;br /&gt;
&lt;br /&gt;
===releases===&lt;br /&gt;
modules:&lt;br /&gt;
*closer to what we have with svn??&lt;br /&gt;
&lt;br /&gt;
split:&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/MoveToGit/Layout</id>
		<title>Projects/MoveToGit/Layout</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/MoveToGit/Layout"/>
				<updated>2010-09-08T21:49:48Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Definitions==&lt;br /&gt;
modules:&lt;br /&gt;
*each SC module is one repository.&lt;br /&gt;
*each extragear application is one repository.&lt;br /&gt;
*kdereview and playground are implemented with individual repos and/or branches?&lt;br /&gt;
*tarballs stay the same as it is now&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*each SC application is one repository.&lt;br /&gt;
*kdelibs and pimlibs are one repo each. kdebase can be split on workspace/runtime/apps, where optionally apps could be split further&lt;br /&gt;
*extragear and review/playground as above.&lt;br /&gt;
*tarballs stay the same as it is now&lt;br /&gt;
&lt;br /&gt;
==Comparison==&lt;br /&gt;
Pros for each option (cons are rephrased as a pro for the other one)&lt;br /&gt;
Note: no mention of the magnitude of each point has been made yet.&lt;br /&gt;
&lt;br /&gt;
===svn2git===&lt;br /&gt;
modules:&lt;br /&gt;
*some work has already been done on creating module repos&lt;br /&gt;
*moves within modules can be ignored&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
&lt;br /&gt;
===Reviewboard===&lt;br /&gt;
modules:&lt;br /&gt;
*less projects to choose from when submitting a patch? [web only, not an issue with post-review]&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*if something moves to another module, no changes are needed&lt;br /&gt;
&lt;br /&gt;
comments:&lt;br /&gt;
*the reviewer groups won't be affected&lt;br /&gt;
&lt;br /&gt;
===Redmine===&lt;br /&gt;
modules:&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*source code links are automatically available on each applicaton page, instead of the module page&lt;br /&gt;
&lt;br /&gt;
===gitolite===&lt;br /&gt;
modules:&lt;br /&gt;
*no namespacing issue&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*easier to find projects&lt;br /&gt;
&lt;br /&gt;
===git===&lt;br /&gt;
modules:&lt;br /&gt;
*projects can keep their interdependencies, module-wide libraries and so on&lt;br /&gt;
*less server space&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*moving a project (eg. to unmaintained) moves its whole history&lt;br /&gt;
&lt;br /&gt;
===user workflow===&lt;br /&gt;
modules:&lt;br /&gt;
*keeps a sense of community by having a whole module kept together&lt;br /&gt;
*increases passive testing of trunk (more people to notice if the build's broken)&lt;br /&gt;
*lower barrier to hacking on other projects in the module&lt;br /&gt;
*easier to refactor a module [rare]&lt;br /&gt;
*less downloading &amp;amp; disk space for those who want entire modules&lt;br /&gt;
&lt;br /&gt;
split:&lt;br /&gt;
*less downloading &amp;amp; disk space for people who only want a small part of a module&lt;br /&gt;
*easier to get started on one little app?&lt;br /&gt;
*easier to avoid being exposed to unstable versions of other projects [I think that's a bit selfish though]&lt;br /&gt;
&lt;br /&gt;
comments:&lt;br /&gt;
*kdesrc-build, build-tool and mr make it easy to handle large numbers of repos, although there's still room for improvement on userfriendliness.&lt;br /&gt;
&lt;br /&gt;
===releases===&lt;br /&gt;
modules:&lt;br /&gt;
*closer to what we have with svn??&lt;br /&gt;
&lt;br /&gt;
split:&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account</id>
		<title>Contribute/First Steps with your KDE SVN Account</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account"/>
				<updated>2010-08-11T21:27:26Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Removed https option. That's no longer possible now.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{improve}}&lt;br /&gt;
This tutorial is about what to do when you are a fresh owner of a new SVN account for KDE.&lt;br /&gt;
&lt;br /&gt;
== Notations ==&lt;br /&gt;
* ''SVN'' is used to describe an SVN server, mostly KDE's non-anonymous or anonymous SVN servers.&lt;br /&gt;
* The lower case word ''svn'' is used to describe the program named svn, which the user can use to access SVN.&lt;br /&gt;
* By ''username'' the name of your KDE SVN account is meant (also known as ''login'').&lt;br /&gt;
&lt;br /&gt;
== Preliminary ==&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have [[Contribute/Get a SVN Account|applied for a KDE SVN account as described here]] and that you have received a positive answer with the information associated with your new account.&lt;br /&gt;
&lt;br /&gt;
== Read First! ==&lt;br /&gt;
&lt;br /&gt;
Now you have a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
Please note that the answer email will have an explanation about how to use the account. (This explanation is also the file [http://websvn.kde.org/trunk/kde-common/svn/svn_instructions.txt?view=markup kde-common/svn/svn_instructions.txt].) It contains also topics not discussed here. So please read this email.&lt;br /&gt;
&lt;br /&gt;
In case of conflicting instructions, please follow those of the '''email''', not the ones of this tutorial.&lt;br /&gt;
&lt;br /&gt;
== Changed URLs ==&lt;br /&gt;
&lt;br /&gt;
Until now, you have worked with one of the anonymous SVN servers. Now that you have a KDE SVN account, you will not use that anonymous server anymore. Therefore the base URL to the SVN server changes for you.&lt;br /&gt;
&lt;br /&gt;
For the standard anonymous SVN of KDE, it was: {{path|svn://anonsvn.kde.org}} assuming that you have not used an anonymous SVN mirror. If you have used another anonymous SVN server for KDE, then please use its URL instead.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you are unsure which SVN anonymous server you have used, use the &amp;lt;tt&amp;gt;svn info&amp;lt;/tt&amp;gt; command to get the server URL.}}&lt;br /&gt;
&lt;br /&gt;
Now the new base URL for your access to the KDE SVN server will be:&lt;br /&gt;
 svn+ssh://username@svn.kde.org/home/kde&lt;br /&gt;
where &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; is the name that was given to your KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
== Changing The URLs of the Modules of Your Local SVN Copy ==&lt;br /&gt;
This only applies if you have local copies of SVN files that were taken from an anonymous SVN Server, otherwise skip this.&lt;br /&gt;
&lt;br /&gt;
To use the KDE SVN server instead of one of the anonymous SVN servers, you need to tell each module of your local SVN copy that you want to change the server. SVN does this with the command&lt;br /&gt;
 svn switch --relocate&lt;br /&gt;
&lt;br /&gt;
Assuming that you are processing the kdelibs module, you have to use:&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs svn+ssh://username@svn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
&lt;br /&gt;
For other modules than kdelibs (or for branches or for tags), you have to change the relative module path; similarly, if you used another anonymous server.&lt;br /&gt;
&lt;br /&gt;
Be careful on what URLs you type, as SVN will only replace the exact old URL by the exact new URL. So if you mistype one of the URLs, it will not work later. (If you have already fallen into this pitfall, it is not a problem, just use relocate again to replace the wrong URL with the right one.)&lt;br /&gt;
&lt;br /&gt;
You will be asked to accept the SSL certificate on the first attempt to access the server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ svn switch --relocate svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs svn+ssh://username@svn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
The authenticity of host 'svn.kde.org (195.135.221.74)' can't be established.&lt;br /&gt;
RSA key fingerprint is 86:f3:66:06:20:74:81:d0:1b:b4:2f:25:03:f7:8e:fb.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added 'svn.kde.org,195.135.221.74' (RSA) to the list of known hosts.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure that the fingerprint matches that in the document [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE#The_KDE_repository_structure Using Subversion with KDE]. (Normally, the SHA1 fingerprint is used for HTTPS.)&lt;br /&gt;
&lt;br /&gt;
== First Test ==&lt;br /&gt;
&lt;br /&gt;
The following steps are described using the command line tool &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt;. Personally, I find it better to start with it, as you know immediately where the problems are. Of course, after you have made your first test, you may use whatever tool that you prefer.&lt;br /&gt;
&lt;br /&gt;
Then you should be ready to start. The best test is to try to update a small directory. So change to a (small) directory of your local copy of KDE and type: &amp;lt;code bash&amp;gt;svn update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you have no local copies installed, you can just checkout a module.&lt;br /&gt;
&amp;lt;code bash&amp;gt;svn checkout YOUR_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
Obviously, replace YOUR_URL with the correct path.&lt;br /&gt;
&lt;br /&gt;
Now you can use the SVN commands on KDE's main SVN.&lt;br /&gt;
&lt;br /&gt;
{{note|If you know CVS, you will perhaps wonder that there is no &amp;lt;tt&amp;gt;cvs login&amp;lt;/tt&amp;gt;, Subversion has chosen not to have such a way to login. The login is done at the first connection, where authentication is needed.}}&lt;br /&gt;
&lt;br /&gt;
== Default Editor ==&lt;br /&gt;
&lt;br /&gt;
This section is only useful if you plan to use the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; program. If you always plan to use a GUI front-end, you can skip this section.&lt;br /&gt;
&lt;br /&gt;
When committing, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; wants some text for commenting the commit. You can either specify it directly with the &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt; parameter or by a file with &amp;lt;tt&amp;gt;-F&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;--file&amp;lt;/tt&amp;gt;. If you do neither of both, &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; will run an editor to ask for a comment.&lt;br /&gt;
&lt;br /&gt;
* TODO: improve this section&lt;br /&gt;
* TODO: better ask the user to modify the svn configuration files?&lt;br /&gt;
&lt;br /&gt;
This editor is taken either from the svn configuration files or if not defined there from the environment variables: first &amp;lt;tt&amp;gt;$SVN_EDITOR&amp;lt;/tt&amp;gt;, then &amp;lt;tt&amp;gt;$VISUAL&amp;lt;/tt&amp;gt;, then &amp;lt;tt&amp;gt;$EDITOR&amp;lt;/tt&amp;gt; depending which one is defined.&lt;br /&gt;
&lt;br /&gt;
So maybe you should check your environment variables:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo $SVN_EDITOR&lt;br /&gt;
echo $VISUAL&lt;br /&gt;
echo $EDITOR&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check that their settings suit you for your work with svn. If they do not suit you, check your file {{path|~/.bashrc}} and add something like:&lt;br /&gt;
&amp;lt;code bash&amp;gt;export SVN_EDITOR=mcedit&amp;lt;/code&amp;gt;&lt;br /&gt;
Here it sets mcedit, replace it with your favorite editor. Of course you can set &amp;lt;tt&amp;gt;$EDITOR&amp;lt;/tt&amp;gt; instead if you want to change the default editor for you.&lt;br /&gt;
&lt;br /&gt;
Be careful that if you do not set a command line editor but one that needs X-Window, you will need to run svn always in a X-Window terminal. It might suit you, it might not. Your choice!&lt;br /&gt;
&lt;br /&gt;
== Subversion Configuration ==&lt;br /&gt;
&lt;br /&gt;
For proper of ''svn status'' and ''svn diff'' on KDE sources, you might want to follow the instructions from [http://developer.kde.org/documentation/other/developer-faq.html#q1.5.2 the developer FAQ] for setting up {{path|~/.subversion/config}}.&lt;br /&gt;
&lt;br /&gt;
== Committing ==&lt;br /&gt;
&lt;br /&gt;
Now a few words about how to commit.&lt;br /&gt;
&lt;br /&gt;
First be sure that the code that you want to commit is right. If you are not certain about a patch, or have some doubts, consider perhaps sending your patch to the relevant mailing list or to the relevant developer if you know who he is.&lt;br /&gt;
&lt;br /&gt;
Also when committing, please give a useful message with the commit. Think about what you would like to find in, say, two years. (One day, you will probably find out that meaningless commit entries like &amp;quot;Fix&amp;quot; or &amp;quot;Here too&amp;quot; are going to drive you crazy when you have to debug a problem.)&lt;br /&gt;
&lt;br /&gt;
Good code is not always only about questions like: &amp;quot;Does the code compile?&amp;quot; The code must also fit in what is planned. For example if a new code fixes just one little bug but the maintainer of the code is currently doing a re-write, he will perhaps not be pleased that something has been committed, because he will have to fix all conflicts between the newly committed code and his new code.&lt;br /&gt;
&lt;br /&gt;
So the best is to communicate (if possible early) to avoid any surprise. A surprised developer is highly at risk of giving a rude answer or at least not a pleasant answer. This is avoidable by communication. Of course, a developer might ask to leave the code alone. Please respect that! (Of course, it does not mean that you should not argue.)&lt;br /&gt;
&lt;br /&gt;
== Commit-Digest ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.commit-digest.org KDE Commit-Digest] is a weekly overview of the commits to KDE's subversion server. Now that you have a SVN account, you will probably see your own name in there soon!&lt;br /&gt;
&lt;br /&gt;
The digest features a small statistics section. To improve the accuracy of those, you should add some information, like age or country, about yourself, which you can do [http://commit-digest.org/data here].&lt;br /&gt;
&lt;br /&gt;
== Commit-Filter ==&lt;br /&gt;
[http://commitfilter.kde.org/ Commit-Filter] is a service which allows you to monitor folders (or authors) in SVN for changes, and have each commit's diff emailed to you. This is very useful if you are interested in getting involved in a certain sub-project of KDE and want to keep up with its development.&lt;br /&gt;
&lt;br /&gt;
Please use reply-to-all when responding to those emails.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
; Subversion&lt;br /&gt;
: [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]&lt;br /&gt;
&lt;br /&gt;
;i18n&lt;br /&gt;
:[[Development/Tutorials/Localization/i18n|What is i18n and how to use it]]&lt;br /&gt;
&lt;br /&gt;
; I18N/L10N&lt;br /&gt;
: [http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html KDE Programmer's i18n howto]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Get_a_Contributor_Account</id>
		<title>Contribute/Get a Contributor Account</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Get_a_Contributor_Account"/>
				<updated>2010-08-11T21:22:38Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Removed https option. That's no longer possible now.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Contribute/Get a SVN Account}}&lt;br /&gt;
This tutorial is about how to apply for a SVN account for KDE.&lt;br /&gt;
&lt;br /&gt;
== Notations ==&lt;br /&gt;
&lt;br /&gt;
* The word ''SVN'' applies to all SVN servers.&lt;br /&gt;
* The phrase ''KDE SVN'' refers only to KDE's SVN server.&lt;br /&gt;
* The phrase ''anonymous SVN'' means KDE's anonymous SVN mirrors.&lt;br /&gt;
&lt;br /&gt;
== What is KDE SVN? ==&lt;br /&gt;
&lt;br /&gt;
To have write access to KDE SVN, you have to use the main SVN server of KDE. (Anonymous SVN uses mirrors of this server. SVN does not allow you to read from one server and write to another.)&lt;br /&gt;
&lt;br /&gt;
To be able to use the main KDE SVN server, you need an account there. An account is made up of a ''username'' (normally your family name), a password and an email address. The username is for getting in, the password for authenticating and the email address for knowing who to contact if another developer wants to contact the account holder. (The username is sometimes known also as the ''login''.)&lt;br /&gt;
&lt;br /&gt;
A KDE SVN account allows you to write to nearly anywhere in the KDE SVN. However, there are exceptions:&lt;br /&gt;
* the KDE SVN internals&lt;br /&gt;
* the www module (exceptions can be made for this.)&lt;br /&gt;
&lt;br /&gt;
'''Note''': you can see the accounts in [http://websvn.kde.org/trunk/kde-common/accounts kde-common/accounts]. That is the list of all accounts. Yes, '''the account list is public''', for example on [http://websvn.kde.org WebSVN].&lt;br /&gt;
&lt;br /&gt;
== Who Can Apply For a KDE SVN Account? ==&lt;br /&gt;
&lt;br /&gt;
Normally, any developer who has done some work on KDE can apply for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
Translators should get approval from their team leader so that they can organize how the work is being done in his/her team. Please mention the approval from the team leader when requesting the account.&lt;br /&gt;
&lt;br /&gt;
Please also [[Policies/SVN Commit Policy|read the KDE SVN commit policy]]. You must accept these rules when using your future KDE SVN account. Please also familiarize yourself with the [http://www.kde.org/code-of-conduct/ KDE Code of Conduct] which describes the social foundations within KDE.&lt;br /&gt;
&lt;br /&gt;
Also please apply for an account only if you think that you will work on KDE for a somewhat longer time. If you know that you will only work for a couple of weeks and then never again, please consider not applying for a KDE SVN account but still, do continue to send patches.&lt;br /&gt;
&lt;br /&gt;
The limitations are not there to exclude anyone - they are there to ensure that the maintenance of accounts remains reasonable.&lt;br /&gt;
&lt;br /&gt;
Of course, to be clear: ''the KDE's sysadmins have the last word about whether or not to create a KDE SVN account for somebody''.&lt;br /&gt;
&lt;br /&gt;
== SSH ==&lt;br /&gt;
&lt;br /&gt;
You need a SSH public key in order to access your KDE SVN account. If you already have one, you can skip the next subsection and go to [[#Setting up the SVN+SSH protocol|Setting up the SVN+SSH protocol]].&lt;br /&gt;
&lt;br /&gt;
=== Generating the SSH keys ===&lt;br /&gt;
&lt;br /&gt;
To be able to use your KDE SVN account with SSH, you need a SSH public key. Please notice that it is '''not''' a GPG (OpenPGP) key, which is completely unrelated!&lt;br /&gt;
&lt;br /&gt;
The password in the sense of this documentation is the '''public key''' that you are creating.&lt;br /&gt;
&lt;br /&gt;
For more information on how to create a pair o SSH keys, please refer to a [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen SSH documentation] or book.&lt;br /&gt;
&lt;br /&gt;
In short, the command to create a pair of keys is '''ssh-keygen''' and it requires the type of key you will create, either DSA or RSA - both are fine.&lt;br /&gt;
&lt;br /&gt;
To create a new pair of keys, use &amp;lt;code bash&amp;gt;ssh-keygen -t dsa&amp;lt;/code&amp;gt; or &amp;lt;code bash&amp;gt;ssh-keygen -t rsa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a type called RSA1 which was used in version 1 of the SSH protocol. See the [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen ssh documentation] for more details.&lt;br /&gt;
&lt;br /&gt;
You can then accept the default filename for your key (either {{path|$HOME/.ssh/id_dsa}} or {{path|$HOME/.ssh/id_rsa}}, depending on the type of key you have chosen). After that, a passphrase is asked. It is recommended that you do not leave it blank.&lt;br /&gt;
&lt;br /&gt;
Now that you are finished generating your key pair, you will have two files: a private key and a public key. If you have accepted the default filename, they will be respectively {{path|$HOME/.ssh/id_dsa}} and {{path|$HOME/.ssh/id_dsa.pub}} or {{path|$HOME/.ssh/id_rsa}} and {{path|$HOME/.ssh/id_rsa.pub}}, depending on the type of key you have specified.&lt;br /&gt;
&lt;br /&gt;
The private key '''must''' remain secret, do not publish it to anyone under any circumstance.&lt;br /&gt;
&lt;br /&gt;
The public key can be published and shall be sent when you are applying for a KDE SVN account.&lt;br /&gt;
&lt;br /&gt;
You should also set up &amp;lt;tt&amp;gt;ssh-agent&amp;lt;/tt&amp;gt; so you do not have to type the password every time you connect via SSH. There are several tutorials available explaining how to do this, for example [http://mah.everybody.org/docs/ssh this one]. [http://www.gentoo.org/proj/en/keychain Keychain] is a program that makes this task easier.&lt;br /&gt;
&lt;br /&gt;
'''Note''': if you already have an ssh key, you can just use the existing key instead of creating a new one.&lt;br /&gt;
&lt;br /&gt;
{{tip|&lt;br /&gt;
If you want to use SVN with SSH with another user than the one who created the keys, you need to copy &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$HOME/.ssh/id_rsa&amp;lt;/tt&amp;gt; to the other user's &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
You should probably also backup those files.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Setting up the SVN+SSH protocol ===&lt;br /&gt;
&lt;br /&gt;
Once you created your key, you'll have to tell SSH that this one should be used for all connections to KDE sites. Add the following lines to the &amp;lt;tt&amp;gt;~/.ssh/config&amp;lt;/tt&amp;gt; file. Replace USERNAME with yours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host *.kde.org&lt;br /&gt;
        User USERNAME&lt;br /&gt;
        IdentityFile ~/.ssh/id_dsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The linked IdentityFile must belong to the public key you send in when applying for the SVN account. But it is ''not'' the public key (&amp;lt;tt&amp;gt;*.pub&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Apply for an account ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to apply for for a KDE SVN account. Go to [https://sysadmin.kde.org/svnaccount/ https://sysadmin.kde.org/svnaccount/] and fill out the form.&lt;br /&gt;
&lt;br /&gt;
You will need to enter your name and an e-mail address, which has to be your own (a normal address or a KDE Mail address). Of course, do not forget that '''this email address becomes public''' (at least by [http://websvn.kde.org WebSVN]) so you will unfortunately get spam.&lt;br /&gt;
&lt;br /&gt;
Also note that this email address should be the same one that you use on [http://bugs.kde.org bugs.kde.org]. If you don't have an account in [http://bugs.kde.org bugs.kde.org], please create one so that it can be given usual developer rights. Closing bug reports with keywords in commit comments only works if the email address of your Subversion and [http://bugs.kde.org bugs.kde.org] accounts match.&lt;br /&gt;
&lt;br /&gt;
After that, you must choose a username for your KDE SVN account between the suggestions presented to you. Please notice it is not possible to propose something else such as a nickname, as the username must be as close as possible to someone's real name.&lt;br /&gt;
&lt;br /&gt;
If you ask for a KDE email address one day, this will be the base for your address. For example: &amp;lt;tt&amp;gt;username@kde.org&amp;lt;/tt&amp;gt;. (Note, however, that KDE email addresses are not granted so easily anymore, as too many people have ranted with a KDE address and other people thought that it was the official position of the KDE Team. In the meantime, [http://www.kdemail.net KDE Mail] was created for if you need a permanent address.)&lt;br /&gt;
&lt;br /&gt;
Then you have to provide your public key.&lt;br /&gt;
&lt;br /&gt;
The form also holds a field ''Why do you want an account?'', where you can explain what you want to do with your future KDE SVN account, like for example developing a certain application, making documentations or being the team leader of a translation.&lt;br /&gt;
&lt;br /&gt;
After filling out the form, you will receive an email with a link to click on. This is done to verify your email address. The application is not complete before you click on it. &lt;br /&gt;
&lt;br /&gt;
Also note that the form will ask you who has encouraged you to apply. He or she will also get an email to verify your request.&lt;br /&gt;
&lt;br /&gt;
== Updating Existing Account ==&lt;br /&gt;
&lt;br /&gt;
If you already have a KDE SVN account but want to update the ssh key, [https://bugs.kde.org/enter_sysadmin_request.cgi send a request] to the sysadmins, selecting the &amp;quot;svn account&amp;quot; component and attaching your ssh key.&lt;br /&gt;
&lt;br /&gt;
== And Now? ==&lt;br /&gt;
&lt;br /&gt;
After having sent the form and clicking the link in the email, you have to wait for the answer (typically within two or three days).&lt;br /&gt;
&lt;br /&gt;
Once you have confirmation that your account has been created, you need to adapt your local copy to the new server. See the [[Contribute/First Steps with your KDE SVN Account|next tutorial]] for your first steps with your new account.&lt;br /&gt;
&lt;br /&gt;
Please add your geographical location (what country are you in?) and other details at the [http://commit-digest.org/data/ Commit Digest data page] so that the Commit Digest can accurately reflect who is working where.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Toma</id>
		<title>User:Toma</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Toma"/>
				<updated>2010-07-26T18:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;br /&gt;
test&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Toma</id>
		<title>User:Toma</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Toma"/>
				<updated>2010-07-26T18:27:36Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Created page with 'test'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-30T09:56:32Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Fix typo description in the soft message freeze blurp.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
Experimental: download as iCal format [[Media:Releaseschedulekde46.ics‎]], which you can add to korganizer...&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until the Hard Message Freeze, but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-27T20:51:25Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
Experimental: download as iCal format [[Media:Releaseschedulekde46.ics‎]], which you can add to korganizer...&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules</id>
		<title>Schedules</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules"/>
				<updated>2010-05-27T19:44:37Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
During development, the KDE project sets goals in features and dates for upcoming releases. This way, the team knows when it would be a good time to add a new feature or when it's time to&lt;br /&gt;
focus on cleaning up any bugs in preparation for a release. Any plans are tentative schedules and the final dates are generally decided on the kde-core-devel mailing list.&lt;br /&gt;
&lt;br /&gt;
Learn more about [[Schedules/Release Schedules Guide|release schedules]].&lt;br /&gt;
&lt;br /&gt;
== KDE4 ==&lt;br /&gt;
* [[Schedules/KDE4/Goals|KDE 4 Goals]]&lt;br /&gt;
* [[Schedules/KDE4/Application Porting Status|Application Porting Status]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.6'''&lt;br /&gt;
** [[Schedules/KDE4/4.6 Release Schedule|Release Schedule]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.5'''&lt;br /&gt;
** [[Schedules/KDE4/4.5 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.5 Feature Plan|Feature Plan]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE SC 4.4'''&lt;br /&gt;
** [[Schedules/KDE4/4.4 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.4 for you?|Is KDE 4.4 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.4 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.3'''&lt;br /&gt;
** [[Schedules/KDE4/4.3 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.3 for you?|Is KDE 4.3 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.3 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.2'''&lt;br /&gt;
** [[Schedules/KDE4/4.2 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.2 for you?|Is KDE 4.2 for you?]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.2 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.1'''&lt;br /&gt;
** [[Schedules/KDE4/4.1 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.1 Release Goals|Release Goals]]&lt;br /&gt;
** [[Schedules/KDE4/4.1 Feature Plan|Feature Plan]]&lt;br /&gt;
** [[Schedules/Is KDE 4.1 for you?|Is KDE 4.1 for you?]]&lt;br /&gt;
&lt;br /&gt;
*'''KDE 4.0'''&lt;br /&gt;
** [[Schedules/KDE4/4.0 Release Schedule|Release Schedule]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Release Roadmap|Release Milestones]] &lt;br /&gt;
** [[Schedules/KDE4/4.0 Module_Status|Module Status and Pending Application Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Upstream Issues|Release Critical Upstream Issues]]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Announcements|Announcement Information]]&lt;br /&gt;
** [http://developer.kde.org/development-versions/kde-4.0-features.html Feature Plan]&lt;br /&gt;
** [[Schedules/KDE4/4.0 Requirements|Compilation Requirements]]&lt;br /&gt;
&lt;br /&gt;
== KDE3 ==&lt;br /&gt;
&lt;br /&gt;
*'''KDE 3.5''' [[Schedules/KDE 3.5 Release Schedule|release schedule]], [[Schedules/KDE 3.5 Feature Plan|feature plan]]&lt;br /&gt;
&lt;br /&gt;
=== Previous releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KDE 3.4''' [[Schedules/KDE 3.4 Release Schedule|release schedule]], [[Schedules/KDE 3.4 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.3''' [[Schedules/KDE 3.3 Release Schedule|release schedule]], [[Schedules/KDE 3.3 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.2''' [[Schedules/KDE 3.2 Release Schedule|release schedule]], [[Schedules/KDE 3.2 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.1''' [[Schedules/KDE 3.1 Release Schedule|release schedule]], [[Schedules/KDE 3.1 Feature Plan|feature plan]]&lt;br /&gt;
*'''KDE 3.0''' [[Schedules/KDE 3.0 Release Schedule|release schedule]], [[Schedules/KDE 3.0 Feature Plan|feature plan]]&lt;br /&gt;
&lt;br /&gt;
== KOffice ==&lt;br /&gt;
&lt;br /&gt;
=== Current releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KOffice 2.2''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.2/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.2/Feature_Plan feature plan]&lt;br /&gt;
*'''KOffice 2.1''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.1/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.1/Feature_Plan feature plan]&lt;br /&gt;
*'''KOffice 2.0''' [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.0/Release_Plan release schedule], [http://wiki.koffice.org/index.php?title=Schedules/KOffice/2.0/Feature_Plan feature plan]&lt;br /&gt;
&lt;br /&gt;
=== Previous releases ===&lt;br /&gt;
&lt;br /&gt;
*'''KOffice 1.6''' [[Schedules/KOffice 1.6 Release Schedule|release schedule]]&lt;br /&gt;
*'''KOffice 1.5''' [[Schedules/KOffice 1.5 Release Schedule|release schedule]]&lt;br /&gt;
&lt;br /&gt;
== Extragear ==&lt;br /&gt;
* [[Schedules/Extragear|Overview of upcoming Extragear releases]]&lt;br /&gt;
&lt;br /&gt;
== Playground ==&lt;br /&gt;
* [[Schedules/Playground|Overview of upcoming Playground releases]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-27T19:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-27T19:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [http://websvn.kde.org/trunk/playground/utils/releaseschedule/ | software]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-27T19:41:09Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Protected &amp;quot;Schedules/KDE4/4.6 Release Schedule&amp;quot; ([edit=sysop] (indefinite) [move=sysop] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [[http://websvn.kde.org/trunk/playground/utils/releaseschedule/ | software]]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-05-27T19:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: 4.6 schedule....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.6 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
(the below schedule is generated based on [[http://websvn.kde.org/trunk/playground/utils/releaseschedule/ | software]]. Don't edit below, but edit the software and regenerate the schedule.)&lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.6 ==&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 28, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the  planned feature document. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until the next KDE SC release.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft Message Freeze ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. No major new strings changes should be done. It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do their work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.&lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 11, 2010: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, November 18, 2010: Beta 1 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, November 24, 2010: Beta 1 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, November 29, 2010: Documentatin Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, December 2, 2010: Beta 2 Tagging ===&lt;br /&gt;
Trunk is frozen for beta release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 8, 2010: Beta 2 Release ===&lt;br /&gt;
The beta becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Tagging Freeze  for Release Candidate 1 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok beforehand from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== Monday, December 20, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, December 21, 2010: Release Candidate 1 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, December 22, 2010: Release Candidate 1 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Monday, January 3, 2011: Tagging Freeze  for Release Candidate 2 ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the affected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== Tuesday, January 4, 2011: Release Candidate 2 Tagging ===&lt;br /&gt;
Trunk is frozen for release candidate tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 5, 2011: Release Candidate 2 Release ===&lt;br /&gt;
The release candidate is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed.As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 19, 2011: Final Tag ===&lt;br /&gt;
The branch is frozen for final release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== Wednesday, January 26, 2011: Release ===&lt;br /&gt;
Final release is released for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/Akonadi/CreatingAccountWizardPackages</id>
		<title>Development/Tutorials/Akonadi/CreatingAccountWizardPackages</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/Akonadi/CreatingAccountWizardPackages"/>
				<updated>2010-05-18T21:34:29Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Add the tutorial. Someone good at wiki markup?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This short tutorial shows you how to create an accountwizard packages.&lt;br /&gt;
&lt;br /&gt;
Such a package can be usefull for your users. You can put it up a shared network drive, or on some internet. The user clicks on it. The assistant pops up, asks the name and the email address of the user and all the needed accounts or resources are created automatically. You can also ask additional information, like age, or whatever you like. &lt;br /&gt;
&lt;br /&gt;
A step-by-step howto:&lt;br /&gt;
&lt;br /&gt;
1) Think of a name and stick to it. Say for example, your company is called 'Galactica'. The name of the package could then be just that. But remember to use it everywhere: galactica.desktop ends up in a galactica subfolder and the package is called galactica.awp.&lt;br /&gt;
&lt;br /&gt;
2) Create a folder called galactica and create the files. You can get an example of the files from http://akonadi.kovoks.nl/kovoks/, rename them all, you can skip the .gif, as that won't work for now.&lt;br /&gt;
&lt;br /&gt;
3) The .ui file can be edited with qt's designer. In this dialog you can ask additional information. Don't ask fullname, password or emailaddress, that will be asked on the first page of the wizard.&lt;br /&gt;
&lt;br /&gt;
4) The .js file holds the intelligence to create the resources based on the gathered information. There you can also access the information which is in the .ui file, if you added that. A clearer example for this is in the kolab wizard, you can see the files here: http://websvn.kde.org/trunk/KDE/kdepim/runtime/resources/kolabproxy/wizard/ (click on the item in the revision kolom to see the contents).&lt;br /&gt;
&lt;br /&gt;
Tip! Debugging the .js file is a real PITA unfortunately. Take baby steps, test a lot and don't get frustrated. If you do a lot of changes in one go, without testing, you will never know which change caused the error.&lt;br /&gt;
&lt;br /&gt;
5) Adjust the .desktop file too.&lt;br /&gt;
&lt;br /&gt;
6) go to the main folder, that should hold the galactica subfolder. Create the package with 'tar -cvf galactica.awp galactica'. Now your package is ready. Test it with accountwizzard --package /path/to/galactica.awp. Remember to use the full path to the file.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/PIM/Akonadi</id>
		<title>Projects/PIM/Akonadi</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/PIM/Akonadi"/>
				<updated>2010-05-18T21:13:55Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Akonadi TODO ==&lt;br /&gt;
The following list contains the things which need to be done for Akonadi.&lt;br /&gt;
&lt;br /&gt;
Note: The person noted in the &amp;quot;Contact&amp;quot; column is not necessarily the one implementing that feature, but the one who can tell you what to do and how to help, i.e. you can also contribute to those tasks ;-)&lt;br /&gt;
&lt;br /&gt;
There is also a more detailed page about bugs and missing features of things that are currently ported [[Projects/PIM/Akonadi/PortingStatus|here]].&lt;br /&gt;
&lt;br /&gt;
=== Core ===&lt;br /&gt;
&lt;br /&gt;
==== KDE 4.1 / Akonadi 1.0 ====&lt;br /&gt;
&lt;br /&gt;
Urgent tasks that need to be finished for the KDE 4.1 release ('''May 19th'''):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Item streaming in ItemSync/ResourceBase|As discussed in Osnabrueck|Tom/Volker}}&lt;br /&gt;
{{FeatureDone|Payload serialization format versioning|see below&lt;br /&gt;
tokoe@kde.org|Tobias}}&lt;br /&gt;
{{FeatureDone|API for additional item parts|As discussed in Osnabruck|Volker/Tobias}}&lt;br /&gt;
{{FeatureDone|Infrastructure for showing additional dialogs from agents/resources|As discussed in Osnabrueck|Tom}}&lt;br /&gt;
{{FeatureDone|Allow to limit ItemFetchJob to current cache content|Prevents search index feeder agents from downloading all remote data|vkrause@kde.org|Volker}}&lt;br /&gt;
{{FeatureDone|Fix API for item/collection modifications|See Osnabrueck meeting notes for details|vkrause@kde.org|Volker}}&lt;br /&gt;
{{FeatureDone|Plugin Versioning|For serializer plugins, also check using Qt plugin stuff instead of the libkdepim plugin framework|tokoe@kde.org|Tobias}}&lt;br /&gt;
{{FeatureDone|Tray app|small app to control the server and have a something that can report errors|tomalbers@kde.nl|Toma}}&lt;br /&gt;
{{FeatureDone|Backup support|Dump &amp;amp; Restore database contents, also useful when upgrading to a newer database version|tomalbers@kde.nl}}&lt;br /&gt;
{{FeatureDone|Akonadi Artwork|Icon for the tray app|tomalbers@kde.nl|Toma}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== KDE 4.2 / Akonadi 1.1 ====&lt;br /&gt;
&lt;br /&gt;
That's the stuff we want to have in 4.2, very roughly ordered by priority. Releases are scheduled for early January 2009.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Server error reporting|Helpful error message when the server cannot be started or if there is some other problem communicating with it.|vkrause@kde.org|Volker}}&lt;br /&gt;
{{FeatureDone|KResource migration tool|For KABC and KCal resources, setting up Akonadi &amp;lt;-&amp;gt; KResource bridges where needed|Volker}}&lt;br /&gt;
{{FeatureDone|KResource bridges|Basically finished, needs more testing|Kevin}}&lt;br /&gt;
{{FeatureDone|Distribution Lists|Serializer Plugin and resource support|Tobias,Kevin}}&lt;br /&gt;
{{FeatureDone|Complete iCal resource|error handling, robustness, legacy formats, file montitoring|Volker}}&lt;br /&gt;
{{FeatureDone|Complete vCard resource|same as iCal + binary legacy format|Bertjan}}&lt;br /&gt;
{{FeatureDone|Item size|Needed by Mailody|toma@kde.org}}&lt;br /&gt;
{{FeatureDone|LINK/UNLINK commands|Managing item references in virtual collections|vkrause@kde.org|Volker}}&lt;br /&gt;
{{FeatureDone|Akonadi Testrunner|Running tests in a self contained Akonadi setup|igor_trindade@yahoo.com.br|Igor}}&lt;br /&gt;
{{FeatureDone|Remote file support for iCal/vCard resources|Replaces net/remote KRes resources|Bertjan}}&lt;br /&gt;
{{FeatureDone|Solid integration|Switch online/offline state in ResourceBase automatically|Bertjan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== KDE 4.3 / Akonadi 1.2 ====&lt;br /&gt;
&lt;br /&gt;
Stuff that went into KDE 4.3 and Akonadi server 1.2.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Fix unit tests|Make unittests work without destroying the production database|Igor/Volker}}&lt;br /&gt;
{{FeatureDone|Filesystem Backend|Store content data in files instead of the database, transfer filehandles instead of data to the client|Andras}}&lt;br /&gt;
{{FeatureDone|IMAP resource||Kevin}}&lt;br /&gt;
{{FeatureDone|Kolab proxy resource||Andras}}&lt;br /&gt;
{{FeatureDone|RID based operations|Item/collection retrieval and modification based on remote identifiers|Volker}}&lt;br /&gt;
{{FeatureDone|Microblog Support|Type library, serializer plugin, identi.ca/twitter resources|Tom}}&lt;br /&gt;
{{FeatureDone|ResourceBase::collectionsRetrievalDone is missing|I'm working around by calling collectionsRetrievedIncremental() with empty collection lists|Volker}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== KDE 4.4 / Akonadi 1.3 ====&lt;br /&gt;
&lt;br /&gt;
The following is being worked on for KDE 4.4 and Akonadi server 1.3.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Port KAddressBook|Replace with KContactManager|Tobias}}&lt;br /&gt;
{{FeatureDone|Resource testing framework|Automated, shareable tests for resources|Igor/Volker}}&lt;br /&gt;
{{FeatureInProgress|Review change notifications|See the various discussions about shortcomings in that area|Volker,Steve}}&lt;br /&gt;
{{FeatureDone|Collection statistics for sub-trees|Provide a CollectionStatus object covering the full sub-tree in the model, allowing accumulated unread counts etc.|Kevin}}&lt;br /&gt;
{{FeatureDone|Favorite Folder Model|see current KMail|Kevin}}&lt;br /&gt;
{{FeatureDone|Batch jobs for modifying/deleting collections/items|it would be great to have jobs which perform operations on several entities in one go|Volker}}&lt;br /&gt;
{{FeatureDone|Collection streaming support in ResourceBase/CollectionSync|Similar to what is available for items already|Volker}}&lt;br /&gt;
{{FeatureDone|MBox resource||Bertjan}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Scheduled for KDE 4.5 / Akonadi 1.4 ====&lt;br /&gt;
&lt;br /&gt;
Stuff that is planned for inclusion in 4.5, partly already available in the akonadi-ports branch.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureInProgress|Port KOrganizer|Port from KResource to Akonadi|Frank/Sebastian}}&lt;br /&gt;
{{FeatureDone|Account creation wizard|as discussed in Berlin, see below|Volker,Laurent,Tom}}&lt;br /&gt;
{{FeatureInProgress|KMail port|KMail using Akonadi|everyone}}&lt;br /&gt;
{{FeatureInProgress|Remote Search|Delegating searches to resources, see below|Volker}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Post KDE 4.5 /Akonadi 1.4 ====&lt;br /&gt;
&lt;br /&gt;
This stuff is currently not considered for 4.5 due to lack of resources. Of course it will be added nevertheless if someone implements it. The list is completely unsorted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Error reporting|Akonadi::Job basically has only one error code: Unknown|Tobias}}&lt;br /&gt;
{{FeatureInProgress|Port KNotes|File resource, serializer plugin, KNotes application, Kontact plugin|}}&lt;br /&gt;
{{FeatureTodo|Batch job to retrieve a set of items from Akonadi|Those items don't belong to the same collection, rather they are located in different collections|}}&lt;br /&gt;
{{FeatureTodo|CollectionFetchJob/ItemFetchJob should be able to retrieve entities by flags/mimetype|&lt;br /&gt;
This is problematic with change notifications, as they have to know about the filtering with the \Seen flag as well.&lt;br /&gt;
This type of filtering would be possible with full Nepomuk interface though. We don't want yet another query language here. The plan is to fix the nepomuk agent and use that as semi-public interface for now.|}}&lt;br /&gt;
{{FeatureTodo|Nepomuk integration|Generic Item tag/rate/comment, etc.|Tom}}&lt;br /&gt;
{{FeatureTodo|Sync collection tree after creating setting up a resource|see AgentInstanceCreateJob|}}&lt;br /&gt;
{{FeatureTodo|Support standard commands for QUndo framework||}}&lt;br /&gt;
{{FeatureTodo|Conflict detection in resources|See Osnabrueck meeting notes for details|}}&lt;br /&gt;
{{FeatureInProgress|Action framework|see below|vkrause@kde.org|Volker}}&lt;br /&gt;
{{FeatureInProgress|Fix API docs|The libakonadi move as well as the huge API changes following it broke lots of the docs technical and content-wise, see below|Tobias}}&lt;br /&gt;
{{FeatureInProgress|Migration|Data and settings from pre-Akonadi times, see below|}}&lt;br /&gt;
{{FeatureInProgress|Extended notifications|Item change notification do not yet include their source collections (real and virtual)|}}&lt;br /&gt;
{{FeatureTodo|Alternative for Akonadi::ResourceBase|Not using the scheduler to avoid the serialization of operations, see RSS resource. (This will get very complicated. Maybe use a proxy ResourceBase for this, which is thread-pooled?)|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Supported Types ===&lt;br /&gt;
&lt;br /&gt;
Overview on the current state of support for various types:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Serializer !! Multipart Support !! Models !! Views !! Resources !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|Email||yes||partial||MessageModel, MessageCollectionModel, threading proxy model||?||maildir, IMAP||threading agent&lt;br /&gt;
|-&lt;br /&gt;
|News||yes (1)||partial (1)||(1)||(1)||NNTP||&lt;br /&gt;
|-&lt;br /&gt;
|Contact||yes||no||ContactModel||-||vCard, facebook, KRes||&lt;br /&gt;
|-&lt;br /&gt;
|Events||yes||no||EventModel||-||iCal, KRes||&lt;br /&gt;
|-&lt;br /&gt;
|Notes||no||no||-||-||-||not started yet&lt;br /&gt;
|-&lt;br /&gt;
|Feeds||yes||no||Feeds, Items||?||OPML||GSoC in playground/pim&lt;br /&gt;
|-&lt;br /&gt;
|Bookmarks||yes||no||-||-||local bookmarks, del.icio.us||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(1) see Email&lt;br /&gt;
&lt;br /&gt;
=== Mail specific extensions ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Share mail flag code|Standard actions, standard flag enum/constants, Nepomuk interaction|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Event/Todo/Journal specific extensions ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Todo proxy model|See KOrganizers To-Do view|Bruno?}}&lt;br /&gt;
{{FeatureDone|Subtype identification|See discussion on kde-pim mailinglist|Kevin}}&lt;br /&gt;
{{FeatureInProgress|Agenda view|KOrganizer agenda view based on Akonadi|Sergio,Kevin}}&lt;br /&gt;
{{FeatureTodo|Month view|KOrganizer month view based on Akonadi|Bruno?}}&lt;br /&gt;
{{FeatureTodo|Timeline view|KOrganizer timeline view based on Akonadi|}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resources, Agents and others ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureDone|KResource Akonadi bridge|for applications using KCal or KABC|kevin.krammer@gmx.at|Kevin}}&lt;br /&gt;
{{FeatureDone|Akonadi KResource bridge|for data accessed through KCal or KABC resources|kevin.krammer@gmx.at|Kevin}}&lt;br /&gt;
{{FeatureTodo|Expire Agent||}}&lt;br /&gt;
{{FeatureDone|MBOX Resource||Bertjan}}&lt;br /&gt;
{{FeatureDone|Extend IMAP Resource||Kevin/Andras}}&lt;br /&gt;
{{FeatureInProgress|POP3 Resource||Thomas}}&lt;br /&gt;
{{FeatureInProgress|RSS Resource|in akonadi-ports branch ([[Projects/PIM/RSS_framework_for_Akonadi|Details]])|Dmitry/Frank}}&lt;br /&gt;
{{FeatureInProgress|Filter Agent||Szymon}}&lt;br /&gt;
{{FeatureTodo|Search||}}&lt;br /&gt;
{{FeatureTodo| History resource||}}&lt;br /&gt;
{{FeatureInProgress|Filter Rule GUI|Used by filters and searches|Szymon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Resource status overview (this should list all resources existing in KDE3 or already under development for Akonadi):&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Resource !! Retrieve Collections !! Retrieve Items !! Change Collections !! Change Items !! Configuration !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|iCal||yes (4)||yes (1) (2)||no||yes||yes||remote file support, file watching with conflict handling&lt;br /&gt;
|-&lt;br /&gt;
|vCard||yes (4)||yes (1) (2)||no||yes||yes||remote file support, file watching with conflict handling&lt;br /&gt;
|-&lt;br /&gt;
|maildir||yes (1) (4)||yes (1) (2)||?||?||yes||&lt;br /&gt;
|-&lt;br /&gt;
|mbox||no||no||no||no||no||not started yet, code exists in KMail&lt;br /&gt;
|-&lt;br /&gt;
|IMAP||yes (1) (4)?||yes (1) (2)||no||no||no||code exists in kio_imap4 and Mailody, support for extensions: quota, ACL, annotations missing, what about Kolab and Scalix?&lt;br /&gt;
|-&lt;br /&gt;
|NNTP||yes (4)||yes (2)||n/a||n/a||yes||Needs support for local collection names and collection hierarchy&lt;br /&gt;
|-&lt;br /&gt;
|Local Bookmarks||?||?||?||?||(3)||Code in akonadi/resources&lt;br /&gt;
|-&lt;br /&gt;
|OpenChange||?||?||?||?||?||Code in akonadi/resources&lt;br /&gt;
|-&lt;br /&gt;
|Facebook||?||?||?||?||?||Code in playground/pim&lt;br /&gt;
|-&lt;br /&gt;
|del.icio.us||?||?||?||yes||no||Code in playground/pim&lt;br /&gt;
|-&lt;br /&gt;
|KABC||yes(6)||yes||no||yes||yes||&lt;br /&gt;
|-&lt;br /&gt;
|KCal||yes(6)||yes||yes(7)||yes||yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# only full sync supported currently, need optimization&lt;br /&gt;
# does not yet honor cache policy&lt;br /&gt;
# still relies on QSettings for configuration and/or doesn't provide configuration over D-Bus&lt;br /&gt;
# does not yet provide correct access control settings&lt;br /&gt;
# only adding new items, not changing existing ones&lt;br /&gt;
# availability of child collections depend on whether the KResource plugin has subresources&lt;br /&gt;
# child collections can be added or removed if the KCal plugin can have subresources&lt;br /&gt;
&lt;br /&gt;
=== KResource Migration Status ===&lt;br /&gt;
&lt;br /&gt;
Everything without migration support is implicitly converted to use the compat bridge currently.&lt;br /&gt;
&lt;br /&gt;
[[Image:Akonadi-Kres.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KABC migration status ====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! KResource !! Feature equivalent agent !! Migration support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|directory|| || ||vCard dir in development&lt;br /&gt;
|-&lt;br /&gt;
|file||vCard file||4.2||binary format no longer supported, migrated to compat bridge instead&lt;br /&gt;
|-&lt;br /&gt;
|groupdav||||||&lt;br /&gt;
|-&lt;br /&gt;
|groupwise||||||&lt;br /&gt;
|-&lt;br /&gt;
|kolab||||||&lt;br /&gt;
|-&lt;br /&gt;
|ldapkio||||||&lt;br /&gt;
|-&lt;br /&gt;
|net||vCard file||TODO||&lt;br /&gt;
|-&lt;br /&gt;
|scalix||||||&lt;br /&gt;
|-&lt;br /&gt;
|slox||||||&lt;br /&gt;
|-&lt;br /&gt;
|xmlrpc||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== KCal Migration Status ====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
! KResource !! Feature equivalent agent !! Migration support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|blog||||||&lt;br /&gt;
|-&lt;br /&gt;
|bugzilla||||||&lt;br /&gt;
|-&lt;br /&gt;
|groupdav||||||&lt;br /&gt;
|-&lt;br /&gt;
|groupwise||||||&lt;br /&gt;
|-&lt;br /&gt;
|kabc (birthday)||birthdays||4.3||&lt;br /&gt;
|-&lt;br /&gt;
|kolab||||||&lt;br /&gt;
|-&lt;br /&gt;
|localdir||||||&lt;br /&gt;
|-&lt;br /&gt;
|local||iCal file||4.2||&lt;br /&gt;
|-&lt;br /&gt;
|remote||iCal file||TODO||remote supports different URLs for upload and download, the iCal file agent doesn't, is this needed at all?&lt;br /&gt;
|-&lt;br /&gt;
|featureplan||||||probably obsolete since we don't use the XML featureplan anymore&lt;br /&gt;
|-&lt;br /&gt;
|scalix||||||&lt;br /&gt;
|-&lt;br /&gt;
|slox||||||&lt;br /&gt;
|-&lt;br /&gt;
|xmlrpc||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Akonadi Braindump ==&lt;br /&gt;
Ideas/notes etc. on various open issues in Akonadi.&lt;br /&gt;
&lt;br /&gt;
=== Akonadi Standard Actions ===&lt;br /&gt;
&lt;br /&gt;
Idea: Have something like KStandardAction for Akonadi that not only includes the representation of the action but also its state management and the actual operations. Like libakonadi that should be splitted into a generic, type-independent part and be extensible for type-specific actions. This will enable code sharing among many applications and guarantee consistent actions everywhere.&lt;br /&gt;
&lt;br /&gt;
State management: watch selection models of a collection and/or item model.&lt;br /&gt;
&lt;br /&gt;
Use KXMLGUI for context menus in standard views to allow easy extensibility with custom actions.&lt;br /&gt;
&lt;br /&gt;
Generic actions:&lt;br /&gt;
* new collection [done]&lt;br /&gt;
* new virtual collection&lt;br /&gt;
* delete collection [done for single selection]&lt;br /&gt;
* copy collection [done]&lt;br /&gt;
* cut collection&lt;br /&gt;
* paste collection [done]&lt;br /&gt;
* synchronize collection [done for single selection]&lt;br /&gt;
* synchronize resource&lt;br /&gt;
* synchronize everything&lt;br /&gt;
* show collection properties dialog [done]&lt;br /&gt;
* delete item(s) [done]&lt;br /&gt;
* copy item(s) [done]&lt;br /&gt;
* cut item(s)&lt;br /&gt;
* paste item(s) [done]&lt;br /&gt;
* paste native data&lt;br /&gt;
* tag item(s)&lt;br /&gt;
* comment item&lt;br /&gt;
* rate item(s)&lt;br /&gt;
* configure resource&lt;br /&gt;
* add resource? (would need a type parameter, etc.)&lt;br /&gt;
* delete resource&lt;br /&gt;
* manage local subscriptions [done]&lt;br /&gt;
* move to submenu&lt;br /&gt;
* copy to submenu&lt;br /&gt;
&lt;br /&gt;
The list is definitely long enough to make this worthwhile.&lt;br /&gt;
&lt;br /&gt;
=== Collection Model / Collection View ===&lt;br /&gt;
&lt;br /&gt;
Ideas/missing features/bugs of the collection model/view:&lt;br /&gt;
&lt;br /&gt;
* Enable/disable status columns&lt;br /&gt;
* Show status after the name (see KMail)&lt;br /&gt;
* &amp;lt;s&amp;gt;Size column&amp;lt;/s&amp;gt;&lt;br /&gt;
* Save/restore layout&lt;br /&gt;
* &amp;lt;s&amp;gt;Custom collection icons (see KMail, also needed for resource defined special folders (eg. Inbox)&amp;lt;/s&amp;gt;&lt;br /&gt;
* Status tooltips (see KMail in 3.5.9) [still missing quota info]&lt;br /&gt;
* Quick search&lt;br /&gt;
* &amp;lt;s&amp;gt;Favorite folder view as proxy model on top of the normal collection model (FlatCollectionProxyModel might be helpful for there)&amp;lt;/s&amp;gt;&lt;br /&gt;
* Accumulated statistics (unread, total, size)&lt;br /&gt;
* Fix dnd: move/copy/cancel menu always shows up and never has any effect&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
&lt;br /&gt;
Notes on how to keep long-term protocol, source and binary compatibility.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;Detect server version in Akonadi::Session, might be useful in case of protocol extensions/changes&amp;lt;/s&amp;gt;&lt;br /&gt;
* What about database server version updates?&lt;br /&gt;
* &amp;lt;s&amp;gt;Versioning or any other kind of serialization format meta data, we'll need that in case of changes in serialization formats (see eg. Robert's compression patch where this is needed)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;We currently use 32 bit ids, probably hard to change later on, is that enough?&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Plugin versioning&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resource API issues ===&lt;br /&gt;
&lt;br /&gt;
Notes/ideas/complaints about the Akonadi::ResourceBase API:&lt;br /&gt;
&lt;br /&gt;
* Extremely error prone:&lt;br /&gt;
** Scheduler dead-locks when a requested operation is not correctly announced as finished, esp. a problem in error cases.&lt;br /&gt;
** Using the result methods multiple times or when not requested asserts&lt;br /&gt;
* &amp;lt;s&amp;gt;Item streaming is missing, requiring all data to be in memory at once&amp;lt;/s&amp;gt;&lt;br /&gt;
* Non-incremental updates need to know the results of ItemSync to not have to provide all data, even for already existing/unchanged items.&lt;br /&gt;
&lt;br /&gt;
=== API / BC issues ===&lt;br /&gt;
&lt;br /&gt;
Smaller stuff that should be fixed before the ABI freeze and is not yet listed above:&lt;br /&gt;
&lt;br /&gt;
* Cleanup the D-Bus format used by NotificationMessage&lt;br /&gt;
* No mentioning of &amp;quot;IMAP&amp;quot; in the public API, we are not using IMAP&lt;br /&gt;
* Naming and installed location of libraries, headers and executables (see discussion on kde-pim ML)&lt;br /&gt;
* &amp;lt;s&amp;gt;Payload part labels are QStrings, attribute types are QByteArray&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deployment issues ===&lt;br /&gt;
&lt;br /&gt;
* Multiple access: Should multiple Akonadi instances' mysqlds access a single set of  data files the mysql will likely corrupt the data.  This can happen in any NFS+YP installation where users can log onto any machine and access shared homes.  MySQL relies on filesystem locking to prevent multiple access. [http://dev.mysql.com/doc/refman/6.0/en/multiple-servers.html MySQL multiple instance docu].&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/6.0/en/innodb-restrictions.html InnoDB tables should not be used on NFS].&lt;br /&gt;
* NFS speed: MySQL documentation recommends against locating its data files on network shares.&lt;br /&gt;
* AppArmor: Distros' AppArmor profiles prevent MySQL from writing outside its defined data directory (usually /var/lib/mysql).  This is a problem at least with *buntu and openSUSE.  These will need to be adapted.   It is possible to daisy-chain profiles so that MySQL started by Akonadi receives a different profile to MySQL running standalone.  An empty profile has all rights.  Another possibility is to adapt the general MySQL profile so it can write to ${XDG_DATA_HOME}/akonadi(usually ${HOME/}.local/share/akonadi).  Both support for profile chaining and ${HOME} may depend on the version of AppArmor installed.  What about SELinux?&lt;br /&gt;
* Backup: MySQL data files should not be backed up without telling the mysqld process, otherwise a corrupt backup will be made.  LOCK TABLES and FLUSH TABLES at the least.  A dump can be made or mysqlhotbackup may be used in some circumstances. We should consider sysadmins' backup techniques when planning/promoting Akonadi, as a simple rsync cronjob with running Akonadi will not work. [http://dev.mysql.com/doc/refman/6.0/en/backup.html MySQL backup advice].&lt;br /&gt;
&lt;br /&gt;
=== Account Creation Wizard ===&lt;br /&gt;
&lt;br /&gt;
Notes on the resource configuration wizard discussion.&lt;br /&gt;
&lt;br /&gt;
* WizardBase class&lt;br /&gt;
* Wizard discovery via .desktop files&lt;br /&gt;
* A wizard can configure multiple resources (eg. IMAP + LDAP for Kolab) and non-resources (mailtransport)&lt;br /&gt;
* Optionally hide resources completely covered by wizards in the Add Account dialog&lt;br /&gt;
* List wizards in the Add Account dialog&lt;br /&gt;
* Store Account -&amp;gt; Resources information to offer deletion of depending resources&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL Support ===&lt;br /&gt;
&lt;br /&gt;
Has been merged for Akonadi server 1.3. We still need a volunteer for continuous testing and maintenance though.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
* Avoid examples using KJob::exec() due to its problematic side-effects.&lt;br /&gt;
* Examples in the ItemCreateJob docs (and maybe others) operate on items in the root collection which does not work at all&lt;br /&gt;
* Resurrect the server API docs&lt;br /&gt;
* Content of http://api.kde.org/4.x-api/kdepim-apidocs/akonadi/html/index.html should probably be moved to server or client lib docs&lt;br /&gt;
&lt;br /&gt;
=== Migration of pre-Akonadi data and settings ===&lt;br /&gt;
&lt;br /&gt;
* KCal/KABC&lt;br /&gt;
** switch KRes resources to Akonadi KRes compat resources, use KRes Akonadi compat resource, basically injecting Akonadi inbetween&lt;br /&gt;
** Replace Akonadi KRes compat resources with their ported equivalent&lt;br /&gt;
** Application side does not need migration code, &amp;quot;only&amp;quot; port to Akonadi&lt;br /&gt;
* KMail&lt;br /&gt;
** Should migrate to one resource per account + one for previous local folders&lt;br /&gt;
** Problem: local folders are mixed mbox/maildir&lt;br /&gt;
*** Dedicated KMail compat resource?&lt;br /&gt;
*** Convert everything to maildir first?&lt;br /&gt;
** Flags are stored in proprietary binary format&lt;br /&gt;
* KNode&lt;br /&gt;
** Migrate every account to NNTP resource&lt;br /&gt;
** Local flags should be preserved, stored in proprietary binary format&lt;br /&gt;
** Local subscription state should be preserved (where is that stored?)&lt;br /&gt;
** Local folders using MBOX format + proprietary binary index&lt;br /&gt;
* Akregator&lt;br /&gt;
&lt;br /&gt;
=== Search &amp;amp; Virtual Collections ===&lt;br /&gt;
&lt;br /&gt;
Got their own page by now:&lt;br /&gt;
* [[Projects/PIM/Akonadi/VirtualCollections]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/SearchInfrastructure]]&lt;br /&gt;
&lt;br /&gt;
== KMail Breakdown Plan ==&lt;br /&gt;
The current plan is to put some parts of KMail into a stand-alone&lt;br /&gt;
library, independent of KMail. This increases code reuse (for example, the message composer could be shared with Mailody) and makes the code a lot easier to maintain and to port to Akonadi.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Bodypart formatters||}}&lt;br /&gt;
{{FeatureDone|Reader Window||Andris}}&lt;br /&gt;
{{FeatureDone|Composer: Message Composer||Constantin,Leo}}&lt;br /&gt;
{{FeatureInProgress|Composer: GUI Window||Constantin}}&lt;br /&gt;
{{FeatureDone|Queue Manager for mailtransport||Constantin}}&lt;br /&gt;
{{FeatureInProgress|Templates: Core||Leo}}&lt;br /&gt;
{{FeatureTodo|Templates: GUI||}}&lt;br /&gt;
{{FeatureTodo|Port KMCommands||}}&lt;br /&gt;
{{FeatureDone|Port away from KMMessage and KMFolder* everywhere it is left|An idea might be: wrap KMMsgBase/KMMessage inside a reference counted Message class. Insulate everything else from it by wrapper functions. KMFolder should be easier...|all}}&lt;br /&gt;
{{FeatureInProgress|Migration application for index and other config||Casey}}&lt;br /&gt;
{{FeatureTodo|Port MDNs||}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Road to World Domination ==&lt;br /&gt;
&lt;br /&gt;
Sort of related so the stuff above but with a scope for all of KDE PIM and beyond.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Item !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Share identity config GUI parts|eg. the signature configuration widget|}}&lt;br /&gt;
{{FeatureDone|Mailtransport Agent|Global shared outbox, central mail sending instance|Constantin}}&lt;br /&gt;
{{FeatureTodo|Recently sent to support in mailtransport|related to above, based on Akonadi/Nepomuk|}}&lt;br /&gt;
{{FeatureInProgress|Composer engine|Shared stuff for KMail/KNode/Mailody: Crypto, editor, editor actions, attachment model, message assembly, etc.|Constantin,Leo}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Akonadi FAQ ==&lt;br /&gt;
&lt;br /&gt;
This FAQ primarily deals with technical and design questions, if you have questions about using Akonadi (such as &amp;quot;I get error X when starting Akonadi&amp;quot;), please refer to [http://userbase.kde.org/Akonadi userbase.kde.org/Akonadi].&lt;br /&gt;
&lt;br /&gt;
=== Where do I find the Akonadi config files? ===&lt;br /&gt;
&lt;br /&gt;
''~/.config/akonadi/''&lt;br /&gt;
&lt;br /&gt;
=== Where does Akonadi store my data? ===&lt;br /&gt;
&lt;br /&gt;
Akonadi merely acts as a cache for your data, the actual content stays where it has always been, .ics/.vcf/MBOX files, local maildirs, IMAP- and groupware servers. There is only a limited amount of data stored exclusively in Akonadi:&lt;br /&gt;
* Data not supported by the corresponding backends, such as email flags in case of maildir/mbox. This is comparable to KMail's binary index files stored alongside these files in pre-Akonadi times.&lt;br /&gt;
* Internal meta-data used by application or resources, such as information about the last synchronization with a backend or translated folder names.&lt;br /&gt;
* Data that has been changed while the corresponding backend has been offline and has not yet been uploaded.&lt;br /&gt;
&lt;br /&gt;
=== Where can I find the Akonadi database? ===&lt;br /&gt;
&lt;br /&gt;
''~/.local/share/akonadi/''&lt;br /&gt;
&lt;br /&gt;
=== Where can I find the source code? ===&lt;br /&gt;
&lt;br /&gt;
There are three different parts of source code:&lt;br /&gt;
* The Akonadi server, which is KDE-independent. Currently, the code can be found at [http://websvn.kde.org/trunk/kdesupport/akonadi/ kdesupport/akonadi]. The server code will likely move to the [http://www.freedesktop.org/wiki/ freedesktop.org project] in the future, the move has already been [https://bugs.freedesktop.org/show_bug.cgi?id=15711 requested].&lt;br /&gt;
* The Akonadi KDE client libraries are in [http://websvn.kde.org/trunk/KDE/kdepimlibs/akonadi/ kdepimlibs/akonadi].&lt;br /&gt;
* Various agents, resources, the Akonadi console and much other misc stuff is in [http://websvn.kde.org/trunk/KDE/kdepim/akonadi/ kdepim/akonadi]&lt;br /&gt;
&lt;br /&gt;
=== Where can I find documentation? ===&lt;br /&gt;
&lt;br /&gt;
The documentation is mainly in the code itself, in the form of doxygen comments.&lt;br /&gt;
You can find the generated documentation on [api.kde.org api.kde.org], for example:&lt;br /&gt;
&lt;br /&gt;
* General documentation, including a design overview, is [http://api.kde.org/4.x-api/kdepim-apidocs/akonadi/html/index.html here]&lt;br /&gt;
&lt;br /&gt;
: Note that some links in the above documentation which point to the server or the KDE client libraries are currently broken, use the links below to access that documentation.&lt;br /&gt;
* Documentation for the KDE Akonadi client library is [http://api.kde.org/4.x-api/kdepimlibs-apidocs/akonadi/html/index.html here]&lt;br /&gt;
* Documentation about the server is [http://api.kde.org/kdesupport-api/kdesupport-apidocs/akonadi/server/html/index.html here]&lt;br /&gt;
&lt;br /&gt;
=== Which DBMS does Akonadi use? ===&lt;br /&gt;
&lt;br /&gt;
So far only MySQL. There is some work on PostgreSQL support going on though. Basically, every database that is supported by QtSQL can be used, requiring minimal changes in the code at most. However, not all of them provide the features needed by Akonadi (see next two questions).&lt;br /&gt;
&lt;br /&gt;
=== Why not use sqlite? ===&lt;br /&gt;
&lt;br /&gt;
We tried. Really. It can't handle the concurrent access very well, in the best case this means ''very'' slow operations, but we've also seen deadlocks and failing transactions. Once that's fixed in sqlite, adjusting Akonadi to use it again instead of MySQL is no problem.&lt;br /&gt;
&lt;br /&gt;
=== Why not use MySQL/Embedded? ===&lt;br /&gt;
&lt;br /&gt;
We tried that as well, there are two reasons for not using it: No support for the InnoDB engine (which we need for transaction support) and poor availability (only OpenSUSE provided usable packages, needed a patched QSQL driver).&lt;br /&gt;
&lt;br /&gt;
=== Do I need a running MySQL server? ===&lt;br /&gt;
&lt;br /&gt;
No. Akonadi starts its own local MySQL server (unless configured otherwise, see next question). All you need is having the 'mysqld' binary installed at runtime (usually found in the mysql-server package of your distribution).&lt;br /&gt;
&lt;br /&gt;
=== Can Akonadi use a normal MySQL server running on my system? ===&lt;br /&gt;
&lt;br /&gt;
Yes, it can. You find the corresponding settings in ''~/.config/akonadi/akonadiserverrc''.&lt;br /&gt;
&lt;br /&gt;
=== Can I connect multiple Akonadi instances to the same database to share my data between different machines? ===&lt;br /&gt;
&lt;br /&gt;
That does not work unfortunately. Akonadi does not store all relevant data in the database but also uses the file system for configuration and large payload data for example. Also, there is no mechanism to ensure multiple instances have exactly the same version and exactly the same agents and plug-ins installed etc., all of which would be necessary to work on the same database. Finally, there is no notification system to inform the other instances about changes which endangers consistency since the Akonadi server contains internal caches of data in the database. If you want multiple instances to synchronize, use a groupware server (not as bad as it sounds, Kolab for example works with many normal IMAP servers).&lt;br /&gt;
&lt;br /&gt;
If you try this despite the warnings, be aware that there is no safety mechanism in place to prevent you from doing that and you will likely mess up your data in funny ways.&lt;br /&gt;
&lt;br /&gt;
=== I don't like a database server because of backups/running on NFS/etc. ===&lt;br /&gt;
&lt;br /&gt;
See section &amp;quot;Deployment Issues&amp;quot; above, we are aware of that and working on it. Some of these, like backup/restore are already implemented. But please be aware that most of this issues also existed before (eg. with KMail's custom binary indexes).&lt;br /&gt;
&lt;br /&gt;
=== Can a single Akonadi instance be used by multiple users? ===&lt;br /&gt;
&lt;br /&gt;
No. There has to be one Akonadi server instance per user. However, it is possible to use a shared database server.&lt;br /&gt;
&lt;br /&gt;
=== Can I access the Akonadi server on a remote machine? ===&lt;br /&gt;
No. Akonadi is not a groupware server. It's a local cache only.&lt;br /&gt;
&lt;br /&gt;
=== What's the differences between Akonadi and EDS? ===&lt;br /&gt;
EDS is limited to contacts and calendar data, Akonadi is type-independent. Especially, Akonadi is designed to also handle high-volume data such as email. Akonadi and EDS also differ largely in their access protocol on a technical level (Corba/D-Bus vs. local socket with IMAP-like protocol/D-Bus) and also on a protocol level (type specific vs. generic).&lt;br /&gt;
&lt;br /&gt;
=== How do I create a collection? ===&lt;br /&gt;
&lt;br /&gt;
From the developers point of view, there is Akonadi::CollectionCreateJob for that, from the users point of view, most applications allow that, eg. Mailody or akonadiconsole.&lt;br /&gt;
&lt;br /&gt;
However, there is one limitation: Top-level collections can only be created by resources, not by normal applications. The reason for that is that every object (collection or item) is supposed to have an owning resource, that is a resource that is responsible for storing and retrieving that object. There is an ongoing discussion to remove this restriction though.&lt;br /&gt;
&lt;br /&gt;
So, if you want to create a collection eg. for testing purposes, add a resource first. Most Akonadi applications offer an option to do that, a module for KControl is planned as well.&lt;br /&gt;
&lt;br /&gt;
=== How do I disable automatic migration from KDE's traditional framework? ===&lt;br /&gt;
&lt;br /&gt;
The migration tool is controlled by standard KDE configuration file called ''kres-migratorrc''.&lt;br /&gt;
&lt;br /&gt;
Distributors or system administrators wanting to disable the automatism will probably want to that globally, e.g. by editing the installed default configuration file, or by using KDE's configuration hierachy and using a profile config between that and the user level.&lt;br /&gt;
&lt;br /&gt;
The quickest way to deactivate it for one user account only is to use KDE's ''kwriteconfig'' tool to set the respective configration value with a simple copy&amp;amp;paste of the following command:&lt;br /&gt;
&lt;br /&gt;
''kwriteconfig --file kres-migratorrc --group Migration --key Enabled --type bool false''&lt;br /&gt;
&lt;br /&gt;
Please note that at some point KDE applications such as Kontact, KOrganizer, KMail will be using Akonadi directly, at which point migration either has to be enabled or performed manually.&lt;br /&gt;
&lt;br /&gt;
As of KDE 4.4 (and its development releases and when building from SVN trunk) this already applies to KAddressBook and KMail's address book access.&lt;br /&gt;
&lt;br /&gt;
=== How do I completely disable Akonadi startup? ===&lt;br /&gt;
&lt;br /&gt;
{{warning|If you already have applications natively using Akonadi, you of course can't disable Akonadi startup. &amp;lt;i&amp;gt;KAddressBook&amp;lt;/i&amp;gt; (as of KDE 4.4 and its test versions), &amp;lt;i&amp;gt;Mailody&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;KMail&amp;lt;/i&amp;gt; (as of KDE 4.4 and its test versions for address book related things) and &amp;lt;i&amp;gt;KPilot&amp;lt;/i&amp;gt; are applications that are already based on Akonadi.}}&lt;br /&gt;
&lt;br /&gt;
Other applications, like &amp;lt;i&amp;gt;KOrganizer&amp;lt;/i&amp;gt;, are not based on Akonadi yet, at the time of writing. Instead, they use the old KResource framework for storing contacts, calendars and notes.&lt;br /&gt;
During the KDE 4.2 beta time, these KResources were automatically migrated to Akonadi-based KResources, the so-called Akonadi compatibility resources. Therefore, applications like KOrganizer would use Akonadi indirectly through KResources, and therefore would start the Akonadi server when being started.&lt;br /&gt;
&lt;br /&gt;
If Akonadi doesn't start up correctly for you, the following should help you to disable Akonadi startup and use your old KResources again.&lt;br /&gt;
&lt;br /&gt;
First, disable automatic migration like described in the above FAQ entry.&lt;br /&gt;
Then, open &amp;lt;i&amp;gt;System Settings&amp;lt;/i&amp;gt;, go to the &amp;lt;i&amp;gt;Advanced&amp;lt;/i&amp;gt; tab and open the &amp;lt;i&amp;gt;KDE Resources&amp;lt;/i&amp;gt; config panel. There, you can configure which type of KResources are used for contacts, calendars and notes. If the migration to Akonadi was successful, you'll probably only see the &amp;lt;i&amp;gt;Akonadi Compatibility Resource&amp;lt;/i&amp;gt; as an active resource, and all others disabled.&lt;br /&gt;
&lt;br /&gt;
To disable Akonadi startup, enable your old resources again, then disable and delete the Akonadi compatibility resource.&lt;br /&gt;
&lt;br /&gt;
=== What is the relation between Akonadi and OpenSync? ===&lt;br /&gt;
&lt;br /&gt;
Akonadi and OpenSync focus on different aspects and complement each other. Akonadi provides a unified way to access PIM data for applications and a framework to implement powerful connectors to varies data sources. OpenSync focus is on syncing two sets of PIM data.&lt;br /&gt;
&lt;br /&gt;
An Akonadi plugin for OpenSync is currently under development, allowing to sync PIM data available through Akonadi with any other system supported by OpenSync, especially mobile phones.&lt;br /&gt;
&lt;br /&gt;
=== When should I use Akonadi? ===&lt;br /&gt;
&lt;br /&gt;
More precisely, when should you use for your application specific data instead of eg. just using a local file directly.&lt;br /&gt;
&lt;br /&gt;
Akonadi is especially useful when you need one the following:&lt;br /&gt;
&lt;br /&gt;
* Different backends for your data, like eg. a local file and a remote server. Akonadi provides a unified interface for application developers to access your data independent of the actual backend.&lt;br /&gt;
* Caching and change replay of remote data. Akonadi has support for that built in, giving you free offline support for any remote backend.&lt;br /&gt;
* Desktop-wide sharing of your data. As soon as more than one application (say your main applications and a plasmoid) accesses the same data you need to deal with locking, conflict detection, change notifications, etc. - or let Akonadi do that for you.&lt;br /&gt;
&lt;br /&gt;
However, if you are just looking for a simple way to store your application data without needing one of the above, using Akonadi usually means more implementation work for relatively little gain.&lt;br /&gt;
&lt;br /&gt;
=== Akonadi needs too much space in my home directory! ===&lt;br /&gt;
&lt;br /&gt;
An empty, unused Akonadi database needs about 100 Mb of disk space. This is due to the MySQL InnoDB log files which work similar to a journal in a modern file system. These files are constant in size and independent of the actual data stored in Akonadi. The default size is optimized for performance on average desktop hardware where the use of 100 Mb of disk space is no problem. In other cases, such as multi-user systems or embedded devices, this default might not be optimal though.&lt;br /&gt;
&lt;br /&gt;
The default size can be configured, globally or per-user. The global configuration file can be found in $PREFIX/share/config/akonadi/mysql-global.conf, the per-user file is in ~/.config/akonadi/mysql-local.conf and overwrites settings of the global file. In any of these files, you can change the settings '''innodb_log_file_size''' and assign it a smaller value than the default (64M).&lt;br /&gt;
&lt;br /&gt;
For this setting to take effect you need to restart Akonadi. With older Akonadi versions (&amp;lt;=1.1.1) you might need to manually remove the InnoDB log files from ~/.local/share/akonadi/db_data for this change to take effect. The log files do not contain data after a clean shutdown and thus can safely be removed while Akonadi is not running.&lt;br /&gt;
&lt;br /&gt;
An alternative approach especially for multi-user systems might be the use of a single, global MySQL server instance.&lt;br /&gt;
&lt;br /&gt;
=== My Akonadi resource seems to randomly hang/stop working! ===&lt;br /&gt;
&lt;br /&gt;
A very common problem of resources based on Akonadi::ResourceBase are &amp;quot;unguarded exit paths&amp;quot; from one of the methods you have reimplemented there. See the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
void MyResource::retrieveItems( const Collection &amp;amp;collection )&lt;br /&gt;
{&lt;br /&gt;
  if ( someError )&lt;br /&gt;
    return;&lt;br /&gt;
  itemsRetrieved( myItems );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case of an error you leave retrieveItems() without telling Akonadi::ResourceBase that you are done with the task. Therefore, it is assumed the requested item retrieval takes a bit longer (which is not uncommon for resources for remote backends, results typically come in in a result slot connected to a job class for example) and waits until you announce the task is finished.&lt;br /&gt;
&lt;br /&gt;
The following example does it correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
void MyResource::itemAdded( const Akonadi::Item &amp;amp;item, const Akonadi::Collection &amp;amp;parent )&lt;br /&gt;
{&lt;br /&gt;
  if ( noNetwork ) { // transient error&lt;br /&gt;
    deferTask( i18n( &amp;quot;Offline, will retry later.&amp;quot; ) );&lt;br /&gt;
  } else if ( item_not_valid ) { // permanent error &lt;br /&gt;
    cancelTaks( i18n( &amp;quot;Got invalid crap, can't store that.&amp;quot; ) );&lt;br /&gt;
  } else {&lt;br /&gt;
    // store the item here&lt;br /&gt;
    Item newItem( item );&lt;br /&gt;
    newItem.setRemoteId( my_new_remote_id );&lt;br /&gt;
    changeCommitted( newItem );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following methods require explicit notification that a task has been completed:&lt;br /&gt;
* retrieveX&lt;br /&gt;
* any method indicating changes, ie. itemAdded|Changed|Moved|Removed(), collectionAdded|Changed|Moved|Removed()&lt;br /&gt;
* any custom task scheduled with ResourceBase::scheduleCustomTask()&lt;br /&gt;
&lt;br /&gt;
Refer to the API documentation of Akonadi::ResourceBase for the various ways to do that correctly, there are a few different ways, depending on the current task:&lt;br /&gt;
* Successful completion with convenience features, eg. changeCommitted(), itemsRetrieved() etc.&lt;br /&gt;
* Error cases with convenience features, eg. cancelTask(), deferTask()&lt;br /&gt;
* Only indicate completion, with everything else done manually, eg. changeProcessed(), taskDone()&lt;br /&gt;
&lt;br /&gt;
To confirm a resource is affected by this problem, the &amp;quot;Resource Schedulers&amp;quot; tab of akonadiconsole is very useful (needs to be enabled in the context menu first, causes too much slowdown otherwise). It shows the state of the internal task scheduler of your resource, allowing you to spot stuck tasks.&lt;br /&gt;
&lt;br /&gt;
[[Category:PIM]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Projects/PIM/Akonadi/Testing|Akonadi Testing Framework]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/Development_Tools|Akonadi Development Tools]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/Release_Howto|Akonadi Release Howto]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/Firstrun|Akonadi Firstrun]]&lt;br /&gt;
* Tutorials:&lt;br /&gt;
** [[Development/Tutorials/Akonadi/Application|Application Development]]&lt;br /&gt;
** [[Development/Tutorials/Akonadi/Resources|Resource Development]]&lt;br /&gt;
** [[Development/Tutorials/Akonadi/SerializerPlugin|Serializer Plugin Development]]&lt;br /&gt;
** [[Development/Tutorials/Akonadi/CreatingAccountWizardPackages|Creating accountwizard packages]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/Bookmarks|Bookmark support based on Akonadi]]&lt;br /&gt;
* [http://pim.kde.org/akonadi/ http://pim.kde.org/akonadi/]&lt;br /&gt;
* API docs&lt;br /&gt;
** [http://api.kde.org/4.x-api/kdepimlibs-apidocs/akonadi/html/index.html Client library]&lt;br /&gt;
** [http://api.kde.org/kdesupport-api/kdesupport-apidocs/akonadi/html/ Server]&lt;br /&gt;
* #akonadi IRC channel on freenode&lt;br /&gt;
* Meetings&lt;br /&gt;
** [[Projects/PIM/Akonadi/Meeting2008-11|Halloween Sprint 2008]]&lt;br /&gt;
** [http://community.kde.org/KDE_PIM/Meetings/Osnabrueck_7 Osnabrueck 7]&lt;br /&gt;
** [[Projects/PIM/Akonadi/Meeting2009-04|Akonadi April Sprint 2009]]&lt;br /&gt;
** [[Projects/PIM/Meetings/GCDS_2009|GCDS/aKademy 2009]]&lt;br /&gt;
** [[Projects/PIM/Akonadi/Meeting2009-10|Akonadi October Sprint 2009]]&lt;br /&gt;
** [http://community.kde.org/KDE_PIM/Meetings/Osnabrueck_8 Osnabrueck 8]&lt;br /&gt;
** [http://community.kde.org/KDE_PIM/Meetings/Akonadi-2010-05 Akonadi/KDE PIM pre45 sprint 2010]&lt;br /&gt;
* [[Projects/Summer of Code/2009/Ideas#KDE_PIM|Google Summer of Code 2009 Ideas]]&lt;br /&gt;
* [[Projects/PIM/Akonadi/PortingStatus|Akonadi Port - List of Bugs and Features]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-04-09T19:32:21Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Make it final and add soft/hard api freeze.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Soft API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API should now be mostly fixed. Changing API is allowed, but commits have to be cc'ed to the kde-bindings mailinglist. This is including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 4th: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 6th: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 7th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 2nd: Tag Beta 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 4th: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 6th: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 7th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* July 13nd: Tagging freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 6th: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 7th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:39:41Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* July 14th: Tag + release RC 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 7th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Tag + release RC 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged from the branch. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Tag + release RC 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
&lt;br /&gt;
The 4.5 branch is made and trunk is re-opened for development targetting the 4.6 release. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-29T21:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-03-27T23:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed changes:&lt;br /&gt;
* beta 1 time between tag + release is there for sorting out dependencies, since we have a dep freeze, we can do a tag+release at same day for beta2. or &amp;lt;MoDaX&amp;gt; toma: imho, ideally: beta 1 - one week, beta 2 - 3 days, rc1 - 3 days, other RCs - same day&lt;br /&gt;
* put some dependencies on cdash?&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule</id>
		<title>Schedules/KDE4/4.6 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.6_Release_Schedule"/>
				<updated>2010-03-27T23:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Created page with 'Proposed changes: * beta 1 time between tag + release is there for sorting out dependencies, since we have a dep freeze, we can do a tag+release at same day for beta2. * put some...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed changes:&lt;br /&gt;
* beta 1 time between tag + release is there for sorting out dependencies, since we have a dep freeze, we can do a tag+release at same day for beta2.&lt;br /&gt;
* put some dependencies on cdash?&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:57:44Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 13nd: Tagging freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Hard Message Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 22rd: Artwork and Bindings Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:56:00Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Artwork and Bindings Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 22rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:50:37Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Add API Freeze&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: API Freeze ===&lt;br /&gt;
To allow the bindings people to have proper time to do there work in preparation to the final release, the API is now frozen. No more changes to APIs or header files (except docs) after this date, including older APIs and newly introduced libraries/APIs.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T22:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Per request tsdgeos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T19:14:59Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Protected &amp;quot;Schedules/KDE4/4.5 Release Schedule&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:21:52Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
   **** THIS SCHEDULE IS NOT FINAL *******&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:21:18Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* April 26th: Soft Feature Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Dependency Freeze ===&lt;br /&gt;
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms. &lt;br /&gt;
&lt;br /&gt;
In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:15:47Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* KDE SC 4.5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:15:08Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* July 14th: Tag + release RC 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== June 13nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:14:39Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Tag + release RC 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 22nd: Tagging freeze ===&lt;br /&gt;
During tagging freeze only compilation fixes for all platforms are allowed to be committed. Everything else (even showstopper fixes) *have* to be run through reviewboard, with the release-team and the effected maintainers as reviewer. &lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:11:23Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* May 19th: Soft Message Freeze. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until Beta2 is released but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:11:00Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 9th: Release Beta 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
May 19th: Soft Message Freeze.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Hard Message Freeze ===&lt;br /&gt;
Up to now you were able to do typo changes, but you had to mail kde-i18n-doc saying you made a typo fix change. From this moment on you need an explicit ok *forehand* from kde-i18n-doc for every single string change.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:08:19Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* May 19th: Message Freeze. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Soft Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:07:01Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* May 18th: Hard Feature Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 11th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:06:04Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* June 23rd: Tag + release RC 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 18th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.5. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:05:41Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* April 26th, 2010: Soft Feature Freeze */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 18th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule</id>
		<title>Schedules/KDE4/4.5 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.5_Release_Schedule"/>
				<updated>2010-03-27T15:05:19Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: First draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Planned changes to the schedule:&lt;br /&gt;
* put a week between hard feature freeze and beta 1 tagging &lt;br /&gt;
* allow spelling changes during message freeze&lt;br /&gt;
* soft message freeze at beta1 time, during soft, ccmail on commit, bugfixes only&lt;br /&gt;
* hard message freeze at beta2 time, explicit exception at forehand required before commit.&lt;br /&gt;
* tagging freeze if r-t is responsive enough.&lt;br /&gt;
* dependency freeze at time of the soft feature freeze. big features with new dependencies need to go in before that freeze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE SC 4.5 is a feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for this release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.5 ==&lt;br /&gt;
&lt;br /&gt;
=== April 26th, 2010: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.5_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.6.&lt;br /&gt;
&lt;br /&gt;
=== May 18th: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== May 19th: Tag Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 26th: Release Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2nd: Tag Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th: Release Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd: Tag + release RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 14th: Tag + release RC 2 ===&lt;br /&gt;
RC 2 release is tagged. As soon as the RC has been confirmed to build it will be released immediately.&lt;br /&gt;
&lt;br /&gt;
=== July 28th: Tag KDE SC 4.5 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.5 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== August 4th: Release KDE SC 4.5 ===&lt;br /&gt;
KDE SC 4.5 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Release_Team</id>
		<title>Projects/Release Team</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Release_Team"/>
				<updated>2010-02-17T15:57:36Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Coordinator List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= The KDE Release Team Project Page =&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
The purpose of the KDE Release Team is to define and execute the official software releases of KDE.&lt;br /&gt;
&lt;br /&gt;
The Release Team is responsible for setting release schedules for the official KDE releases. This includes release dates, deadlines for individual release steps and restrictions for code changes.&lt;br /&gt;
&lt;br /&gt;
The Release Team coordinates release dates with the marketing and press efforts of KDE.&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
The Release Team is composed of Module Coordinators, Marketing Team liaison (sebas), and the people who actually do the work of tagging and creating the releases (dirk).&lt;br /&gt;
&lt;br /&gt;
As is our tradition, decision making is an open and public process and we welcome input from all concerned parties, including our partners, the packagers, and the distros.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
Please contact the Release Team by [mailto:release-team@kde.org email] or join our public [https://mail.kde.org/mailman/listinfo/release-team mailing list]. The release-team mailinglist is moderated by Richard Moore (IRC: richmoore) and Dirk Müller (IRC: dirk). They will (need to) approve email sent by people not subscribed. In case they miss something (which can always happen as we're all busy people), please ping them on IRC.&lt;br /&gt;
&lt;br /&gt;
== Activities ==&lt;br /&gt;
* Make sure KDE is in a releasable state when we release it (this depends of course on the individual modules)&lt;br /&gt;
* Plan and communicate when KDE releases happen, and intermediate steps to get there (betas, rcs, code freeze and unfreezes)&lt;br /&gt;
* Providing packagers with sufficient information to package and ship KDE (information about dependencies, for example)&lt;br /&gt;
* Decide on exemptions for the code freezes (often boils down to granting it if the translation team OKs it)&lt;br /&gt;
* Collecting the set of features for the next release&lt;br /&gt;
* Take the final decision if a feature enters the release, or not&lt;br /&gt;
&lt;br /&gt;
== Module Coordinators ==&lt;br /&gt;
=== Functions ===&lt;br /&gt;
Module coordinators perform the following duties:&lt;br /&gt;
* primary point of contact for the Release Team concerning issues with the module&lt;br /&gt;
* help determine release schedules&lt;br /&gt;
* communicate release schedules with the module developers&lt;br /&gt;
* provide feedback from developers to the Release Team&lt;br /&gt;
* review new applications for inclusion in the module&lt;br /&gt;
* review old, unmaintained applications for removal from the modules and help find new maintainers&lt;br /&gt;
* review external dependencies for the module&lt;br /&gt;
* help set and review goals for major and feature releases&lt;br /&gt;
* help with release preparation (eg. update application version numbers)&lt;br /&gt;
&lt;br /&gt;
=== Coordinator List ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Description !! Release&amp;amp;nbsp;Coordinator&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdelibs kdelibs] || KDE foundational libraries || help wanted&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdepimlibs kdepimlibs] || KDE personal information libraries || [mailto:winter@kde.org Allen Winter]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdebase/runtime kdebase-runtime] ||Applications required by KDE apps to function properly at runtime, such as a help browser, framework (e.g. phonon, solid) backends, and certain configuration modules || [mailto:ogoffart@kde.org Olivier Goffart]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdebase/workspace kdebase-workspace] || the UNIX/Linux desktop shell || [mailto:aseigo@kde.org Aaron Seigo]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdebase/apps kdebase-apps] || Essential apps needed to complement a desktop shell for basic functionality (web browser, file manager, ...) || help wanted&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeaccessibility kdeaccessibility] || Accessibility applications || [mailto:gunnar@schmi-dt.de Gunnar Schmi Dt]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeartwork kdeartwork] || Additional icons, styles, etc. || [mailto:riccardo@kde.org Riccardo Iaconelli]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeadmin kdeadmin] || Tools for system administration || [mailto:nicolas.ternisien@gmail.com Nicolas Ternisien]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeedu kdeedu] || Applications with educational content ||[mailto:annma@kde.org Anne-Marie Mahfouf]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdegames kdegames] || Entertainment || [mailto:matt@milliams.com Matt Williams]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdegraphics kdegraphics] || Graphics viewing and editing || [mailto:aseigo@kde.org Aaron Seigo]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdemultimedia kdemultimedia] || Audio and video applications || [mailto:kretz@kde.org Matthias Kretz]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdenetwork kdenetwork] || Network-centric apps (IM, remote desktop, etc) || [mailto:uwolfer@kde.org Urs Wolfer]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdepim kdepim] || Groupware || [mailto:winter@kde.org Allen Winter]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeplasma-addons kdeplasma-addons] || Plasma applets || [mailto:aseigo@kde.org Aaron Seigo]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/kdereview kdereview] || Staging area || &lt;br /&gt;
[mailto:aseigo@kde.org Aaron Seigo]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdesdk kdesdk] || Tools for software development || [mailto:mattr@kde.org Matt Rogers]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdetoys kdetoys] || Fun distractions || [mailto:kde@hilefoks.org Stefan Böhmann]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeutils kdeutils] || Miscellaneous utilities || [mailto:kossebau@kde.org Friedrich W. H. Kossebau]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdevplatform kdevplatform] || KDE Development Applications Platform libraries || [mailto:apaku@gmx.de Andreas Pakulat]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdevelop kdevelop] || KDE IDE || [mailto:apaku@gmx.de Andreas Pakulat]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdewebdev kdewebdev] || Web development tool suite || [mailto:amantia@kde.org Andras Mantia]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/extragear extragear] || Extragear || [mailto:helio@kde.org Helio Chissini de Castro]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] || Localization || [mailto:aacid@kde.org Albert Astals Cid]&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/koffice koffice] || KOffice || [mailto:cberger@cberger.net Cyrille Berger]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2010-01-26T17:28:41Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Add an RC3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE SC 4.4 is the fourth feature release for KDE SC 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE SC 4.4 ==&lt;br /&gt;
&lt;br /&gt;
=== October 10th, 2009: Trunk depends on Qt 4.6 ===&lt;br /&gt;
Trunk is open for all commits which depend on Qt 4.6. From now on compilation with Qt4.5 will fail.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE SC 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways). Exception: Typo fixes can be fixed until RC1 but you have to mail kde-i18n-doc saying you made a typo fix change.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Tag KDE SC 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Release KDE SC 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 16th, 2009: Tag KDE SC 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Release KDE SC 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Tag KDE SC 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2010: Release KDE SC 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 19th, 2010: Tag KDE SC 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2010: Release KDE SC 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. &lt;br /&gt;
&lt;br /&gt;
=== January 28th, 2010: Tag KDE SC 4.4 RC 3 ===&lt;br /&gt;
RC 3 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 29th, 2010: Release KDE SC 4.4 RC 3 ===&lt;br /&gt;
RC 3 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== February 3rd, 2010: Tag KDE SC 4.4 ===&lt;br /&gt;
Branch is frozen for KDE SC 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== February 9th, 2010: Release KDE SC 4.4 ===&lt;br /&gt;
KDE SC 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-11-24T13:02:58Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
All deadlines are due 23:59 UTC, but if you need a few more hours, notify someone from the release team. &lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
=== October 10th, 2009: Trunk depends on Qt 4.6 ===&lt;br /&gt;
Trunk is open for all commits which depend on Qt 4.6. From now on compilation with Qt4.5 will fail.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed after this date. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or not listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 16th, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2010: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 19th, 2010: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2010: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== February 3rd, 2010: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== February 9th, 2010: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-09-27T20:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Shift 2 weeks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
=== October 10th, 2009: Trunk depends on Qt 4.6 ===&lt;br /&gt;
Trunk is open for all commits which depend on Qt 4.6. From now on compilation with Qt4.5 will fail.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 25th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 1st, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 16nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2010: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 19th, 2010: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2010: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== February 3rd, 2010: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== February 9th, 2010: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-08-30T16:03:31Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Make it final&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== October 21st, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== November 17th, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== November 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 2nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 8th, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== December 23th, 2009: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2010: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2010: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2010: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== January 26th, 2010: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-08-26T21:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Protected &amp;quot;Schedules/KDE4/4.4 Release Schedule&amp;quot; ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This schedule will change and is discussed at this moment on the release-team mailinglist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== October 21st, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== November 17th, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== November 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 2nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 8th, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== December 23th, 2009: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2009: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2009: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2009: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== January 26th, 2009: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-08-26T20:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This schedule will change and is discussed at this moment on the release-team mailinglist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== October 21st, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 11th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== November 17th, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== November 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 2nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 8th, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.4. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== December 23th, 2009: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2009: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.4 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2009: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2009: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== January 26th, 2009: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-08-26T20:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This schedule will change and is discussed at this moment on the release-team mailinglist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== October 21st, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== November 10th, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== November 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 2nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 8th, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== December 22nd, 2009: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.3. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== December 23th, 2009: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2009: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.3 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2009: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2009: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== January 26th, 2009: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule</id>
		<title>Schedules/KDE4/4.4 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.4_Release_Schedule"/>
				<updated>2009-08-26T20:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: Try to make a schedule.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This schedule will change and is discussed at this moment on the release-team mailinglist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KDE 4.4 is the fourth feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.4 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== October 21st, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.4_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.5.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== November 4th, 2009: Tag KDE 4.4 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== November 10th, 2009: Release KDE 4.4 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== November 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== December 2nd, 2009: Tag KDE 4.4 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== December 8th, 2009: Release KDE 4.4 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== December 23rd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== December 23rd, 2009: Tag KDE 4.4 RC 1 ===&lt;br /&gt;
Trunk is frozen for branching into branches/KDE/4.3. Afterwards, RC 1 release is tagged. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== December 23th, 2009: Release KDE 4.4 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity.&lt;br /&gt;
&lt;br /&gt;
=== January 5th, 2009: Tag KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 is tagged from branches/KDE/4.3 and source tarballs are built. Only urgent fixes, such as those fixing compilation errors, should be committed. &lt;br /&gt;
&lt;br /&gt;
=== January 6th, 2009: Release KDE 4.4 RC 2 ===&lt;br /&gt;
RC 2 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed with a 2 weeks interval&lt;br /&gt;
&lt;br /&gt;
=== January 20th, 2009: Tag KDE 4.4 ===&lt;br /&gt;
Branch is frozen for KDE 4.4 tagging. Only very urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== January 26th, 2009: Release KDE 4.4 ===&lt;br /&gt;
KDE 4.4 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.0_Module_Status</id>
		<title>Schedules/KDE4/4.0 Module Status</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.0_Module_Status"/>
				<updated>2009-07-23T21:35:30Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: i'm no longer maintaining kdereview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is used by the KDE4 Release Team to keep track of the current state of the KDE4 release process.&lt;br /&gt;
&lt;br /&gt;
== Moving / Removing Applications ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick checklist for moving or removing an application:&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Documentation for each application is kept in the {{path|doc/}} folder in the top level of the module. Be sure to move or remove the associated documentation when you move or remove an application.&lt;br /&gt;
&lt;br /&gt;
=== i18n ===&lt;br /&gt;
When moving or removing applications from a module, be sure to move or remove the relevant pot files for the application in the {{path|/trunk/l10n-kde4/templates/messages}}&lt;br /&gt;
and {{path|/trunk/l10n-kde4/templates/docmessages}} folders. Then make sure you add entries to {{path|/trunk/l10n-kde4/scripts/process_orphans.txt}} that note what was done.&lt;br /&gt;
&lt;br /&gt;
There is no need to checkout everything from l10n-kde4, just the {{path|templates}} and {{path|scripts}} folders.&lt;br /&gt;
&lt;br /&gt;
=== Build System ===&lt;br /&gt;
&lt;br /&gt;
Remember to edit all the relevant CMakeLists.txt files in both the origin and destination modules when moving an application.&lt;br /&gt;
&lt;br /&gt;
== Module Status ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Description !! Release&amp;amp;nbsp;Coordinator !! Status&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdelibs kdelibs] || KDE foundational libraries || ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdepimlibs kdepimlibs] || KDE personal information libraries || [mailto:winter@kde.org Allen Winter] ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdebase kdebase] || Runtime, workspace and essential apps || ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeaccessibility kdeaccessibility] || Accessibility applications || [mailto:gunnar@schmi-dt.de Gunnar Schmi Dt] ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeartwork kdeartwork] || Additional icons, styles, etc. || ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeadmin kdeadmin] || Tools for system administration || [mailto:nicolas.ternisien@gmail.com Nicolas Ternisien] ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeedu kdeedu] || Applications with educational content ||[mailto:annma@kde.org Anne-Marie Mahfouf] || Most applications ported&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdegames kdegames] || Entertainment || [mailto:johann.ollivierlapeyre@gmail.com Johann Ollivier-Lapeyre] ||100% compile, unmaintained and too-low quality games removed.&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdegraphics kdegraphics] || Graphics viewing and editing || [mailto:aseigo@kde.org Aaron Seigo] || Various states of development, generally working however&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdemultimedia kdemultimedia] || Audio and video applications || [mailto:kretz@kde.org Matthias Kretz] || much code to move out or port/finish porting&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdenetwork kdenetwork] || Network-centric apps (IM, remote desktop, etc) || [mailto:uwolfer@kde.org Urs Wolfer] || not fully ported, needs lots of work&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdepim kdepim] || Groupware || [mailto:winter@kde.org Allen Winter] || not fully ported, needs lots of work&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/kdereview kdereview] || Staging area ||  ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdesdk kdesdk] || Tools for software development || [mailto:mattr@kde.org Matt Rogers] ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdetoys kdetoys] || Fun distractions || ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdeutils kdeutils] || Miscellaneous utilities || ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdevelop kdevelop] || IDE || [mailto:mattr@kde.org Matt Rogers] || Ported. In development.&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/KDE/kdewebdev kdewebdev] || Web development tool suite || [mailto:amantia@kde.org Andras Mantia]|| Partly ported, needs lot of work.&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/extragear extragear] || Extragear || [mailto:helio@kde.org Helio Chissini de Castro] ||&lt;br /&gt;
|- valign=top&lt;br /&gt;
| [http://websvn.kde.org/trunk/l10n-kde4 l10n-kde4] || Localization || [mailto:aacid@kde.org Albert Astals Cid] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pending Application Issues ==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: lightgreen;&amp;quot;&amp;gt;'''Green'''&amp;lt;/span&amp;gt;: discussed and approved&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: #ffc642;&amp;quot;&amp;gt;'''Orange'''&amp;lt;/span&amp;gt;: discussed, but pending on or blocked by other issues&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: #ff4242;&amp;quot;&amp;gt;'''Red'''&amp;lt;/span&amp;gt;: no progress made at this point&lt;br /&gt;
&lt;br /&gt;
=== kdeedu ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| Marble || Move into module after being ported to KDE || Torsten Rahn || Torsten Rahn || Move completed&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KAlgebra || Move into module after being ported to KDE || Aleix Pol || Aleix Pol || Move completed&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KLatin || Move to blackhole || kdeedu devels || unmaintained || Black hole&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdegames ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KSquares || Move into module || Matt Williams || Matt Williams || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| Kiriki || Move into module || Albert Astals Cid || Albert Astals Cid || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| atlantik / atlantikdesigner || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kfouleggs || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kbackgammon || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| klickety || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kpoker || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kenolaba || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kasteroids || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| ksnake || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| ksokoban || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| ktron || Remove from module || KDE Games Team || KDE Games Team || Move Complete&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kwin4 || Rename || KDE Games Team || KDE Games Team || Renamed to KFourInLine&lt;br /&gt;
|}&lt;br /&gt;
[http://techbase.kde.org/Projects/Games/Status_KDE_4.0 Detailed Status of application kept in module for the 4.0 release]&lt;br /&gt;
&lt;br /&gt;
=== kdegraphics ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KGhostview || Move to unmaintained/4. Functionality will be performed by okular || Aaron&amp;amp;nbsp;Seigo || Luís Pedro Coelho || Move complete&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KFax || Move to extragear pending G3/G4 raw TIFF file support in Okular || Aaron Seigo || || Move complete&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdemultimedia ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen&amp;quot;&lt;br /&gt;
| kaboodle || port to KDE4/Phonon or replace || Matthias Kretz || - || removed&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen&amp;quot;&lt;br /&gt;
| noatun || Determine if ready for KDE 4.0 and whether it should stay in kdemultimedia || Matthias Kretz || Charles Samuels/Stefan Gehn || RIP&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen&amp;quot;&lt;br /&gt;
| phonon-gst/gst2/nmm || Determine if ready for KDE 4.0 and whether it should stay in kdemultimedia || Matthias Kretz || Matthias Kretz || moved to playground&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdenetwork ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KNewsTicker || Determine if still needed with Plasma || Urs Wolfer || Frerich Raabe || Ported to Plasma&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KWiFiManager || Remove. Solid based solution, NetworkManager from kdebase || Urs&amp;amp;nbsp;Wolfer || Stefan&amp;amp;nbsp;Winter || Done&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KDict || Remove. || Urs&amp;amp;nbsp;Wolfer || - || Done&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KGet|| Move back to module from branch || KGet Team || [mailto:kget@kde.org KGet Team] || Done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdepim ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| Kabcclient || Move into module || Kevin&amp;amp;nbsp;Krammer || Kevin&amp;amp;nbsp;Krammer || Approved and ported. Needs a handbook, apidox, and cleanup&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kmobiletools || Move into module || Marco&amp;amp;nbsp;Gulino || Marco&amp;amp;nbsp;Gulino || Move complete.&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kpilot || Resurrect || Adriaan&amp;amp;nbsp;de&amp;amp;nbsp;Groot || Adriaan&amp;amp;nbsp;de&amp;amp;nbsp;Groot || Move complete.&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kandy || Remove from module || PIM team || PIM team || Approved and removed.&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| kmobile || Remove from module || PIM team || PIM team || Approved and removed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdesdk ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: #ffc642;&amp;quot;&lt;br /&gt;
| Kaider || Move into module, replace KBabel || Nick&amp;amp;nbsp;Shaforostoff || Nick&amp;amp;nbsp;Shaforostoff || In extragear; till KDE 4.1&lt;br /&gt;
|- style=&amp;quot;background-color: lightgreen&amp;quot;&lt;br /&gt;
| KBabel || Remove || Nick&amp;amp;nbsp;Shaforostoff || Nick&amp;amp;nbsp;Shaforostoff || in favor of KAider&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeutils ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Application !! Request !! Request&amp;amp;nbsp;By !! App&amp;amp;nbsp;Contact !! Status&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KRegexpEditor || Doesn't work. No Maintainer. Move to playground || Matt Rodgers || Matt Rodgers || in playground; till 4.1&lt;br /&gt;
|-  style=&amp;quot;background-color: lightgreen;&amp;quot;&lt;br /&gt;
| KHexEdit || Move to unmaintained/4. Port to KDE4 not fully completed, no Maintainer. Okteta might replace in 4.1|| Friedrich Kossebau || Friedrich Kossebau || Move complete&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Policies/Commit_Policy</id>
		<title>Policies/Commit Policy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Policies/Commit_Policy"/>
				<updated>2009-06-26T21:43:40Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: /* Special keywords in SVN log messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guidelines ==&lt;br /&gt;
=== Think Twice before Committing ===&lt;br /&gt;
Committing something to SVN has serious consequences. All other developers will get your changes once they are in SVN, and if they break something, they will break it for everybody. All commits will be publicly available in the SVN repository forever.&lt;br /&gt;
&lt;br /&gt;
On the other hand SVN allows one to revert changes, so it's possible to recover from mistakes. This is relatively easy for commits to single files but it can also be a significant amount of work for bigger changes.&lt;br /&gt;
The baseline is: Be aware of the consequences of your commits. Take time to think about them before committing.&lt;br /&gt;
&lt;br /&gt;
=== Never commit code that doesn't compile ===&lt;br /&gt;
Compile the code and correct all errors before committing. Make sure that newly added files are committed. If they are missing your local compile will work fine but everybody else won't be able to compile.&lt;br /&gt;
&lt;br /&gt;
You certainly should make sure that the code compiles with your local setup. You should also consider what consequences your commit will have for compiling with the source directory being different from the build directory. It would also be nice if it would compile with the &amp;lt;tt&amp;gt;--enable-final&amp;lt;/tt&amp;gt; option, but we don't explicitly support that.&lt;br /&gt;
&lt;br /&gt;
Be especially careful if you change the build system, i.e. Makefiles&lt;br /&gt;
&lt;br /&gt;
=== Test your changes before committing ===&lt;br /&gt;
Start the application affected by your change and make sure that the changed code behaves as desired.&lt;br /&gt;
&lt;br /&gt;
Run unit and regression tests, if available (KDE4: &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;, KDE3: &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Double check what you commit ===&lt;br /&gt;
Do a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; and a &amp;lt;tt&amp;gt;svn diff&amp;lt;/tt&amp;gt; before committing. Take messages from SVN about conflicts, unknown files, etc. seriously. ''svn diff'' will tell you exactly what you will be committing. Check if that's really what you intended to commit.&lt;br /&gt;
&lt;br /&gt;
=== Always add descriptive log messages ===&lt;br /&gt;
Log messages should be understandable to someone who sees only the log. They shouldn't depend on information outside the context of the commit. Try to put the log messages only to those files which are really affected by the change described in the log message.&lt;br /&gt;
&lt;br /&gt;
In particular put all important information which can't be seen from the diff in the log message.&lt;br /&gt;
&lt;br /&gt;
=== Honor KDE coding policies ===&lt;br /&gt;
This includes security (shell quoting, buffer overflows, format string vulnerabilities), binary compatibility (d pointers), i18n, usability, user interface style guide, (API) documentation, documentation and definition of memory management and ownership policies, method naming, conditions for inclusion in kdelibs, portability issues and license notices.&lt;br /&gt;
&lt;br /&gt;
These policies are defined separately. If in doubt ask on the mailing list.&lt;br /&gt;
&lt;br /&gt;
=== Respect commit policies set by the Release Plans ===&lt;br /&gt;
&lt;br /&gt;
=== Respect other developer's code ===&lt;br /&gt;
Respect the policies of application and library maintainers, and consult with them before making large changes.&lt;br /&gt;
&lt;br /&gt;
Source control systems are not a substitute for developer communication.&lt;br /&gt;
&lt;br /&gt;
=== Announce changes in advance ===&lt;br /&gt;
When you plan to make changes which affect a lot of different code in SVN, announce them on the mailing list in advance. For instance, changes in libraries might break other code even if they look trivial, e.g., because an application must also compile with older versions of the library for some reasons. By announcing the changes in advance, developers are prepared, and can express concerns before something gets broken.&lt;br /&gt;
&lt;br /&gt;
=== Code review by other developers ===&lt;br /&gt;
Don't commit changes to the public API of libraries without prior review by other developers. There are certain special requirements for the public APIs of the KDE libraries, e.g., source and binary compatibility issues. Changes to the public APIs affect many other KDE developers including third party developers, so requiring a review for these changes is intended to avoid problems for the users of the APIs and to improve the quality of the APIs.&lt;br /&gt;
&lt;br /&gt;
=== Take responsibility for your commits ===&lt;br /&gt;
If your commit breaks something or has side effects on other code, take the responsibility to fix or help fix the problems.&lt;br /&gt;
&lt;br /&gt;
=== Don't commit code you don't understand ===&lt;br /&gt;
Avoid things like &amp;quot;I don't know why it crashes, but when I do this, it does not crash anymore.&amp;quot; or &amp;quot;I'm not completely sure if that's right, but at least it works for me.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you don't find a solution to a problem, discuss it with other developers.&lt;br /&gt;
&lt;br /&gt;
=== Don't commit if other developers disagree ===&lt;br /&gt;
If there are disagreements over code changes, these should be resolved by discussing them on the mailing lists or in private, not by forcing code on others by simply committing the changes to SVN.&lt;br /&gt;
&lt;br /&gt;
=== Backport bugfixes ===&lt;br /&gt;
If you commit bugfixes, consider porting the fixes to other branches. Use the same comment for both the original fix and the backport, that way it is easy to see which fixes have been backported already.&lt;br /&gt;
&lt;br /&gt;
=== Use bug tracking system numbers ===&lt;br /&gt;
If you fix bugs reported on the bug tracking system, add the bug number to the log message. In order to keep the bug tracking system in sync with SVN, you should reference the bug report in your commits, and close the fixed bugs in the bug tracking system.&lt;br /&gt;
&lt;br /&gt;
This doesn't mean that you don't need an understandable log message. It should be clear from the log message what has been changed without looking at the bug report.&lt;br /&gt;
&lt;br /&gt;
=== Tags and branches ===&lt;br /&gt;
There are rules for where to place release tags and branches in the repository. Official KDE branches and release will be created by the release KDE coordinator in the {{path|branches/KDE}} and {{path|tags/KDE}} directories, scripts will ensure that this folders are protected.&lt;br /&gt;
&lt;br /&gt;
Developers should place all branches which are aimed to be released in {{path|branches/appname}} and name them like the release, e.g. {{path|branches/appname/1.5}}. For all release tags, {{path|tags/appname}} is the right place.&lt;br /&gt;
&lt;br /&gt;
All temporary working branches (which should be deleted again after the work has ended) should be located in {{path|branches/work}} with some name describing both which part of KDE (or which application) is branched and which work is done there. A good example would be {{path|branches/work/khtml-paged}} for a khtml working branch to include paged media support. Bad idea would be something like {{path|branches/work/make-it-cool}}.&lt;br /&gt;
&lt;br /&gt;
=== Don't add generated files to the repository ===&lt;br /&gt;
Files generated at build time shouldn't be checked into the repository because this is redundant information and might cause conflicts. Only real source files should be in SVN. An exception to that are files generated by tools that would be an unusual requirement for building KDE.&lt;br /&gt;
&lt;br /&gt;
Standard tools include gcc, g++, cmake, /bin/sh, perl, moc, uic and the tools part of KDE itself. Tools needed for KDE applications written in non-C++ are allowed as well (e.g. python, ruby).&lt;br /&gt;
&lt;br /&gt;
Tools which shouldn't be a requirement for building KDE include lex/flex, yacc/bison, python, ruby etc.&lt;br /&gt;
&lt;br /&gt;
=== Don't use SVN keywords in source files ===&lt;br /&gt;
SVN keywords like &amp;lt;tt&amp;gt;Id&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;Log&amp;lt;/tt&amp;gt; cause unnecessary conflicts when merging branches and don't contain any information which wouldn't be available in the SVN repository anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commit complete changesets ===&lt;br /&gt;
SVN has the ability to commit more than one file at a time. Therefore, please commit all related changes in multiple files, even if they span over multiple directories at the same time in the same commit. This way, you ensure that SVN stays in a compileable state before and after the commit, that the commit history (svn log) is more helpful and that the kde-commits mailing list is not flooded with useless mails.&lt;br /&gt;
&lt;br /&gt;
OTOH, commits should be preferably &amp;quot;atomic&amp;quot; - not splittable. That means that every bugfix, feature, refactoring or reformatting should go into an own commit. This, too, improves the readability of the history. Additionally, it makes porting changes between branches (cherry-picking) and finding faulty commits (by bisecting) simpler.&lt;br /&gt;
While most KDE developers do not pay much attention to that rule, some do so very much. Consequently, you should be very careful about it when making commits in areas which you do not maintain.&lt;br /&gt;
&lt;br /&gt;
=== Don't mix formatting changes with code changes ===&lt;br /&gt;
Changing formatting like indenting or white spaces blows up the diff, so that it is hard to find code changes if they are mixed with re-indenting commits or similar things when looking at the logs and diffs later. Committing formatting changes separately solves this problem.&lt;br /&gt;
&lt;br /&gt;
=== GUI Changes ===&lt;br /&gt;
If your commit causes user visible GUI changes, add the &amp;lt;tt&amp;gt;GUI&amp;lt;/tt&amp;gt; keyword to the log message. This makes sure that the documentation writers get notified of your changes.&lt;br /&gt;
&lt;br /&gt;
== Special keywords in SVN log messages ==&lt;br /&gt;
When you commit changes to SVN you will be asked for a description of your commit. There are several special keywords defined that you can use in this description. These keywords are always uppercase.&lt;br /&gt;
&lt;br /&gt;
The following keywords are pseudo-headers - they have to appear at the start of a line and be followed by a colon:&lt;br /&gt;
* '''FEATURE:''' [''&amp;lt;bugnumber&amp;gt;'']&amp;lt;br/&amp;gt;Marks the feature as implemented by CC'ing the commit message to &amp;lt;bugnumber&amp;gt;-done@bugs.kde.org. This keyword will also be used to automatically extract entries for the release changelog, so it makes sense to use it for new features even if you don't have a bugnumber for the feature.&lt;br /&gt;
* '''BUG:''' ''&amp;lt;bugnumber&amp;gt;''&amp;lt;br/&amp;gt;Marks the bug as fixed by CC'ing the commit message to &amp;lt;bugnumber&amp;gt;-done@bugs.kde.org. This keyword will also be used to automatically extract entries for the release changelog.&lt;br /&gt;
* '''CCBUG:''' ''&amp;lt;bugnumber&amp;gt;''&amp;lt;br/&amp;gt;CC's to the bugreport by sending mail to &amp;lt;bugnumber&amp;gt;@bugs.kde.org&lt;br /&gt;
* '''CCMAIL:''' &amp;lt;email-address&amp;gt;&amp;lt;br/&amp;gt;CC's to the given e-mail address.&lt;br /&gt;
* '''GUI:'''&amp;lt;br/&amp;gt;Indicates a user visible change in the user interface. This is used to make the documentation team aware of such changes.&lt;br /&gt;
&lt;br /&gt;
This keyword can appear anywhere on a line:&lt;br /&gt;
* '''SVN_SILENT'''&amp;lt;br/&amp;gt;Marks the commit message &amp;quot;silent&amp;quot; by adding &amp;quot;(silent)&amp;quot; to the subject of the mail to allow filtering out trivial commits. Use this tag carefully and only for really uninteresting, uncontroversial commits.&lt;br /&gt;
&lt;br /&gt;
* '''SVN_MERGE'''&amp;lt;br/&amp;gt;Special keyword for people that use the svnmerge script. Marks the commit message as being a merge commit by adding &amp;quot;(merge)&amp;quot; to the subject of the mail. This way receivers can filter out mails that are caused by merging the same patch from one branch to another branch. Reviews of those mails is usually not needed. This keyword filters out the endless property changes used by this script.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
This page is maintained by [mailto:schumacher@kde.org Cornelius Schumacher].&lt;br /&gt;
&lt;br /&gt;
[[Category:Policies]]&lt;/div&gt;</summary>
		<author><name>Toma</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Policies/Commit_Policy</id>
		<title>Policies/Commit Policy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Policies/Commit_Policy"/>
				<updated>2009-06-26T21:43:15Z</updated>
		
		<summary type="html">&lt;p&gt;Toma: SVN_MERGE documented&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guidelines ==&lt;br /&gt;
=== Think Twice before Committing ===&lt;br /&gt;
Committing something to SVN has serious consequences. All other developers will get your changes once they are in SVN, and if they break something, they will break it for everybody. All commits will be publicly available in the SVN repository forever.&lt;br /&gt;
&lt;br /&gt;
On the other hand SVN allows one to revert changes, so it's possible to recover from mistakes. This is relatively easy for commits to single files but it can also be a significant amount of work for bigger changes.&lt;br /&gt;
The baseline is: Be aware of the consequences of your commits. Take time to think about them before committing.&lt;br /&gt;
&lt;br /&gt;
=== Never commit code that doesn't compile ===&lt;br /&gt;
Compile the code and correct all errors before committing. Make sure that newly added files are committed. If they are missing your local compile will work fine but everybody else won't be able to compile.&lt;br /&gt;
&lt;br /&gt;
You certainly should make sure that the code compiles with your local setup. You should also consider what consequences your commit will have for compiling with the source directory being different from the build directory. It would also be nice if it would compile with the &amp;lt;tt&amp;gt;--enable-final&amp;lt;/tt&amp;gt; option, but we don't explicitly support that.&lt;br /&gt;
&lt;br /&gt;
Be especially careful if you change the build system, i.e. Makefiles&lt;br /&gt;
&lt;br /&gt;
=== Test your changes before committing ===&lt;br /&gt;
Start the application affected by your change and make sure that the changed code behaves as desired.&lt;br /&gt;
&lt;br /&gt;
Run unit and regression tests, if available (KDE4: &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;, KDE3: &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Double check what you commit ===&lt;br /&gt;
Do a &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; and a &amp;lt;tt&amp;gt;svn diff&amp;lt;/tt&amp;gt; before committing. Take messages from SVN about conflicts, unknown files, etc. seriously. ''svn diff'' will tell you exactly what you will be committing. Check if that's really what you intended to commit.&lt;br /&gt;
&lt;br /&gt;
=== Always add descriptive log messages ===&lt;br /&gt;
Log messages should be understandable to someone who sees only the log. They shouldn't depend on information outside the context of the commit. Try to put the log messages only to those files which are really affected by the change described in the log message.&lt;br /&gt;
&lt;br /&gt;
In particular put all important information which can't be seen from the diff in the log message.&lt;br /&gt;
&lt;br /&gt;
=== Honor KDE coding policies ===&lt;br /&gt;
This includes security (shell quoting, buffer overflows, format string vulnerabilities), binary compatibility (d pointers), i18n, usability, user interface style guide, (API) documentation, documentation and definition of memory management and ownership policies, method naming, conditions for inclusion in kdelibs, portability issues and license notices.&lt;br /&gt;
&lt;br /&gt;
These policies are defined separately. If in doubt ask on the mailing list.&lt;br /&gt;
&lt;br /&gt;
=== Respect commit policies set by the Release Plans ===&lt;br /&gt;
&lt;br /&gt;
=== Respect other developer's code ===&lt;br /&gt;
Respect the policies of application and library maintainers, and consult with them before making large changes.&lt;br /&gt;
&lt;br /&gt;
Source control systems are not a substitute for developer communication.&lt;br /&gt;
&lt;br /&gt;
=== Announce changes in advance ===&lt;br /&gt;
When you plan to make changes which affect a lot of different code in SVN, announce them on the mailing list in advance. For instance, changes in libraries might break other code even if they look trivial, e.g., because an application must also compile with older versions of the library for some reasons. By announcing the changes in advance, developers are prepared, and can express concerns before something gets broken.&lt;br /&gt;
&lt;br /&gt;
=== Code review by other developers ===&lt;br /&gt;
Don't commit changes to the public API of libraries without prior review by other developers. There are certain special requirements for the public APIs of the KDE libraries, e.g., source and binary compatibility issues. Changes to the public APIs affect many other KDE developers including third party developers, so requiring a review for these changes is intended to avoid problems for the users of the APIs and to improve the quality of the APIs.&lt;br /&gt;
&lt;br /&gt;
=== Take responsibility for your commits ===&lt;br /&gt;
If your commit breaks something or has side effects on other code, take the responsibility to fix or help fix the problems.&lt;br /&gt;
&lt;br /&gt;
=== Don't commit code you don't understand ===&lt;br /&gt;
Avoid things like &amp;quot;I don't know why it crashes, but when I do this, it does not crash anymore.&amp;quot; or &amp;quot;I'm not completely sure if that's right, but at least it works for me.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you don't find a solution to a problem, discuss it with other developers.&lt;br /&gt;
&lt;br /&gt;
=== Don't commit if other developers disagree ===&lt;br /&gt;
If there are disagreements over code changes, these should be resolved by discussing them on the mailing lists or in private, not by forcing code on others by simply committing the changes to SVN.&lt;br /&gt;
&lt;br /&gt;
=== Backport bugfixes ===&lt;br /&gt;
If you commit bugfixes, consider porting the fixes to other branches. Use the same comment for both the original fix and the backport, that way it is easy to see which fixes have been backported already.&lt;br /&gt;
&lt;br /&gt;
=== Use bug tracking system numbers ===&lt;br /&gt;
If you fix bugs reported on the bug tracking system, add the bug number to the log message. In order to keep the bug tracking system in sync with SVN, you should reference the bug report in your commits, and close the fixed bugs in the bug tracking system.&lt;br /&gt;
&lt;br /&gt;
This doesn't mean that you don't need an understandable log message. It should be clear from the log message what has been changed without looking at the bug report.&lt;br /&gt;
&lt;br /&gt;
=== Tags and branches ===&lt;br /&gt;
There are rules for where to place release tags and branches in the repository. Official KDE branches and release will be created by the release KDE coordinator in the {{path|branches/KDE}} and {{path|tags/KDE}} directories, scripts will ensure that this folders are protected.&lt;br /&gt;
&lt;br /&gt;
Developers should place all branches which are aimed to be released in {{path|branches/appname}} and name them like the release, e.g. {{path|branches/appname/1.5}}. For all release tags, {{path|tags/appname}} is the right place.&lt;br /&gt;
&lt;br /&gt;
All temporary working branches (which should be deleted again after the work has ended) should be located in {{path|branches/work}} with some name describing both which part of KDE (or which application) is branched and which work is done there. A good example would be {{path|branches/work/khtml-paged}} for a khtml working branch to include paged media support. Bad idea would be something like {{path|branches/work/make-it-cool}}.&lt;br /&gt;
&lt;br /&gt;
=== Don't add generated files to the repository ===&lt;br /&gt;
Files generated at build time shouldn't be checked into the repository because this is redundant information and might cause conflicts. Only real source files should be in SVN. An exception to that are files generated by tools that would be an unusual requirement for building KDE.&lt;br /&gt;
&lt;br /&gt;
Standard tools include gcc, g++, cmake, /bin/sh, perl, moc, uic and the tools part of KDE itself. Tools needed for KDE applications written in non-C++ are allowed as well (e.g. python, ruby).&lt;br /&gt;
&lt;br /&gt;
Tools which shouldn't be a requirement for building KDE include lex/flex, yacc/bison, python, ruby etc.&lt;br /&gt;
&lt;br /&gt;
=== Don't use SVN keywords in source files ===&lt;br /&gt;
SVN keywords like &amp;lt;tt&amp;gt;Id&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;Log&amp;lt;/tt&amp;gt; cause unnecessary conflicts when merging branches and don't contain any information which wouldn't be available in the SVN repository anyway.&lt;br /&gt;
&lt;br /&gt;
=== Commit complete changesets ===&lt;br /&gt;
SVN has the ability to commit more than one file at a time. Therefore, please commit all related changes in multiple files, even if they span over multiple directories at the same time in the same commit. This way, you ensure that SVN stays in a compileable state before and after the commit, that the commit history (svn log) is more helpful and that the kde-commits mailing list is not flooded with useless mails.&lt;br /&gt;
&lt;br /&gt;
OTOH, commits should be preferably &amp;quot;atomic&amp;quot; - not splittable. That means that every bugfix, feature, refactoring or reformatting should go into an own commit. This, too, improves the readability of the history. Additionally, it makes porting changes between branches (cherry-picking) and finding faulty commits (by bisecting) simpler.&lt;br /&gt;
While most KDE developers do not pay much attention to that rule, some do so very much. Consequently, you should be very careful about it when making commits in areas which you do not maintain.&lt;br /&gt;
&lt;br /&gt;
=== Don't mix formatting changes with code changes ===&lt;br /&gt;
Changing formatting like indenting or white spaces blows up the diff, so that it is hard to find code changes if they are mixed with re-indenting commits or similar things when looking at the logs and diffs later. Committing formatting changes separately solves this problem.&lt;br /&gt;
&lt;br /&gt;
=== GUI Changes ===&lt;br /&gt;
If your commit causes user visible GUI changes, add the &amp;lt;tt&amp;gt;GUI&amp;lt;/tt&amp;gt; keyword to the log message. This makes sure that the documentation writers get notified of your changes.&lt;br /&gt;
&lt;br /&gt;
== Special keywords in SVN log messages ==&lt;br /&gt;
When you commit changes to SVN you will be asked for a description of your commit. There are several special keywords defined that you can use in this description. These keywords are always uppercase.&lt;br /&gt;
&lt;br /&gt;
The following keywords are pseudo-headers - they have to appear at the start of a line and be follow