Development/FAQs/General FAQ/zh-cn: Difference between revisions

    From KDE TechBase
    (Created page with "我们都同意需要编写大量的 KDE 应用程序。但同时也有很多现有的 KDE 应用程序需要你的帮助。")
    (Updating to match new version of source page)
    (57 intermediate revisions by 2 users not shown)
    Line 5: Line 5:
    我们都同意需要编写大量的 KDE 应用程序。但同时也有很多现有的 KDE 应用程序需要你的帮助。
    我们都同意需要编写大量的 KDE 应用程序。但同时也有很多现有的 KDE 应用程序需要你的帮助。


    To see the areas where help is needed, check [http://www.kde.org/jobs/ this page].
    如果你想了解一下目前需要帮忙的地方,请看[http://www.kde.org/jobs/ 本页面]


    Before starting a new application, it's always a good idea to check [http://www.kde-apps.org/ KDE-Apps.org] for existing applications and to ask on the  [https://mail.kde.org/mailman/listinfo/kde-devel kde-devel] mailing-list whether someone is already working on a similar project.
    <span class="mw-translate-fuzzy">
    在开始新的应用程序前,检查 [http://www.kde-apps.org/ KDE-Apps.org] 上现有的应用程序,并在 [https://mail.kde.org/mailman/listinfo/kde-devel kde-devel] 邮件列表中进行咨询,看看是否有人已经开始类似的项目。
    </span>


    == I am a developer, how can I contribute to KDE software? ==
    == 我是开发人员,我要如何帮助 KDE 呢?==


    Calligra and KDevelop, despite being very praised, have very few developers, so you might check there. There is no need to be a developer of the KDE workspaces or KDE platform libraries to help. The whole range of KDE software is very modular so you can perfectly improve one area without knowing how others work.
    尽管 Calligra KDevelop 受到高度赞赏,它们只有极少数开发者,所以你可以从这里开始。提供帮助并不仅仅体现在加入 KDE 工作空间或 KDE 平台库的开发。KDE 是高度模块化的,所以你不必了解整个系统就能每次改善某个独立的方面。


    You can also ask on  [https://mail.kde.org/mailman/listinfo/kde-devel kde-devel] if someone needs help on an application.
    您也可以在 [https://mail.kde.org/mailman/listinfo/kde-devel kde-devel] 邮件列表问问是否有人需要协助。使用最新版 KDE 并且关注需要的东西。一个主题生成器?一个 konsole 计划编辑器?改善一个游戏?这些项目总是有小功能缺失。去实现它吧!
    Use the latest version of your favourite KDE software and spot things that are needed. A theme generator? A konsole schema editor? Improve a game? There is always a small feature missing. Go and implement it!


    Are you familiar or attracted with a specific field? See if there is a related application that could use your help. Or write one. KDE especially welcomes more non-geek oriented applications.
    你是熟悉或关注于特定领域吗?查看是否有相关的应用程序,可以获得您的帮助。或者自己写一个。KDE 需要更多非 geek 导向的应用程序。


    == I am not a developer, how can I help? ==
    == 我不是开发者,我要怎样帮忙 ==


    There are plenty of tasks that don't require development skills. Write reviews of applications for the promoting of KDE (see the [https://mail.kde.org/mailman/listinfo/kde-promo kde-promo] mailing-list), help the documentation team (see [http://l10n.kde.org/docs/ i18n.kde.org/doc]), help the translations (see [http://l10n.kde.org/ i18n.kde.org]), help to filter the incoming bugs (see [https://bugs.kde.org/ bugs.kde.org]).
    有大量不需要开发技术的任务。撰写应用程序评论帮助 KDE 推广(请见 [https://mail.kde.org/mailman/listinfo/kde-promo kde-promo] 邮件列表),帮助文件团队(请见 [http://l10n.kde.org/docs/ i18n.kde.org/doc]),协助翻译(请见 [http://l10n.kde.org/ i18n.kde.org]),帮助过滤新增的 bug(请见 [https://bugs.kde.org/ bugs.kde.org])等。


    == Where can I find images of Konqi the dragon? ==
    == 在哪里可以找到 Konqi 龙的图像? ==


    The Konqi for some people SDK is at [ftp://ftp.kde.org/pub/kde/devel/konqi_sdk.tar.bz2 ftp.kde.org/pub/kde/devel/konqi_sdk.tar.bz2]<br />
    一些人需要的 Konqi SDK [ftp://ftp.kde.org/pub/kde/devel/konqi_sdk.tar.bz2 ftp.kde.org/pub/kde/devel/konqi_sdk.tar.bz2]<br />
    It was posted to artist.kde.org before that site ceased to be updated.
    在这个网站还未停止更新前,它被上传到 [https://artist.kde.org artist.kde.org ]。


    Further images are on [http://kde.org/stuff/clipart.php KDE merchandise].
    <span class="mw-translate-fuzzy">
    将来的图像在 [http://kde.org/stuff/clipart.php KDE merchandise].
    </span>


    == What is the level required to contribute to KDE? What should I learn? What should I read? ==
    == 贡献 KDE 需要什么样的水平?我应该学习什么?阅读什么?==


    You need to know C++. Read the [http://qt.nokia.com/learning Qt tutorials] and browse the Qt docs to get familiar with what's available with Qt. Then read the KDE tutorials and browse architecture and documentation. You can also read the KDE Book, it can not harm. But you don't have to be familiar with the whole KDE architecture to become a kde developer. Using kde's technologies is quite easy, so concentrate on what you really need, you can learn the other bits later on.
    <span class="mw-translate-fuzzy">
    [http://techbase.kde.org KDE TechBase] and [http://doc.qt.nokia.com/ doc.qt.nokia.com] (also in your {{path|$QTDIR/doc/html}}) are invaluable resources, take advantage of them.
    您需要了解 C++。阅读 Qt 的教学和浏览 Qt 的文件来熟悉 Qt。然后阅读 KDE 的教学和浏览架构和文件。您还可以阅读 KDE 的书籍。但你不用熟悉整个 KDE 的架构以成为 KDE 开发者。使用 KDE 的技术是很容易的,所以集中在你真正需要的,你可以以后再学习其他部分。[http://techbase.kde.org KDE 用户基地(本站)] [http://doc.qt.nokia.com/ doc.qt.nokia.com] (也在您的 {{path|$QTDIR/doc/html}}) 是宝贵的资源,要善用它们。然后浏览原始码,寻找范例目录,看看其他应用程序的写法。读写程序代码是最好的学习方法。
    Then, browse the source, look for the examples directories, see how the other did code their applications. Reading and writing code is the best way to learn.
    </span>


    == How do I get KDE software from the KDE git or SVN repositories? ==
    == 如何从 KDE git SVN 仓库获取 KDE 软件? ==


    See the "Building and Running KDE Software From Source" section on the [[Special:myLanguage/Getting_Started|Getting_Started]] page.
    <span class="mw-translate-fuzzy">
    参阅[[Special:myLanguage/Getting_Started|开始]]页面的"从源代码编译和运行KDE软件"。
    </span>


    == Can I access KDE source code online? ==
    == 可以在线访问 KDE 源码吗? ==


    Yes
    <span class="mw-translate-fuzzy">
    * Browse http://websvn.kde.org/ and https://projects.kde.org/
    可以
    * Search the source code at http://lxr.kde.org/search
    * 浏览代码: http://websvn.kde.org/
    * Browse API docs generated from the source code at http://api.kde.org/
    * 搜索代码: http://lxr.kde.org/search
    * 浏览源代码生成的 API 文件: http://www.englishbreakfastnetwork.org/
    </span>


    == What should I put in my .subversion/config? ==
    == 我的 .subversion/config 应该怎样配置? ==


    <span class="mw-translate-fuzzy">
    <syntaxhighlight lang="text">[miscellany]
    <syntaxhighlight lang="text">[miscellany]
    global-ignores = *.moc *.moc.cc *.moc.cpp config.log config.status \
    global-ignores = *.moc *.moc.cc *.moc.cpp config.log config.status \
    Line 56: Line 64:
    Makefile.calls.in Makefile.rules Makefile.calls autom4te.cache *.kidl \
    Makefile.calls.in Makefile.rules Makefile.calls autom4te.cache *.kidl \
    *.o *.lo *.la #*# .*.rej *.rej *.pyc</syntaxhighlight>
    *.o *.lo *.la #*# .*.rej *.rej *.pyc</syntaxhighlight>
    And to make svn diff ignore whitespace, and print function names:  
    svn diff 忽略空白并打印函数名:  
    <syntaxhighlight lang="text">[helpers]
    <syntaxhighlight lang="text">[helpers]
    diff-cmd = /usr/local/bin/_svndiff</syntaxhighlight>
    diff-cmd = /usr/local/bin/_svndiff</syntaxhighlight>
    </span>


    with the following in {{path|/usr/local/bin/_svndiff}}:
    And to make svn diff ignore whitespace, and print function names:
     
    <syntaxhighlight lang="bash">
    [helpers]
    diff-cmd = /usr/local/bin/_svndiff
    </syntaxhighlight>
     
    <span class="mw-translate-fuzzy">
    {{path|/usr/local/bin/_svndiff}} 中加入:
    <syntaxhighlight lang="text">#!/bin/sh
    <syntaxhighlight lang="text">#!/bin/sh
    exec /usr/bin/diff -b -u -p "$@"</syntaxhighlight>
    exec /usr/bin/diff -b -u -p "$@"</syntaxhighlight>
    </span>
    <syntaxhighlight lang="bash">
    #!/bin/sh
    exec /usr/bin/diff -b -u -p "$@"
    </syntaxhighlight>


    Don't forget to make {{path|/usr/local/bin/_svndiff}} executable.
    不要忘了将 {{path|/usr/local/bin/_svndiff}} 设置为可执行。


    == I want to put my app in KDE ==
    == 我想将应用程序加到 KDE ==


    There are three requirements:
    <span class="mw-translate-fuzzy">
    * your app must compile with the latest version of KDE (git master or SVN trunk).
    有三个要求:
    * your app must be stable.
    * 您的应用程序必须使用最新版本的 KDE 编译(SVN trunk)。
    * your app must be maintained. You will probably get a good deal of bug reports and wishes. People expect you to fix the bugs and implement the wishes that make sense.
    * 您的应用程序必须是稳定的。
    See also the next question.
    * 您的应用程序必须得到维护。你可能会得到大量的 bug 报告和愿望。人们期待你修复 bug 和实现有意义的愿望。
    </span>


    == Is it better to develop inside or outside KDE? ==
    == KDE 内部还是外部进行开发比较好? ==


    As core developer Waldo Bastian explains in a copyrighted mail:
    <span class="mw-translate-fuzzy">
    核心开发者 Waldo Bastian 在邮件中解释:
    <blockquote>
    <blockquote>
    Being part of KDE means that you have to work together with others. Such cooperation brings along advantages but it also brings along responsibilities.
    成为 KDE 的一份子,意味着你必须与他人一起工作。合作带来了好处,但同时也带来了责任。
    </span>


    :Some of those advantages are: your code ends up on all distro's, people might fix your bugs, you get free translations and documentation, you get tons of bugreports.
    <span class="mw-translate-fuzzy">
    :其中一些的优点是:你的程序代码会出现在所有发行版、人们可能会解决您的 bug、你可以得到免费的翻译和文件、你会得到大量的 bug 报告。
    </span>


    On the other side there are disadvantages and responsibilities: you will have to communicate with other developers about your work, other people might make changes to your code, you will have to respect release freezes, you get tons of bugreports and people actually expect that you fix them as well (what are they smoking?), people expect you to maintain your code.
    <span class="mw-translate-fuzzy">
    另一方面是缺点和责任:你将不得不为你的工作,与其他开发者沟通、其他人可能更改您的程序代码、你必须尊重发行冻结、你会得到极多的 bug 报告,人们期望你解决这些问题以及(what are they smoking?)维护你的程序代码。
    </span>


    You can't chose for the advantages and ignore the responsibilities that come with it, it's a complete package, it's both or nothing.
    <span class="mw-translate-fuzzy">
    你不能只选择优点,而忽略了随之而来的责任,它们是完整一体的,两者都要或都没有。
    </span>


    In general it should be the author of a piece of software that chooses to put his application in KDE's repositories. We usually don't put software in KDE's repositories unless the author wishes to do so. The other way around, if the author prefers to work on his application elsewhere then that's his right as well. Unless there is a split in the actual group of people working on the application it makes no sense to fork the development of an application because of that.
    <span class="mw-translate-fuzzy">
    :一般来说,应该是软件的作者,选择把他的应用程序放进KDE的软件仓库。我们通常只有在作者发出请求时才把软件放在 KDE 仓库。反过来说,如果作者希望在外部开发他的应用程序,是他的权利。除非是应用程序的工作团队分裂,否则因为开发方式改变而 fork 应用程序是没有任何意义的。
    </span>


    '''BUT'''... by putting your code under and open source license and putting it in a KDE repository you give the world at large, as well as KDE in particular, the irrevocable right to use your code. And KDE will use that right at its discretion to protect the interests of KDE, even if that goes against the wishes of the author at that point in time.
    ''''''...您把程序代码以开源授权放在 KDE 仓库就相当于同意整个世界,特别是KDE,使用您的程序代码。KDE 将斟酌使用此权利,以保护 KDE 的利益,即使违背作者当下的意愿。</blockquote>
    </blockquote>


    It is important to know that but don't be afraid. Usually, things work very well. In 5 years, it has only happened once that a developer had his work put kept in KDE while he wanted to remove it.
    知道这个是重要的,但不要害怕。通常,事情进展得很好。在五年里,这仅仅发生了一次:一个开发者把他的作品保留在 KDE 中,尽管他想移除它。


    == How do I get write access to KDE repositories? ==
    == 如何获得 KDE 仓库的写权限? ==


    See full article at [[Special:myLanguage/Contribute/Get_a_Contributor_Account|Contribute > Get a KDE Contributor Account]].
    <span class="mw-translate-fuzzy">
    [[Special:myLanguage/Contribute/Get_a_Contributor_Account|作出贡献 > 获得一个 KDE 贡献者帐号]] 中查看全文。
    </span>


    Go to [[http://identity.kde.org KDE Identity]] , fill out the form and describe why you need write access. Make sure to specify your full name and e-mail address.
    Go to [http://identity.kde.org KDE Identity], fill out the form and describe why you need write access. Make sure to specify your full name and e-mail address.


    Please also include the name of your bugs.kde.org account, if non-existent please create one so that it can be given usual developer rights. Closing bugs.kde.org reports with keywords in commit comments only works if the email address of your KDE Identity and bugs.kde.org accounts match. You can change your bugs.kde.org address in the Bugzilla user settings.
    Please also include the name of your [https://bugs.kde.org/ bugs.kde.org] account, if non-existent please create one so that it can be given usual developer rights. Closing bugs.kde.org reports with keywords in commit comments only works if the email address of your KDE Identity and bugs.kde.org accounts match. You can change your bugs.kde.org address in the Bugzilla user settings.


    Git requires use of an ssh key, and new accounts for SVN must also choose the svn+ssh protocol. Send a public ssh key (e.g. {{path|~/.ssh/id_dsa.pub}})
    Git requires use of an ssh key, and new accounts for SVN must also choose the svn+ssh protocol. Send a public ssh key (e.g. {{path|~/.ssh/id_dsa.pub}})
    Line 107: Line 142:
    If you are contributing to an application that is not yours, it is a good idea to first submitting your coding as patches to the author and let him apply them. If the author is not maintaining his application, you might become the new maintainer...
    If you are contributing to an application that is not yours, it is a good idea to first submitting your coding as patches to the author and let him apply them. If the author is not maintaining his application, you might become the new maintainer...


    Although there are few restrictions on repository commit rights, we expect you not to disrupt other developers' code without their consent. You must also respect the feature freezes of the release schedule (published on developer.kde.org)
    Although there are few restrictions on repository commit rights, we expect you not to disrupt other developers' code without their consent. You must also respect the feature freezes of the release schedule (published on [[Schedules]] page)


    A detailed list of rules you should follow when committing to KDE repositories are listed in the [[Special:myLanguage/Policies/SVN_Commit_Policy|KDE  Commit Policy]].
    A detailed list of rules you should follow when committing to KDE repositories are listed in the [[Special:myLanguage/Policies/SVN_Commit_Policy|KDE  Commit Policy]].


    == My app is not stable but I would like to have it in KDE ==
    == 我的应用程序还不稳定,但我想让它加入 KDE ==


    As a first step, we can put it in playground, which is essentially "kde-alpha". Develop it there and when it is ready, request that your app to be moved to the appropriate KDE package or the extragear module.
    第一步,我们可以把它放在 playground("kde-alpha")。在那里开发它,完善后,申请将应用程序移动到适当的 KDE 包或 extragear 模块。


    == I don't want to lose my SVN history. ==
    == 我不想失去我的 SVN 历史. ==


    This is no longer possible with Subversion. Maybe in the future, if the server is upgraded and allows that. Note that for git this is not an issue.
    This is no longer possible with Subversion. Maybe in the future, if the server is upgraded and allows that. Note that for git this is not an issue.


    == What is kdebindings? ==
    == 什么是 kdebindings ? ==


    It contains Qt bindings for Ruby, PHP, C# to use Qt classes with those langages, KDE bindings for  Ruby, C#, python to use KDE classes with those langages, and XParts to embed non-KDE apps as a KPart. Check the [[Special:myLanguage/Development/Languages|binding page]] of TechBase.
    它包含 Qt 的 Ruby、PHP 和 C# 绑定、KDE 的 Ruby、C# python 绑定以及让非 KDE 的应用程序作为 KPart 嵌入的 XParts。请见 TechBase 的 [[Special:myLanguage/Development/Languages|绑定页面]]


    == Does the feature freeze apply to playground? ==
    == 功能冻结是否适用于 playground? ==


    No, playground are not a released packages. The same is true for kdereview and extragear: they are not frozen and released. But if you want your app to move to a package, ask for it before the beta-release.
    不,playground 不会发布套件。kdereview 和 extragear 也是相同的:他们没有冻结和发布。但如果你希望你的应用程序转移到套件包,请在 beta 发布之前先询问。


    ==Can I have a stable and an unstable KDE on the same computer?==
    ==可以同时有稳定和不稳定的 KDE 在同一台计算机上吗?==


    Yes, check the Building 2 Versions documentation.  
    Yes, check Building KDE Software from git.kde.org video series:
    * [http://www.youtube.com/watch?v=cqnNVmJocR4 Building KDE Software from git.kde.org Part 1]
    * [http://www.youtube.com/watch?v=OBJjk5q__Cc Building KDE Software from git.kde.org Part 2]
    * [http://www.youtube.com/watch?v=SgwEnLeqsg8 Building KDE Software from git.kde.org Part 3]


    == How do I know which version of Qt/KDE I am using? ==
    == 我怎么知道我使用的 Qt/KDE 版本?==


    <tt>kde-config</tt> and all kde programs accept <tt>--version</tt> as argument.
    <span class="mw-translate-fuzzy">
    <tt>kde-config</tt> 或在所有 KDE 程序都提供了 <tt>--version</tt> 参数选项。
    </span>


    ==Qt-copy or Qt from qt.nokia.com : if one were doing a clean build of trunk, which would be preferable?==
    <span class="mw-translate-fuzzy">
    ==Qt-copy qt.nokia.com 的 Qt:应该用哪个做 trunk 建构?==
    </span>


    You can use either. They are binary compatible (forward and backward). There can be, however, a few bugfixes in qt-copy over the most recent Qt release. Especially if building from qt-copy, pay attention to the apply-patches script.
    任何一个您都可以使用。它们是二进制兼容的(往前和往后)。但 qt-copy 修正几个 Qt 最新版中的 bug。特别是从 qt-copy 建构,要注意补丁脚本。


    == How can I checkout a single directory from a SVN module? ==
    == How can I checkout a single directory from a SVN module? ==
    Line 151: Line 193:
    If you don't know the name of the directory you want to check out, you can browse websvn.kde.org to find it.
    If you don't know the name of the directory you want to check out, you can browse websvn.kde.org to find it.


    == How can I get one of the KDE application as a standalone tarball? ==
    == 如何取得其中一个 KDE 应用程序作为一个独立的压缩文件? ==


    kdesdk/scripts/svn2dist is a script to extract an application from the KDE source tree and package it as a standalone application.
    kdesdk/scripts/svn2dist 是一个从 KDE 原始码树中提取应用程序的脚本,并打包为一个独立的应用程序。


    == How do I close my own bug reports? ==
    == 如何关闭我自己的 bug 报告? ==


    If you reported a bug that is fixed in a new release of KDE but is still reported as open, you can close it. It might happen because your bug is the same as another one, or simply because the developer fixed something without noticing that it would correct your bug.
    If you reported a bug that is fixed in a new release of KDE but is still reported as open, you can close it. It might happen because your bug is the same as another one, or simply because the developer fixed something without noticing that it would correct your bug.
    Line 183: Line 225:
    In order to use SSH to access KDE servers you need to send your public key to sysadmin (at) kde (dot) org.
    In order to use SSH to access KDE servers you need to send your public key to sysadmin (at) kde (dot) org.


    == How can I monitor changes made by others? ==
    == 如何监控别人所做的更改?==


    The [https://mail.kde.org/mailman/listinfo/kde-commits kde-commits] mailinglist carries automatic notifications for all changes made in the KDE repositories. The KDE-Commits mailinglist is very high traffic. An alternative is [http://commitfilter.kde.org/ CommitFilter] which allows you to get notification for only those areas that interest you.
    [https://mail.kde.org/mailman/listinfo/kde-commits kde-commits] 邮件列表即附带 KDE SVN 仓库所有修改的自动通知。但 KDE-commits 邮件列表流量是非常高的。另一种方法是 [http://commitfilter.kde.org/ CommitFilter],它可以只通知你感兴趣的领域。


    [[Category:FAQs]]
    [[Category:FAQs]]

    Revision as of 10:30, 30 May 2013

    Other languages:

    我想要开发新的应用程序。有什么建议?

    我们都同意需要编写大量的 KDE 应用程序。但同时也有很多现有的 KDE 应用程序需要你的帮助。

    如果你想了解一下目前需要帮忙的地方,请看本页面

    在开始新的应用程序前,检查 KDE-Apps.org 上现有的应用程序,并在 kde-devel 邮件列表中进行咨询,看看是否有人已经开始类似的项目。

    我是开发人员,我要如何帮助 KDE 呢?

    尽管 Calligra 和 KDevelop 受到高度赞赏,它们只有极少数开发者,所以你可以从这里开始。提供帮助并不仅仅体现在加入 KDE 工作空间或 KDE 平台库的开发。KDE 是高度模块化的,所以你不必了解整个系统就能每次改善某个独立的方面。

    您也可以在 kde-devel 邮件列表问问是否有人需要协助。使用最新版 KDE 并且关注需要的东西。一个主题生成器?一个 konsole 计划编辑器?改善一个游戏?这些项目总是有小功能缺失。去实现它吧!

    你是熟悉或关注于特定领域吗?查看是否有相关的应用程序,可以获得您的帮助。或者自己写一个。KDE 需要更多非 geek 导向的应用程序。

    我不是开发者,我要怎样帮忙

    有大量不需要开发技术的任务。撰写应用程序评论帮助 KDE 推广(请见 kde-promo 邮件列表),帮助文件团队(请见 i18n.kde.org/doc),协助翻译(请见 i18n.kde.org),帮助过滤新增的 bug(请见 bugs.kde.org)等。

    在哪里可以找到 Konqi 龙的图像?

    一些人需要的 Konqi 龙 SDK 在 ftp.kde.org/pub/kde/devel/konqi_sdk.tar.bz2
    在这个网站还未停止更新前,它被上传到 artist.kde.org

    将来的图像在 KDE merchandise.

    贡献 KDE 需要什么样的水平?我应该学习什么?阅读什么?

    您需要了解 C++。阅读 Qt 的教学和浏览 Qt 的文件来熟悉 Qt。然后阅读 KDE 的教学和浏览架构和文件。您还可以阅读 KDE 的书籍。但你不用熟悉整个 KDE 的架构以成为 KDE 开发者。使用 KDE 的技术是很容易的,所以集中在你真正需要的,你可以以后再学习其他部分。KDE 用户基地(本站)doc.qt.nokia.com (也在您的 $QTDIR/doc/html) 是宝贵的资源,要善用它们。然后浏览原始码,寻找范例目录,看看其他应用程序的写法。读写程序代码是最好的学习方法。

    如何从 KDE git 或 SVN 仓库获取 KDE 软件?

    参阅开始页面的"从源代码编译和运行KDE软件"。

    可以在线访问 KDE 源码吗?

    可以

    我的 .subversion/config 应该怎样配置?

    [miscellany]
    global-ignores = *.moc *.moc.cc *.moc.cpp config.log config.status \
    config.cache *.gmo .deps .libs SunWS_cache *.lo *.la *.rpo *.la.closure \
    *_la_closure.cpp *_la_closure.cc *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp \
    *.all_C.C *.all_cxx.cxx *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp \
    *_meta_unload.C *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in \
    Makefile.calls.in Makefile.rules Makefile.calls autom4te.cache *.kidl \
    *.o *.lo *.la #*# .*.rej *.rej *.pyc
    

    让 svn diff 忽略空白并打印函数名:

    [helpers]
    diff-cmd = /usr/local/bin/_svndiff
    

    And to make svn diff ignore whitespace, and print function names:

    [helpers]
    diff-cmd = /usr/local/bin/_svndiff
    

    /usr/local/bin/_svndiff 中加入:

    #!/bin/sh
    exec /usr/bin/diff -b -u -p "$@"
    

    #!/bin/sh
    exec /usr/bin/diff -b -u -p "$@"
    

    不要忘了将 /usr/local/bin/_svndiff 设置为可执行。

    我想将应用程序加到 KDE

    有三个要求:

    • 您的应用程序必须使用最新版本的 KDE 编译(SVN trunk)。
    • 您的应用程序必须是稳定的。
    • 您的应用程序必须得到维护。你可能会得到大量的 bug 报告和愿望。人们期待你修复 bug 和实现有意义的愿望。

    在 KDE 内部还是外部进行开发比较好?

    核心开发者 Waldo Bastian 在邮件中解释:

    成为 KDE 的一份子,意味着你必须与他人一起工作。合作带来了好处,但同时也带来了责任。

    其中一些的优点是:你的程序代码会出现在所有发行版、人们可能会解决您的 bug、你可以得到免费的翻译和文件、你会得到大量的 bug 报告。

    另一方面是缺点和责任:你将不得不为你的工作,与其他开发者沟通、其他人可能更改您的程序代码、你必须尊重发行冻结、你会得到极多的 bug 报告,人们期望你解决这些问题以及(what are they smoking?)维护你的程序代码。

    你不能只选择优点,而忽略了随之而来的责任,它们是完整一体的,两者都要或都没有。

    一般来说,应该是软件的作者,选择把他的应用程序放进KDE的软件仓库。我们通常只有在作者发出请求时才把软件放在 KDE 仓库。反过来说,如果作者希望在外部开发他的应用程序,是他的权利。除非是应用程序的工作团队分裂,否则因为开发方式改变而 fork 应用程序是没有任何意义的。

    ...您把程序代码以开源授权放在 KDE 仓库就相当于同意整个世界,特别是KDE,使用您的程序代码。KDE 将斟酌使用此权利,以保护 KDE 的利益,即使违背作者当下的意愿。

    知道这个是重要的,但不要害怕。通常,事情进展得很好。在五年里,这仅仅发生了一次:一个开发者把他的作品保留在 KDE 中,尽管他想移除它。

    如何获得 KDE 仓库的写权限?

    作出贡献 > 获得一个 KDE 贡献者帐号 中查看全文。

    Go to KDE Identity, fill out the form and describe why you need write access. Make sure to specify your full name and e-mail address.

    Please also include the name of your bugs.kde.org account, if non-existent please create one so that it can be given usual developer rights. Closing bugs.kde.org reports with keywords in commit comments only works if the email address of your KDE Identity and bugs.kde.org accounts match. You can change your bugs.kde.org address in the Bugzilla user settings.

    Git requires use of an ssh key, and new accounts for SVN must also choose the svn+ssh protocol. Send a public ssh key (e.g. ~/.ssh/id_dsa.pub)

    See also #How do I create a SSH key?

    If you are contributing to an application that is not yours, it is a good idea to first submitting your coding as patches to the author and let him apply them. If the author is not maintaining his application, you might become the new maintainer...

    Although there are few restrictions on repository commit rights, we expect you not to disrupt other developers' code without their consent. You must also respect the feature freezes of the release schedule (published on Schedules page)

    A detailed list of rules you should follow when committing to KDE repositories are listed in the KDE Commit Policy.

    我的应用程序还不稳定,但我想让它加入 KDE

    第一步,我们可以把它放在 playground("kde-alpha")。在那里开发它,完善后,申请将应用程序移动到适当的 KDE 包或 extragear 模块。

    我不想失去我的 SVN 历史.

    This is no longer possible with Subversion. Maybe in the future, if the server is upgraded and allows that. Note that for git this is not an issue.

    什么是 kdebindings ?

    它包含 Qt 的 Ruby、PHP 和 C# 绑定、KDE 的 Ruby、C# 和 python 绑定以及让非 KDE 的应用程序作为 KPart 嵌入的 XParts。请见 TechBase 的 绑定页面

    功能冻结是否适用于 playground?

    不,playground 不会发布套件。kdereview 和 extragear 也是相同的:他们没有冻结和发布。但如果你希望你的应用程序转移到套件包,请在 beta 发布之前先询问。

    可以同时有稳定和不稳定的 KDE 在同一台计算机上吗?

    Yes, check Building KDE Software from git.kde.org video series:

    我怎么知道我使用的 Qt/KDE 版本?

    kde-config 或在所有 KDE 程序都提供了 --version 参数选项。

    Qt-copy 或 qt.nokia.com 的 Qt:应该用哪个做 trunk 建构?

    任何一个您都可以使用。它们是二进制兼容的(往前和往后)。但 qt-copy 修正几个 Qt 最新版中的 bug。特别是从 qt-copy 建构,要注意补丁脚本。

    How can I checkout a single directory from a SVN module?

    Checkout the top-level dir with 'svn co -N /modulename', 'cd modulename', 'svn up admin' to get the admin/ dir and then finally checkout the dir you want with 'svn up subdir'

    For instance, to get only reaktivate from playground/utils: svn co -N /playground/utils; svn up reaktivate Then compile as usual.

    The same answer applies to the question "How do I get a single language out of kde-i18n?".

    If you don't know the name of the directory you want to check out, you can browse websvn.kde.org to find it.

    如何取得其中一个 KDE 应用程序作为一个独立的压缩文件?

    kdesdk/scripts/svn2dist 是一个从 KDE 原始码树中提取应用程序的脚本,并打包为一个独立的应用程序。

    如何关闭我自己的 bug 报告?

    If you reported a bug that is fixed in a new release of KDE but is still reported as open, you can close it. It might happen because your bug is the same as another one, or simply because the developer fixed something without noticing that it would correct your bug.

    You can do that from your Subversion commit. To do so, append to your commit message a line like this:

    BUG: XXXXX where XXXXX is the bug report you want to close. If the report you're closing is adding a new feature, you can use FEATURE instead of BUG.

    Managing a bug list is a huge task for the developers and they usually have a lot of bugs listed, some being fixed already without their knowledge, some being unreproducible, some without enough information to be corrected, etc. If you can help by managing and updating the list of outstanding bugs, you will be gladly welcome. And you will receive an even happier welcome if you provide a patch.

    How do I create a SSH key?

    SSH makes use of two keys: a private key and a public key. You should keep the private key secret at all times and only place it on machines over which you have direct control. Public, shared, and community machines are not suitable environments to store SSH private keys. Take action to help prevent theft of your SSH private key data. Setting a password on your SSH private key will help reduce the risks involved with private key theft.

    Generate a key pair for each major location you work from. This helps to reduce the impact when your key gets stolen. When someone obtains access to your private key, your key can be abused in attempts to compromise KDE servers. Well known open source projects have been compromised this way in the past, YOU must help us to make sure that this doesn't happen with KDE servers as well. For that reason it is important to notify sysadmin (at) kde (dot) org immediately when you notice that someone may have had access to your private key for example when a computer on which it was stored has been hacked or infected with a virus, worm or trojan.

    If you choose to make a backup of your SSH private key data, please ensure that any such backup is stored in a secure manner as well.

    For the practical part, the following command can be used to generate a SSH private/public key pair with ssh-keygen -t dsa This will create a private key as ~/.ssh/id_dsa and a public key as ~/.ssh/id_dsa.pub.

    There are times when you may want to use a key of a different name to the default, perhaps to use separate keys for different projects. To let SSH know which key you want to use for KDE.org, you can keep a list of servers and their corresponding keys in ~/.ssh/config. For example,

    Host svn.kde.org 
    IdentityFile ~/.ssh/id_dsa_kde

    In order to use SSH to access KDE servers you need to send your public key to sysadmin (at) kde (dot) org.

    如何监控别人所做的更改?

    kde-commits 邮件列表即附带 KDE SVN 仓库所有修改的自动通知。但 KDE-commits 邮件列表流量是非常高的。另一种方法是 CommitFilter,它可以只通知你感兴趣的领域。