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