1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
---
title: 使用CVS獲取Mozilla源代碼
slug: Mozilla/Developer_guide/Source_Code/CVS
translation_of: Mozilla/Developer_guide/Source_Code/CVS
---
<div class="note">Tips: This document descibes how to get source code for older versions of the code, Gecko 1.9.0, Firefox 3 or earlier, and older versions of NSS and NSPR. Development for Gecko 1.9.1/Firefox 3.5 and beyond, and recent versions of NSS and NSPR, uses the <a class="internal" href="/en-US/docs/Developer_Guide/Source_Code/Mercurial" title="En/Developer Guide/Source Code/Mercurial">Mercurial</a> source code control system.</div>
<div class="warning">
<p>到 七月 2015, 在Mozilla 上CVS 服務不會有長時間的操作.為訪問CVS 存檔, 請看 <a href="https://blog.mozilla.org/it/2015/07/28/vcs-decom-status/">the blog post</a> 宣告改變.</p>
</div>
<p><span class="outputBox-2liU7_0">那些正在進行積極開發的人可以使用 CVS 查看最新的源代碼。如果您計劃提供補丁並修復錯誤,這是最好的方法,因為它可以讓您獲得最新的更新並將它們與您自己的更改合併。</span></p>
<p><span class="outputBox-2liU7_0">如果要編譯產品以供發布,通常下載 Mozilla 源代碼 tarball</span></p>
<h3 id="Getting_Started" name="Getting_Started">開始</h3>
<p><span class="outputBox-2liU7_0">CVS 表示 “並發版本控制系統”。要了解有關 CVS 的更多信息,請訪問</span></p>
<p><a href="https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html">支持文檔</a></p>
<p>所有人可以檢查 (也被認爲是 "拉" 或是 "下載") 通過 CVS, 但只有一個確定的人擁有能力記錄 (創建改變, 也被認爲是 "提交"). 那些人是模塊所有人以及他們的代表. 閲讀我們的檔案在 <a class="external" href="https://www.mozilla.org/hacking/">hacking mozilla</a> 去找到怎樣獲得能力記錄. 你也許也想閲讀關於 <a href="https://developer.mozilla.org/en/Using_SSH_to_connect_to_CVS">通過SSH連接CVS</a>.</p>
<h4 id="Requirements" name="Requirements">必選</h4>
<p>檢查原始碼需要運行 <a class="external" href="http://www.nongnu.org/cvs/">CVS</a> 1.11 及其更新版本. CVS伺服器不適用于1.12.13 以及懸挂的替代結果, 雖然 1.12.9 知道如何工作. 而且, 你必須利用 <a class="external" href="https://www.gnu.org/software/make/">GNU make</a> 檢查以及構建 Mozilla. 沒有其他的 “make” 程式是可接受的. 在 Windows, mac 以及合格的 GNU 系統 (比如 GNU/Linux), 使用 "make" 運行 GNU make; 在許多的 非 GNU unixes (比如 Solaris, etc.), 使用 "gmake".</p>
<h3 id="CVS_Client_Settings" name="CVS_Client_Settings">CVS 用戶端設置</h3>
<p>"cvsroot" (倉庫驗証字符串) 用於匿名訪問 Mozilla CVS 是</p>
<pre class="eval"><a class="link-mailto" href="mailto::pserver:anonymous@cvs-mirror.mozilla.org" rel="freelink">:pserver:anonymous@cvs-mirror.mozilla.org</a>:/cvsroot
</pre>
<p>如果你使用圖形化 CVS 用戶界面, 使用後面的服務器數據:</p>
<ul>
<li><strong>host</strong>: "cvs-mirror.mozilla.org"</li>
<li><strong>repository path</strong>: "/cvsroot"</li>
<li><strong>user</strong>: "anonymous"</li>
<li><strong>connection type</strong>: pserver</li>
<li><strong>port</strong>: default (2401)</li>
</ul>
<h3 id="Selecting_a_Project_to_Pull" name="Selecting_a_Project_to_Pull">選擇一個項目 Pull</h3>
<p>由於幾個不同的應用程式是從一個相同的基礎源代碼構建而成, 你必須選擇哪一個程式在命令行上使用 <code>MOZ_CO_PROJECT</code> 變量來檢查. 當他將要檢查實際源代碼時, 信息需要支持。 (見適當的<a href="#Checkout">checkout</a> <a href="#Checkout_2">section</a> 之下, 你應該根據分支進行檢查). 可能性選項包括以下内容:</p>
<p> 检查以上所有项目的源代码,以及一些附加的实用程序代码</p>
<dl>
<dt>browser </dt>
<dd>獨立的 ”Firefox" 瀏覽器</dd>
<dt>mail </dt>
<dd>獨立的 “Thunderbird” 郵件/新聞 客戶端</dd>
<dt>suite </dt>
<dd>傳統的 ”Mozilla“ SeaMonkey 瀏覽器套裝, 郵件/新聞, composer, 與其他應用程式.</dd>
<dt>minimo </dt>
<dd>獨立的小設備瀏覽器.</dd>
<dt>composer </dt>
<dd>獨立的 HTML composer.</dd>
<dt>calendar </dt>
<dd>獨立的 "Sunbird" 日曆 應用.</dd>
<dt>xulrunner </dt>
<dd>下一代 XUL 應用啓動器.</dd>
<dt>camino </dt>
<dd>“Camino” Macintosh 本地瀏覽器</dd>
<dt>all </dt>
</dl>
<p>Multiple projects can be specified with commas: <code>MOZ_CO_PROJECT=suite,browser,xulrunner</code>.</p>
<p><strong>Note</strong> that if you are using a custom <code><a href="/en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File" title="en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File">.mozconfig</a></code> file, you can also specify <code>MOZ_CO_PROJECT</code> there, instead of including it on the command line.</p>
<h3 id="Checking_Out_a_New_Source_Tree" name="Checking_Out_a_New_Source_Tree">Checking Out a New Source Tree</h3>
<h4 id="Check_Tinderbox" name="Check_Tinderbox">Check Tinderbox</h4>
<p>Before pulling a tree, you should always check the appropriate <a href="/en/Tinderbox" title="en/Tinderbox">Tinderbox</a> to make sure that the codebase is not broken. If there are red tinderboxes, it is usually advisable to wait until they are green before pulling a tree.</p>
<h4 id="Branch_HEAD" name="Branch_HEAD">Branch HEAD</h4>
<p>To check out a new source tree from scratch, get the <code>client.mk</code> file which contains makefile instructions which are used to pull the rest of the tree:</p>
<pre class="eval">$ cvs -d <a class="link-mailto" href="mailto::pserver:anonymous@cvs-mirror.mozilla.org" rel="freelink">:pserver:anonymous@cvs-mirror.mozilla.org</a>:/cvsroot co mozilla/client.mk
</pre>
<p>Note: if you have already set up a <code><a href="/en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File" title="en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File">.mozconfig</a></code> file, you may also need to check out the following files:</p>
<dl>
<dt>Firefox </dt>
<dd>
<pre>cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/config/mozconfig</pre>
</dd>
<dt>Thunderbird </dt>
<dd>
<pre>cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/mail/config/mozconfig</pre>
</dd>
</dl>
<p>{{ Note("The last version of Thunderbird on the HEAD was a post-3.0a2 nightly build. The last version of SeaMonkey on the HEAD was a 2.0a1pre nightly build. No further development of Thunderbird or SeaMonkey is taking place on the HEAD of CVS") }}</p>
<h4 id="Specific_Branch" name="Specific_Branch">Specific Branch</h4>
<p>If you want to check out the source code of a specific <a class="external" href="https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/dag.html#creating-dag-branches">CVS branch</a>, use</p>
<pre class="eval">$ cvs -d <a class="link-mailto" href="mailto::pserver:anonymous@cvs-mirror.mozilla.org" rel="freelink">:pserver:anonymous@cvs-mirror.mozilla.org</a>:/cvsroot co -r BRANCH mozilla/client.mk
</pre>
<p>instead. To, for example, pull the Firefox 2.0/Thunderbird 2.0/SeaMonkey 1.1 development branch, replace BRANCH above with MOZILLA_1_8_BRANCH. For available branch tags in Mozilla, see <a href="/en/CVS_Tags" title="en/CVS_Tags">CVS Tags</a>.</p>
<p>The information on pulling project specific <code>.mozconfig</code> files as listed in the <a href="#Branch_HEAD">previous section</a> apply to other branches than HEAD as well of course.</p>
<h4 id="Checkout" name="Checkout">Checkout</h4>
<p>After having chosen the correct branch, run:</p>
<pre class="eval">$ cd mozilla
$ make -f client.mk checkout MOZ_CO_PROJECT=<em>option,option</em>
</pre>
<p>As mentioned above, if you are using a custom <code>.mozconfig</code> file where you have already specified the <code>MOZ_CO_PROJECT</code> variable, you do not need to repeat it here on command line.</p>
<div class="note">Always use <code>client.mk</code> to checkout the Mozilla sources: do not check out the <code>mozilla/</code> module directly. Various subprojects such as NSS, NSPR, and LDAP C SDK are pulled from stable release tags, even when regular mozilla development occurs on the trunk.</div>
<h4 id="Specific_Time" name="Specific_Time">Specific Time</h4>
<p>If you want to check out the source code as it was at a specific time you can use the MOZ_CO_DATE variable. For example <code>MOZ_CO_DATE="20 Oct 2006 17:00 PDT"</code>.</p>
<p>This can either be added to your <code><a href="/en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File" title="en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File">.mozconfig</a></code> file, or specified on the command line, such as</p>
<pre class="eval">$ cd mozilla
$ make -f client.mk checkout MOZ_CO_DATE="20 Oct 2006 17:00 PDT" MOZ_CO_PROJECT=<em>option,option</em>
</pre>
<h3 id="Changing_the_Source_Tree_to_a_Different_Branch" name="Changing_the_Source_Tree_to_a_Different_Branch">Changing the Source Tree to a Different Branch</h3>
<h4 id="Branch_HEAD_2" name="Branch_HEAD_2">Branch HEAD</h4>
<p>In order to update a source tree (be it branch HEAD or a specific branch) to latest branch HEAD, first run:</p>
<pre class="eval">$ cd mozilla
$ cvs up -A client.mk
</pre>
<p>The -A option removes any "sticky branch" information, which leads to the effect that the tree is updated to HEAD.</p>
<h4 id="Specific_Branch_2" name="Specific_Branch_2">Specific Branch</h4>
<p>To update a source tree which was pulled from a specific branch, start with</p>
<pre class="eval">$ cd mozilla
$ cvs up -r BRANCH client.mk
</pre>
<p>instead. Replace BRANCH by the tag of the branch you want to update.</p>
<h3 id="Updating_a_Source_Tree" name="Updating_a_Source_Tree">Updating a Source Tree</h3>
<p>To update your source tree simply do the following:</p>
<pre class="eval">$ make -f client.mk checkout MOZ_CO_PROJECT=<em>option,option</em>
</pre>
<p>As always, if you use a custom <code>.mozconfig</code> file where <code>MOZ_CO_PROJECT</code> is already defined, you do not need to repeat it on command line.</p>
<h3 id="Creating_a_Diff_File" name="Creating_a_Diff_File">Creating a Diff File</h3>
<p>In order to create a diff of a single local file against the current file in the repository, use:</p>
<pre class="eval">$ cvs diff -u8p FILENAME
</pre>
<p>See <a href="/en/Creating_a_patch" title="en/Creating_a_patch">Creating a patch</a> for more information.</p>
<h3 id="Converting_a_Downloaded_Source_Tree" name="Converting_a_Downloaded_Source_Tree">Converting a Downloaded Source Tree</h3>
<p>Downloaded source trees from mozilla.org (<a href="/En/Developer_Guide/Source_Code/Downloading_Source_Archives" title="en/Mozilla_Source_Code_(HTTP//FTP)">source tarballs</a>) are already set up with CVS information, like a normal checkout. You can update these trees like normal trees to the latest code, without special action. See previous section on how to update a source tree.</p>
<p><span class="comment">interwiki link</span></p>
<p> </p>
|