前言(譯者)
?
就個人的成長歷程來說,剛參加工作用的是 CVS ,前前后后有接近三年的使用體驗,從今年開始使用 SVN 。總的來說我更喜歡 SVN ,用起來的確很方便,例如在本地源代碼文件中加一個空格然后刪除, SVN 不會認(rèn)為該代碼文件有任何改變,而 CVS 就不會這么聰明了(不知是不是本人尚未搞懂 CVS ,汗 ~ )。
手上有個大型分布式項目,由于客戶端牽涉到 C# 編程,詢問了公司 .NET 達(dá)人,被告知 VS 可以連 SVN ,但是配置步驟復(fù)雜。我是個極其討厭復(fù)雜的人(鬼子的 YEC 項目把我郁悶了),二話不說決定就此采用 VSS ,并為 Eclipse 配置 VSS 插件!
Google 之后發(fā)現(xiàn)了 VSS Plugin項目 ,按照首頁的介紹配置了一下,還挺好用的。盡管進(jìn)行了簡單配置,但畢竟是英文,沒有母語看起來方便,同時也是為了公司其他同事,我決定翻譯成中文。
VSS Plugin version 1.6.2 for Eclipse 3.3
本團(tuán)隊提供了這個 Eclipse IDE 插件,該插件能把 VSS 操作集成到 Eclipse IDE 3.3 (Europa) 版本中。如果你愿意捐款可以在下面找到詳細(xì)信息。
最后修改日: 2007-09-09
1 開始
本插件能運行在 Eclipse 3.3 SDK RCx 和最新的 Eclipse 3.3 SDK 。它能讓用戶在 Eclipse IDE 中執(zhí)行 Microsoft Visual SourceSafe (VSS) 操作。 VSS Plugin 之前一直都支持舊版本的 Eclipse ,但是現(xiàn)在的 1.6.2 版本已經(jīng)放棄這種做法,如果你的環(huán)境和 Eclipse 3.3 不兼容,那么請選擇舊版本的 VSS Plugin 。
1.1 先決條件
? ● ??????? 運行在 Windows 98/ME/2000/XP 上的 Eclipse 3.3 SDK (Europa 版本 ) 。請注意這里需要完整的 SDK 版本。
? ● ??????? 一個得到授權(quán)和功能完整的 Microsoft Visual SourceSafe 6.0 客戶端,并最好升級到目前最新的 SP6 服務(wù)包。更具體的信息請參考 http://msdn.microsoft.com/ssafe/ ,很重要的一點是必須明白 ?Eclipse 的 VSS 插件不能提供你 Microsoft Visual SourceSafe 拷貝以及任何的授權(quán)。這個插件的操作是基于 Microsoft Visual SourceSafe 的。
? ● ??????? 該插件已經(jīng)過英文版的 VSS 測試,也應(yīng)該可以運行在其他語言版本的 VSS 上,但可能要進(jìn)行些調(diào)整,更多信息請參考 org/vssplugin/messages.properties 。當(dāng)前版本的插件使用 VSS Ole Automation API 進(jìn)行集成。
1.2 安裝
???? 1.? 從 http://sourceforge.net/projects/vssplugin/ 下載最新版本。請注意如果你用的是 WSAD 5.x 或 Eclipse 2.0 可以下載舊版本的插件,這種做法同樣適合于 Eclipse 3.0 。
???? 2.? 解壓縮 zip 包放入 eclipse 的 plugin 文件夾,同時要確保舊版本的插件已經(jīng)被卸載。
???? 3.? 重啟 Eclipse IDE 。
???? 4.? 可以這樣來檢查插件是否在運行 Help->About Eclipse Platform->Plug in Details ,上下拖拉列表就能發(fā)現(xiàn)插件是否在其中。
???? 5.? 除了上面介紹的以外,我還推薦啟用 Label Decorator 功能,這是在默認(rèn)情況下是沒有的。
1.3 捐款
我有一個 paypal 賬戶來接受捐款,如果你喜歡這個插件并愿意捐款請使用 paypal 。??(請參考http://vssplugin.sourceforge.net/提供的捐款信息。)
1.4 在主要的版本 (1.6.0) 更新中有什么新特性?
? ● ??????? 對 Compare Dialog 進(jìn)行了更新:可以讓用戶來選擇是否顯示注釋、展開樹 / 收縮樹、標(biāo)簽是否顯示。所有的操作都在上下文菜單( RosenJiang 注:就是在視圖中點擊右鍵所出現(xiàn)的菜單)中。
? ● ??????? 更新了 Team Project Set Import/Export 。
? ● ??????? 支持 3.1 RCx 。
? ● ??????? 支持 online/offline 模式,當(dāng) VSS 資源庫在離線模式不允許任何 VSS 操作,這種模式適合于在配置插件和無需訪問 VSS 資源庫的時候。
? ● ??????? 在 Check Out 視圖中支持 error/warning 修飾。
? ● ??????? 增加了對 checkout 注釋的支持,這一特性受參數(shù)選擇 (preference) 頁的 separate 選項控制。
? ● ??????? 增加了對 VSS Refresh Log 視圖的支持,該視圖展示了在執(zhí)行 Refresh 、 Update State 、 Get Latest version 操作的時候哪些文件被添加、刪除或修改了。
???????
? ● ??????? 在 compare 和 replace 視圖中,數(shù)據(jù)顯示更加合理(檢入時間、由誰提交、版本)。
? ● ??????? 增加了 VSS Info 頁對共享的支持,現(xiàn)在可以查看是否有文件被共享,以及 VSS 共享路徑。
1.5 開始上手
VSS Plugin 運行在以 Eclipse 為基礎(chǔ)的環(huán)境中。在 workspace 中的每個項目都可以獨立和統(tǒng)一掛載到某個 VSS 資源庫。如果你想掛載到不同的資源庫,那么這些項目應(yīng)該是相互獨立的。
每個項目在本地 workspace 和 VSS 之間都有一個或多個地址映射。基于這種情況,插件需要至少一個映射以便進(jìn)行操作。例如:在 workspace 有一個源代碼目錄 /java/src ,在 VSS 中所有 /java/src 下的文件都應(yīng)該被映射到 $/project-x/java/src ,那么這就是一個從 /java/src 到 $/project-x/java/src 的映射。當(dāng)然也可以使用 / 映射 $/ ,但這是很少見的例子。
如果需要可增加多個映射。插件將采用“ best mapping ”策略遞歸最長的路徑。
例如有三個映射:
??? /src/java => $/project-x/src/java
??? /src/jsp => $/project-x/webapp
/src => $/project-x/other
結(jié)果:
??? /src/java/x/y/Test.java => $/project-x/src/java/x/y/Test.java
??? /src/java/Test.java => $/project-x/src/java/Test.java
??? /src/jsp/test.jsp => $/project-x/webapp/test.jsp
??? /src/test.jsp => $/project-x/other/test.jsp
/test.jsp => 該文件不受插件管理。
如何激活插件?
1.? 為你的項目配置團(tuán)隊提供者。在某個 Eclipse 項目上點擊右鍵調(diào)出上下文菜單,接著選擇 Team->Share Project ,接著將調(diào)出選擇資源庫的向?qū)υ捒颉?/span>
2.? 選擇 VSS Configuration Wizard 并進(jìn)行適當(dāng)?shù)脑O(shè)置。“ next ”按鈕將帶領(lǐng)你進(jìn)行映射配置,如果你只需要一個映射,請點擊“ finish ”。
● ??????? Username 是用于進(jìn)行 VSS 資源庫認(rèn)證的用戶名。
● ??????? Password 是與之相應(yīng)的密碼,可以為空。
● ??????? VSS directory 是 VSS 資源庫保存 srcsafe.ini 文件的完整的絕對路徑。接著追加第一個映射。
● ??????? Source dir 是 Eclipse 中項目的路徑,是進(jìn)行所有操作的根目錄。例如你在 Eclipse 中的項目使用 /src 作為保存所有源碼的根目錄,那么你就要把那個目錄選擇到這里。這必須是有效的 Eclipse 項目目錄路徑。
● ??????? Relative mount point 是 VSS 項目(路經(jīng)),是在 VSS 資源庫中進(jìn)行所有操作的根。如果你想把源代碼放在 VSS 項目 $/web-application 中,那么該路徑就是 relative mount point 。這必須是有效的 VSS 項目路徑。
3.? 現(xiàn)在你的項目已經(jīng)被配置為使用 VSS 插件了。
4.? 如果你對某個項目點擊右鍵并從上下文菜單中選擇 Team ,那么附加功能就都可以用了。另外,上下文菜單選項非常依賴當(dāng)前這個文件的狀態(tài)。一小點問題就可能導(dǎo)致某個選項不能用,如果遇到這樣的問題最好是嘗試刷新一下,找出問題所在。在插件中出現(xiàn)的所有錯誤都能在 ” 你的 workspace”\.metadata\.log 下找到。
● ??????? Refresh ,通常是進(jìn)行一次完整的 Get Latest Version 然后再查詢 VSS 資源庫每個文件的狀態(tài)( checked out 、 existing 等等 … )。當(dāng)需要的時候,你可以用 VSS Plugin 的這個功能來完整的獲取所有文件的當(dāng)前狀態(tài)。由于要單獨查詢每個文件,這將非常耗時。
● ??????? Get Latest Version ,從 VSS 資源庫獲取最新版本。如果一個可寫的文件拷貝存在,那么在使用這個功能的時候用戶將會被詢問是否可以覆蓋本地拷貝,如果有編輯器正開著這些文件,那么都會被恢復(fù)。
● ??????? Update Status ,類似于 Refresh 功能,但不會進(jìn)行“ Get Latest Version ”操作,這是一種更快速的輕量級操作。從 1.3 版本開始本插件支持通過后臺低優(yōu)先權(quán)線程更新狀態(tài),你可以在參數(shù)選擇中啟用。
● ??????? Check Out ,從資源庫中檢出文件。如果一個可寫的文件拷貝存在,那么在使用這個功能的時候用戶將會被詢問是否可以覆蓋本地拷貝,如果有編輯器正開著這些文件,那么都會被恢復(fù)。
● ??????? Check In ,檢查哪些文件被修改了并提交到 VSS 資源庫。在 Check In 執(zhí)行之前會提示用戶保存在編輯器中開著的文件。
● ??????? Undo Checkout ,在資源庫中釋放文件。如果文件有改變,用戶將得到提示,最后回到檢出之前的狀態(tài)。所有編輯器也會在撤銷之后恢復(fù)到原來的內(nèi)容。
● ??????? Commit Changes ,提交所有本地文件并檢入當(dāng)前已經(jīng)檢出的文件。用戶將會被提示哪些文件應(yīng)該被選出來追加到資源庫。
● ??????? Synchronize with Repository ,調(diào)出平臺同步視圖來顯示所有本地文件、文件夾與 VSS 資源庫的差別。僅有 added 、 deleted 、 changed 資源才會在視圖中顯示。本地將要追加的文件會以 + (加號)顯示而需要從資源庫刪除的文件會以 - (減號)顯示。
● ??????? Add to VSS ,追加本地文件到 VSS 資源庫中。
● ??????? Delete from VSS ,從 VSS 資源庫刪除一個已經(jīng)存在的文件,同時也會刪除本地拷貝。
● ??????? Deconfigure VSS ,這個選項僅僅對項目根目錄有效,這個操作會把該項目的 VSS Plugin 功能移除。在配置被移除后需要關(guān)閉項目并重新打開以便刷新視圖。
怎樣查看 / 編輯插件設(shè)置或配置映射?
要查看插件設(shè)置需要在項目根目錄的上下文菜單中選擇 properties 選項并選擇 VSS Configuration 或 VSS Mappings 項進(jìn)行查看。對項目中每個資源都可以檢查其狀態(tài),例如它是否被映射等等。這些信息可以在上下文菜單 ->properties->VSS Info 中找到。
如何讓 scc 文件不要在導(dǎo)航視圖中顯示?
你可以在視圖右上角的過濾菜單中屏蔽掉。
怎樣支持多重檢出?
要使用多重檢出就必須在該項目的選項中激活它。
怎樣使每個文件 / 文件夾的狀態(tài)都能在項目中顯示?
可以通過這樣的手段來設(shè)置工作臺參數(shù) (workbench preference )。 Window -> Preferences -> Workbench -> Label Decorations -> 然后激活 VSS Plug in Team Decorator 復(fù)選框。
● ??????? 當(dāng)檢測到每個文件 / 文件夾已經(jīng)存在于 VSS 資源庫時將顯示一個小 ”database” 圖標(biāo)。
● ??????? 當(dāng)檢測到某些文件被檢出了就會有檢出標(biāo)識出現(xiàn)在文件名之后。
● ??????? 當(dāng)檢查到某些文件被當(dāng)前用戶檢出將會顯示一個小 ”checked” 圖標(biāo)。
● ??????? 如果檢測到某些文件狀態(tài)是未知的也會顯示一個小圖標(biāo)直到刷新完成。
● ??????? 被映射的文件夾將有一個小圖標(biāo)顯示映射的根在哪里。
● ??????? 當(dāng)本地并不知道文件是否為最新版本時將顯示小圖標(biāo)( *-icon (asterix) )。
Team Decorator 是很有用的,但是它也需要消耗額外的 CPU 資源,并將減緩 IDE 啟動的啟動速度,尤其在樹形視圖中有很多文件的時候。
還有其他的參數(shù)選擇么?
更多的參數(shù)可以在 Window -> Preferences -> Team -> VSS 中找到。當(dāng) Show number of checked out files in each folder 復(fù)選框被激活,會在文件夾名 / 包名的后面顯示檢出的數(shù)目。當(dāng)不激活 Always assume recursive refresh/get latest version on folders 復(fù)選框,在這個文件夾執(zhí)行刷新 / 獲取最新版本的時候會反復(fù)彈出對話框讓用戶確認(rèn)。
怎樣使快捷鍵有效?
通過 Window -> Customize Perspective -> Other -> 選中 VSS Plugin menu and shortcut keys 復(fù)選框這種方式來使快捷鍵有效。
快捷鍵的動作是調(diào)用當(dāng)前活動編輯器,而當(dāng)沒有活動的編輯器時則調(diào)用當(dāng)前選項。如果是為某些小改動而需要進(jìn)行頻繁的檢出 / 檢入,以這種方式瀏覽代碼是非常好的。
這里有些已知問題,當(dāng)菜單在任何編輯器活動 / 不活動之前啟動或在某些菜單選項還未開始工作時就調(diào)用它們將導(dǎo)致意想不到的錯誤。
下面是當(dāng)前版本所支持的鍵:
?? Ctrl+Alt+U -> Undo Check Out
?? Ctrl+Alt+I -> Check In
?? Ctrl+Alt+O -> Check Out
?? Ctrl+Alt+R -> Refresh
?? Ctrl+Alt+A -> Add
快捷鍵不工作了怎么辦?
這個問題可能是由于鍵綁定時和 Eclipse 平臺沖突。也可能是由于其他插件已經(jīng)用了這些快捷鍵。你可以通過修改 plugin.xml 文件來解決遇到的問題。可以在該文件的最下面參考操作步驟。
有些文件會被 VSS 插件忽略,如何解決呢?
插件目前把格式為 *.class 、 *.scc 、 .project 、 .classpath 的文件認(rèn)為是可以忽略的資源。如果要激活這些忽略的文件應(yīng)該通過 Window -> Preferences -> Team -> Ignored Resources 進(jìn)行設(shè)置。
有視圖可以查看所有已檢出的文件么?
有的,這個視圖可以通過 Window => Show View => Other => VSS => Checked Out Files 激活。對項目進(jìn)行一次完整的刷新就能找到當(dāng)前所有檢出的文件。可以使用過濾器實現(xiàn)屏蔽其他用戶的檢出文件,另外還可以使用排序進(jìn)行查看。
我做了操作后發(fā)現(xiàn)沒什么反應(yīng)怎么辦?
可以在 ” 你的工作區(qū) ”\.metadata\.log 找到 Eclipse 的日志文件查看任何異常并根據(jù)這些異常寫個 bug 報告。
可以在 VSS 中移動并重命名文件么?
在工作區(qū)中所有的重命名、刪除和移動操作都會被 VSS 插件截獲。在對 VSS 資源庫執(zhí)行這些操作之前將提示用戶。要注意這個問題,在兩個文件夾之間移動一個文件文件其實就是在目標(biāo)文件夾添加新文件并從源文件夾刪除舊文件,這樣一來所有的 VSS 歷史信息都將丟失。這是 VSS 的限制,只有在項目移動的時候才支持而并非文件,就不要問我為什么會這樣了。
我可以導(dǎo)入 / 導(dǎo)出所有的 VSS 項目設(shè)置么?
使用 Eclipse 平臺的 Team Import/Export 功能,項目已經(jīng)被配置為 VSS 支持,所以所有的映射、資源庫路徑等都可以導(dǎo)出來。
在導(dǎo)入時,如果你有項目描述文件( .project, .classpath )存儲在 VSS 中并相應(yīng)的映射到了項目根目錄,那么導(dǎo)入功能將詢問是否使用已有的項目描述文件或新建一個項目。
我推薦你使用 Eclipse Project Set Editor 插件,現(xiàn)在這個編輯器也支持 VSS 插件,感謝 Martin Zvieger 和 Dirk Baumann 提供了這個插件。
有辦法可以比較本地文件和資源庫文件之間的差別么?
同步視圖( Synchronize View )
新的資源庫同步操作將調(diào)用 Eclipse 平臺的同步視圖,顯示所有的本地文件 / 文件夾和 VSS 資源庫文件 / 文件夾之間的差別。只有被添加 / 刪除 / 修改的資源才會顯示在這個視圖中。本地需要添加進(jìn)資源庫的文件會顯示一個 +( 加號 ) 符號,而需要從資源庫刪除的文件會顯示一個 -( 減號 ) 符號。利用 Commit Changes 動作可以很方便的把你的改變提交到 VSS 資源庫,當(dāng)然這是很基本的功能,但我發(fā)現(xiàn)它很有用。
Commit Changes 動作嘗試添加所有本地文件并檢入所有已經(jīng)檢出的文件,在這期間用戶將會被提示選擇應(yīng)該添加哪些文件。最后可以很方便的提交所有改變到 VSS 資源庫了。
Compare/Merge Viewers (比較 / 融合視圖)
要比較單一文件,你應(yīng)該使用比較視圖,就是菜單的 Comapre With 選項。這將打開一個完整的對話框顯示本地和資源庫文件之間不同的地方。
?而在菜單中選擇融合操作將顯示融合視圖,有點像比較視圖,但不同的是視圖左邊的窗口是可以編輯的。
用戶可以選擇是否顯示注釋,展開樹 / 收縮樹,是否顯示標(biāo)簽。所有的動作都能在上下菜單中顯示。
求助!有些地方看起來不對,視圖沒有正確顯示,上下文菜單也沒顯示,又出現(xiàn)一些 COM 錯誤。
如果出現(xiàn)了這些問題,很有可能是出現(xiàn)了未知錯誤或把一些主要的配置弄錯了。你可以嘗試移除 .project 中的 <nature>org.vssplugin.core.VSSPluginProvider</nature> 并重啟 Eclipse 來屏蔽 VSS 插件。然后再重新配置。
另外有可能是你安裝 VSS 的地方遭到破壞。通常你看到 COMException 或注冊 GUID(registry-GUID) ,說明安裝 VSS 的地方遭到破壞。安裝最新的服務(wù)包應(yīng)該可以解決這些問題。可以從 http://msdn.microsoft.com/ssafe/ 了解更多信息。
另外,可以在 ” 你的工作區(qū) ”\.metadata\.log 找到 Eclipse 的日志文件。
這個插件似乎不能運行在 WSAD 5.1 中。
因為 WSAD 5.1 是基于 Eclipse2.1 的,所以不被支持。可以用兼容 2.0 的插件來代替。請注意!引用、轉(zhuǎn)貼本文應(yīng)注明原譯者:RosenJiang 以及出處:http://www.tkk7.com/rosen
Powered by: BlogJava Copyright © Rosen