ReactOS源代码是在2004年12月30日CVS存储库。 自2005年1月1日以来,Subversion(SVN)的源代码库。

截至2016年2月,ReactOS是1.8.8使用Apache SVN版本。 ReactOS也使用ViewVCweb查看,这通常是最新的。

源代码也可以通过git(只读服务器)。


源代码的位置

下载资源,您将需要一个SVN客户机。 我们已经描述了一些SVN客户的使用下面

您还可以查看存储库中的资源在线访问我们鱼眼在一个浏览器,或浏览每日更新的交叉引用doxygen数据库。

ReactOS

操作系统本身的基本组件:

svn://svn.reactos.org/reactos/trunk/reactoshttp://svn.reactos.org/svn/reactos/trunk/reactos/

ReactOS应用程序

额外申请ReactOS(捆绑版本):

svn://svn.reactos.org/reactos/trunk/rosappshttp://svn.reactos.org/svn/reactos/trunk/rosapps/

ReactOS项目工具

额外的工具使用在ReactOS项目:

svn://svn.reactos.org/project-tools/trunkhttp://svn.reactos.org/svn/project-tools/trunk/

ReactOS网站

网站ReactOS项目的组件:

svn://svn.reactos.org/web/trunkhttp://svn.reactos.org/svn/web/trunk/

ReactOS新闻媒体

图形媒体用于代表项目:

svn://svn.reactos.org/press-media/trunkhttp://svn.reactos.org/svn/press-media/trunk/

其他地方

分支机构

这些位置通常只是暂时的,代码合并回官方源代码后,已得到改进。

svn://svn.reactos.org/reactos/branches/

SVN客户

对于Windows,推荐使用TortoiseSVN客户,很好地集成到Windows资源管理器。 还有一个颠覆捆绑的命令行接口ReactOS构建环境对于Windows。

这些客户的使用被描述为每个客户机在一个单独的文章:

提交

提交数据添加到ReactOS SVN。 使用术语数据因为它不仅限于代码,但可能包括任何其他媒体包括图标和声音。 如果提交一段代码,那么它意味着ReactOS源代码的一部分。 每一个承诺都有自己独特的编号和一个消息解释其目的。

消息

为了减少负载时更新日志需要编写的版本,这是建议提交消息格式。 总的来说,一个脚本可以运行从一个SVN版本到另一个和填充的更新日志将所有提交的一个组件到一个单独的类别。 要做到这一点,提交需要确定哪些组件(s)。

[Component Name]
-Description of change.

这将是以下(提交的一个例子约翰内斯Anderwald,r44141):

[KERNEL32]
* Don't access freed memory in GetVolumeNameForVolumeMountPointW

通知

提交时,通知几个方面。

  • 与变更在每个提交邮件发送到邮件列表ros-diffs。 他们将纯文本邮件,其中包含在这个版本的差异。

  • RosKGBIRC # reactos通知房间里的事件

  • ReactOS鱼眼webinterface也显示了去年提交的所有信息。

请求提交(写)的访问

先决条件

有一些强制性的先决条件,得到一个直接的、完整的写访问(又名“提交访问”)到主存储库:

  • 在书面英语交流能力。

  • 准备好至少披露完整的真实姓名项目的官员(如开发负责人或项目领导),并且最好披露公共访问的完整真实姓名。

  • 没有法律限制相关的开源项目贡献代码。 微软公司和子公司的员工不允许在项目工作。

申请写访问

一旦你已经开始提交补丁和新代码的项目你可以考虑应用程序。 我们宁愿不给进入的人然后再也没有让两个或三个更新。 同样的,如果你只会提交补丁,你应该一个错误在我们的文件JIRA并附上补丁文件。 然而,如果你成为一个开发人员贡献在持续的基础上,你绝对应该考虑申请写访问。

谁问

在自由节点加入ReactOS IRC频道# reactos和问。

连接到ReactOS IRC频道为更多的信息。

故障排除

SVN Update说:具有相同名称的对象已经存在

当你更新你的工作副本,你可能得到错误消息对象具有相同名称已经存在

Subversion显示错误消息,因为存储库中的目录是取代你的工作副本包含数据是未知的Subversion(本地修改你的工作副本)。 因为颠覆一切努力不造成伤害您的数据,您必须删除或移动存储库中的数据不是工作副本。

尽管这种情况不会经常发生。 你有两个选择正确解决问题:

  • 删除受影响的目录和更新你的工作副本。

  • 删除所有文件和目录的工作副本不颠覆然后再更新你的工作副本。






ReactOS source code was in a CVS repository up to December 30th 2004. Since January 1st 2005, the source code is in a Subversion (SVN) repository.

As of February 2016, ReactOS is using Apache SVN version 1.8.8. ReactOS also uses ViewVC for web viewing, which is usually up to date.

The source code is also accessible through git (read-only server).

Contents

1 Source Code Locations

1.1 ReactOS

1.2 ReactOS Applications

1.3 ReactOS Project Tools

1.4 ReactOS Website

1.5 ReactOS Press Media

1.6 Other locations

1.7 Branches

2 SVN clients

3 Commits

3.1 Messages

3.2 Notifications

4 Request commit (write) access

4.1 Prerequisites

4.2 Applying for write access

4.3 Who to ask

5 Troubleshooting

5.1 SVN Update says: Object with the same name already exists

6 Branching

Source Code Locations

To download the sources, you will need an SVN client. We have described the usage of some SVN clients below.

You can also view the sources in the repository online by visiting our FishEye within a browser, or browse through a daily updated cross-referenced doxygen database.

ReactOS

The Operating System itself with base components:

svn://svn.reactos.org/reactos/trunk/reactoshttp://svn.reactos.org/svn/reactos/trunk/reactos/

ReactOS Applications

Additional applications for ReactOS (bundled with releases):

svn://svn.reactos.org/reactos/trunk/rosappshttp://svn.reactos.org/svn/reactos/trunk/rosapps/

ReactOS Project Tools

Additional tools used inside the ReactOS Project:

svn://svn.reactos.org/project-tools/trunkhttp://svn.reactos.org/svn/project-tools/trunk/

ReactOS Website

Website components of the ReactOS Project:

svn://svn.reactos.org/web/trunkhttp://svn.reactos.org/svn/web/trunk/

ReactOS Press Media

Graphical media used for representing the project:

svn://svn.reactos.org/press-media/trunkhttp://svn.reactos.org/svn/press-media/trunk/

Other locations

svn://svn.reactos.org/reactos/trunk/documentation – Some documentation of ReactOS components (very old)

svn://svn.reactos.org/reactos/trunk/wallpaper - Wallpapers used in ReactOS Releases

Branches

These locations are just temporary and the code is usually merged back into the official source code after it has been improved.

svn://svn.reactos.org/reactos/branches/

SVN clients

For Windows, it is recommended to use the TortoiseSVN client, which nicely integrates into the Windows Explorer. There is also a subversion command-line interface bundled with the ReactOS Build Environment for Windows.

The usage of these clients is described in a separate article for each client:

TortoiseSVN

Subversion/Using TortoiseSVN

Subversion/Merging with TortoiseSVN

other

Subversion/Using the command line client

Commits

Commits are data added to the ReactOS SVN. The term data is used because it is not limited to code, but may include any other media including icons and sound. If a piece of code is committed then it means that its part of the ReactOS source code. Every commit has its own unique identification number and a message explaining its purpose.

Messages

In an effort to lessen the load when changelogs need to be written for releases, this is the proposed commit message format.  The general idea is that a script can be run from one SVN revision to another and populate the changelog by putting all commits for one component into a single category.  To do this, a commit needs to identify which component(s) it is for.

[Component Name]
-Description of change.

An example of this would be the following (commit by Johannes Anderwald, r44141):

[KERNEL32]
* Don't access freed memory in GetVolumeNameForVolumeMountPointW

Notifications

When commits are made, it makes notifications is several ways.

Mails with changes in each commit are sent to the mailing list ros-diffs. They will be plain text mails, which contain the differences in this revision.

The RosKGB IRC bot in #reactos notifies the room of the event

The ReactOS FishEye webinterface also shows the message of all the last commits.

Request commit (write) access

Prerequisites

There are a few mandatory prerequisites to getting a direct, full write access (aka "commit access") to the main repository:

Ability to communicate in written English.

Be ready to disclose a full real name to at least the project's official (e.g. development lead or project lead), and preferably disclose full real name for public access.

Have no legal restrictions related to contributing code to open source projects. Employees of Microsoft and subsidiaries are not allowed to work in the project.

Applying for write access

Once you have started submitting patches and new code to the project you can be considered for application. We would prefer not to give access to someone who makes two or three updates and then never again. Also, if you are only going to submit patches now and again, you should file a bug in our JIRA and attach the patch file to it. If, however, you become a contributing developer on a continuing basis, you should definitely consider applying for write access.

Who to ask

Join the ReactOS IRC channel on FreeNode #reactos and ask.

Read  Connect to the ReactOS IRC Channels for more information.

Troubleshooting

SVN Update says: Object with the same name already exists

When you update your working copy, you may get the error message object with the same name already exists.

Subversion displays the error message because the directory is replaced in the repository and your working copy contains data which is unknown to Subversion (Your working copy is locally modified). Since Subversion does everything it can to not cause harm to your data, you must remove or move the data which is not in the repository out of the working copy.

This scenario won't happen very often though. You have two options to correctly resolve the problem:

Remove the affected directory and update your working copy again.

Remove all files and directories in the working copy that are unknown to Subversion and then update your working copy again.