久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Gallery:使用Subversion

來自站長百科
(重定向自Gallery:Using Subversion
跳轉至: 導航、? 搜索

Subversion是什么?[ ]

Subversion是一個修正控制系統(tǒng)—使我們在進行代碼操作時可以對操作歷史進行追蹤。我們可以使用它來回顧任何時候所作的修改,并知曉曾做過什么,何時做的以及進行此操作的原因。修正控制系統(tǒng)是軟件開發(fā)中不可或缺的一部分。


如何獲取最新的代碼?[ ]

為了能夠進行這些指導操作,你需要在Unix系統(tǒng)上的一個shell帳戶。如果你使用的是Windows,你應當先參考一下我們的Windows上Subversion的相關指導。如果你使用Eclipse作為IDE的話,你需要參讀一下Eclipse中的Subversion。Mac OS X的用戶應當參看此頁內(nèi)容以加深對Subversion的了解,同時請參看一下我們的Mac上Subversion的相關指導。

我們的subversion庫被分為幾個區(qū)域。每個區(qū)都圍繞項目計劃中的某個特定的產(chǎn)品或概念?,F(xiàn)有區(qū)域如下:

一旦你選擇好了,就可以通過一個svn checkout獲得一個復本。如果你想得到最新的Gallery2代碼:

 svn checkout https://gallery.svn.sourceforge.net/svnroot/gallery/trunk/gallery2

注意,這里的URL使用的是HTTPS協(xié)議而不是HTTP。你可將此例中的"gallery2"替換為上表中的區(qū)域名稱。但請注意checkout無法覆蓋已有文件(自non-svn安裝)。 更多有關Gallery1的Subversion信息請參看Gallery1:Developer_Guide.

<toggle title="Information about "Secure connections truncated" errors"> 如果你使用正確的URL host部分(新)而非過期的(舊)話,那么自2006年10月26日之后,此來自svn命令的錯誤就不應再出現(xiàn)了:

 新:svn checkout https://gallery.svn.sourceforge.net/svnroot/gallery/trunk/....
  舊: svn checkout https://svn.sourceforge.net/svnroot/gallery/trunk/....

參見Subversion proxying的相關問題來看看Sourceforge方面的解釋及解決方案(非常感謝SF的工作?。?。

如果你仍使用過期的/舊的URL復本的話,那么請按照SourceForge SVN documentation中給出的指導進行操作。 </toggle>


如何在web瀏覽器中查看代碼?[ ]

想查看一下代碼的修正歷史嗎? http://gallery.svn.sourceforge.net/viewvc/gallery/

如何更新代碼?[ ]

如果你剛做了一個"checkout"的話,那么情況就都已確定了。但如果過了一段時間你希望獲取最新代碼的話,那么你可以打開代碼所在的文件夾并輸入:

 svn update

來保持代碼的更新。

你會看到類似這樣的回復

 U index.php
 U main.php
 U embed.php
 ...  

這將帶給你最新版本的代碼。你所接收的每份文件都會附帶一個字母,告知你Subversion該如何進行處理。這些字母在此有詳細的解釋。大部分情況下,文件將會被標記一個字母U,表示它們已進行更新了。如果你對文件進行了修改,而你所作的修改與我們所作的修改有沖突的話,就會看到文件被標記上了字母C

如果出現(xiàn)了沖突該怎么辦?[ ]

當你所作的代碼修改與Gallery團隊所作的修改發(fā)生沖突時,Subversion無法自主解決問題。在這種情況下,Subversion用字母C標記這些有沖突的文件,而且得靠你自己來解決問題。Subversion book當中有關如何解決沖突的部分十分有用。這里給出一個簡短的例子。如果你和我們同時修改了index.php你就會得到這樣的鏈接:

 C  index.php

如果進行查看的話,就會看到類似這樣的文件:

 ls -al index*
 index.php
 index.php.mine
 index.php.r1
 index.php.r2

實際的數(shù)字(r1,r2)可能會不同。較小的數(shù)字表示的是存儲庫中較老版本的文件,較大的數(shù)字則代表較新版本的文件。.mine文件是Subversion試圖合并之前的你的文件,而index.php則包含Subversion進行合并的最佳嘗試。你會在index.php文件中看到:

 <<<<<<< .mine
 /* 你所作的某修改 */
 =======
 /* Gallery所作的某修改*/
 >>>>>>> .r2

有必要在了解你自己所作修改的同時也了解一下Gallery所作的修改,然后確定如何能夠讓二者并行不悖。合并操作的難度完全取決于你所作修改的程度。

一旦你完成了文件的合并,就可以通過:

 svn resolved index.php

問題解決了。

這看起來著實有些麻煩,但并無妨害。Subversion將替你完成所有簡單的合并操作—僅僅給你留下了困難的。如果你對代碼所作的修改不是很大的話,那根本就不會發(fā)生什么沖突。


可以為我的Gallery使用Subversion嗎?[ ]

當然可以!而且這是個不錯的主意。這讓你的代碼升級變的既快又簡單了,而且你對代碼所作的任何修改都將在升級時被保留下來。如果你希望能有一個穩(wěn)定點的Gallery,我們建議你跟蹤主要發(fā)行版本的分支。這將保證在你升級更新時,僅最小且必要的修正將用于主要發(fā)行版本問題的解決(如安全性更新或致命BUG的修復)。

何為主要發(fā)行版本分支?[ ]

Subversion有一個被稱為分支(branch)的特點。這些都是獨立平行的代碼復本,它們是各行其道的。每次我們發(fā)布一個主要版本時(如2.0和2.2),我們都會為它創(chuàng)建一個分支(比如BRANCH_2_0和BRANCH_2_2)。這樣你就可以讓Subversion為你找到相應版本的代碼了。如果你希望從Subversion存儲庫中獲取Gallery2.2的話,就需要使用如下命令行:

 svn checkout https://gallery.svn.sourceforge.net/svnroot/gallery/branches/BRANCH_2_2/gallery2/ .

這將為你找出最新的Gallery2.2代碼復本。這跟你下載Gallery2開發(fā)者整合包的效果幾乎是一樣的。

如何保證一個分支的更新?[ ]

只要我們新發(fā)布一個較小版本時(比如2.1.1),我們都會更新其在主要發(fā)布版本分支中的代碼。因此當我們發(fā)布2.1.1時,2.1和2.1.1版本的所有區(qū)別都在BRANCH_2_1中。這意味著,如果你選擇的是BRANCH_2_1,你所需要做的只是一個"svn更新",然后就能更新到2.1.1版本了。此方法的效率可見一斑。在小的更新版本中,我們正嘗試做較小的, API兼容性的修改。這樣你在一個分支版本中就能夠一直進行安全的升級了。這種情況下,你不會得到任何實驗代碼。

如何轉換為下個主要發(fā)布版本分支?[ ]

假設你選擇BRANCH_2_0安裝的2.0并且做了一些較小的修改?,F(xiàn)在你希望升級到2.1.1版本的最新代碼。你可以告知Subversion轉換為BRANCH_2_1,方法如下:

 cd gallery
 svn switch https://gallery.svn.sourceforge.net/svnroot/gallery/branches/BRANCH_2_1/gallery2

現(xiàn)在你就有了2.1版本的代碼了,而且仍保留了你在2.0代碼中做出的修改。此命令發(fā)出的回復與svn更新時的回復很相似。請參考有關更新的描述部分來看看如何閱讀結果。


如果降低SVN checkout的磁盤空間占有率?[ ]

下載并解壓SvnSlim.zip,將 svnSlim 置入路徑下的一個目錄中。參見腳本頂部的指導。svnSlim創(chuàng)建一個gallery2的checkout,它省略了單元測試和語言文件(使用-L {locale}可選地包含一個語言)。checkout完成后,你可以運行svnSlim slim來移除subversion維護的所有文件的第二份復本。此方法將節(jié)省很多磁盤空間,但同時你就不能使用某些svn命令了(如svn diff),除非你使用svnSlim fat恢復這些文件。要更新一個svnSlim checkout的話,運行svnSlim update。無論是"slim"或"fat"都會運行。


如何由CVS遷移到Subversion?[ ]

基本的打算是將你gallery的CVS版本指定一個已知點,接著將其轉移到Subversion中相符的點上。完成此操作不會丟失你對代碼所作的任何修改。以下給出的指導是假設你的代碼位于gallery2目錄下的情況,請根據(jù)實際情況區(qū)別對待。

在sourceforge上更新至最新版本的CVS:

 cvs -t -d :pserver:anonymous@gallery.cvs.sourceforge.net:/cvsroot/gallery update

請注意你應當提供新的-d標志,因為SourceForge在2006年5月12日換了一組新的CVS服務器(由于硬件故障)并且修改了CVS的路徑。

接著講你的代碼移除

 mv gallery2 gallery2-cvs

然后從subversion截取相符的代碼。由CVS的頭部部分移動到Subversion主干部分:

 svn checkout -r 13519 https://gallery.svn.sourceforge.net/svnroot/gallery/trunk/gallery2

或者如果你從一個分支(如BRANCH_2_1)進行移動操作的話,你應當這樣:

 svn checkout -r 13519 https://gallery.svn.sourceforge.net/svnroot/gallery/branches/BRANCH_2_1/gallery2

接著復制你所作的修改到subversion中。此命令將全盤復制你的cvs實體到subversion實體中去,不過除了CVS dir(因為這些已經(jīng)不需要了):

 cd gallery2-cvs
 tar --exclude CVS -cf - . | ( cd ../gallery2 && tar -xvf - )

現(xiàn)在你就可以在瀏覽器中瀏覽你的gallery2目錄了,而且該怎樣運行的還是照舊那么運行。然而,SVN和CVS在處理關鍵詞方面有微妙的差別,因此要做適當修正的話你應當按如下的方法操作。但是請注意此方法僅在HEAD->trunk的情況下測試過 .. 因此如果對于分支來說的話,情況可能會有所偏差。以下的命令修復存在于所有文件中的$RCSfile$關鍵詞,然后會放棄對部分無法修復文件的修改。

 cd gallery2
 perl -pi -e 's/(\$RCSfile):.*?\$/$1\$/' `find . -name "*.php" -print -o -name "*.inc" -print -o -name "*.class" -print -o -name "*.js" -print` install/config.php-template themes/ajaxian/theme.css lib/tools/creator/*.tpl lib/tools/uml/JavaClasses.xsl
 svn revert modules/core/test/phpunit/AdminRepository* modules/picasa/classes/*ss modules/picasa/test/phpunit/*ss

現(xiàn)在通過如下操作你就能看到所作修改的列表:

 svn status

你的Gallery應該能正常運行了。要將你跟蹤的語句中的代碼更新的話,你應當:

 svn update

如何由non-svn轉為svn?[ ]

開發(fā)者信息[ ]

編輯你的 ~/.subversion/config文件并將如下語句行合并到[auto-props]部分。如此這般,在添加新文件時,svn屬性將會被合理地設定。

[auto-props]
*.php = svn:keywords=Author Id Revision;svn:eol-style=native
*.inc = svn:keywords=Author Id Revision;svn:eol-style=native
*.class = svn:keywords=Author Id Revision;svn:eol-style=native
*.tpl = svn:keywords=Author Id Revision;svn:eol-style=native
*.html = svn:keywords=Author Id Revision;svn:eol-style=native
*.css = svn:keywords=Author Id Revision;svn:eol-style=native
*.js = svn:keywords=Author Id Revision;svn:eol-style=native
*.txt = svn:eol-style=native
*.xml = svn:eol-style=native
MANIFEST = svn:keywords=Author Id Revision;svn:eol-style=native
GNUmakefile = svn:keywords=Author Id Revision;svn:eol-style=native
strings.raw = svn:keywords=Author Id Revision;svn:eol-style=native
*.po = svn:keywords=Author Id Revision;svn:eol-style=native
*.mo = svn:mime-type=application/octet-stream
*.gif = svn:mime-type=image/gif
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg

注:Gallery不會使用上述設定中的"日期(Date)"關鍵詞,因為根據(jù)區(qū)域設置的不同,輸出也會不一樣,從而可能會導致svn安裝中文件完整性檢查時出問題。

最后,如果你希望啟用auto-props的話,請記得將[miscellany]部分中的enable-auto-props設置為是(yes)

對于Windows用戶,每個用戶的config文件一般都能在如下路徑中找到:

C:\Documents and Settings\<YOUR_LOGIN>\Application Data\Subversion\config

對于其他語言版本的Windows例子,如果是德語語言的用戶,路徑就是:

C:\Dokumente und Einstellungen\<YOUR_LOGIN>\Anwendungsdaten\Subversion\config


%APPDATA% 是對應你的"Application Data"目錄的環(huán)境變量。將如下語句復制到任何Explorer窗口的地址欄中,最終將會直接打開上述例子中的文件夾,而無需在意Windows所使用的語言。

%APPDATA%\Subversion\config

如果你使用的是Windows,EclipseSubclipse Plugin以及JavaHL系結(可能還包括JavaSVN系結,不過我沒有進行過親測)的話,用此方法查找config文件也是可以的。