版本控制
無(wú)論是個(gè)人開(kāi)發(fā)還是多人合作開(kāi)發(fā),版本控制都是必不可少的。
具體什么是版本控制、為什么要進(jìn)行版本控制等基本概念,這里先不說(shuō)了。相關(guān)介紹也比較多,需要的可以先搜索了解一下。
SVN(Subversion)是最流行的一個(gè)開(kāi)源軟件代碼版本控制工具,采用服務(wù)器/客戶端架構(gòu),軟件代碼存儲(chǔ)在服務(wù)器上。不同用戶通過(guò)客戶端檢出(Checkout)或提交(Commit)代碼。
SVN的服務(wù)器端和客戶端既有命令行形式的,也有圖形界面形式的,可以根據(jù)需要自行選擇。
在LabVIEW里我們可以通過(guò)第三方插件使用SVN進(jìn)行版本控制。
本篇推送我們介紹如何使用Viewpoint TSVN Toolkit對(duì)LabVIEW軟件代碼進(jìn)行版本控制。
需要的軟件
1)Visual SVN
開(kāi)源、有圖形化界面的SVN服務(wù)器端。
下載鏈接:
https://www.visualsvn.com/downloads/
2)Tortoise SVN
開(kāi)源、圖形化界面的SVN客戶端。
下載鏈接:
https://tortoisesvn.net/downloads.html
3)Viewpoint TSVN Toolkit
LabVIEW工具包,提供在項(xiàng)目樹(shù)、工具欄、菜單項(xiàng)等位置通過(guò)Tortoise SVN訪問(wèn)SVN實(shí)現(xiàn)版本控制的集成接口。在VIPM中可以下載安裝。
軟件安裝步驟
1)安裝Visual SVN
下圖黃色區(qū)域,選擇一下代碼倉(cāng)庫(kù)(Repository)存放路徑;其他都使用默認(rèn)安裝選項(xiàng)。
2)安裝Tortoise SVN
安裝Tortoise SVN,全部使用默認(rèn)安裝選項(xiàng)。
3)安裝Viewpoint TSVN Toolkit工具包
在VIPM中找打Viewpoint TSVN Toolkit工具包,按提示安裝。
安裝好之后會(huì)彈出兩個(gè)對(duì)話框,分別點(diǎn)Yes和Apply,配置一下VI比較(Diff)和合并(Merge)工具。
Viewpoint TSVN Toolkit版本控制實(shí)操
1)創(chuàng)建代碼倉(cāng)庫(kù)
在你安裝Visual SVN Server時(shí)設(shè)置的代碼倉(cāng)庫(kù)存放路徑下創(chuàng)建一個(gè)文件夾,用來(lái)保存我們要進(jìn)行版本控制的項(xiàng)目。例如我們?cè)贑:Repositories下創(chuàng)建一個(gè)MathPlotRepo文件夾。
在MathPlotRepo文件夾上單擊鼠標(biāo)右鍵,選擇TortoiseSVN->Create repository here,會(huì)彈出下面這個(gè)對(duì)話框。拷貝一下標(biāo)記的地址。
單擊OK,創(chuàng)建好的MathPlotRepo文件夾目錄結(jié)構(gòu)如下圖。
2)導(dǎo)入LabView項(xiàng)目文件
這一步的主要目的是把我們需要進(jìn)行版本控制的項(xiàng)目導(dǎo)入到SVN中并建立起管控關(guān)系。
我們拷貝Math Plots - 2D示例文件夾到桌面上。在文件夾上單擊鼠標(biāo)右鍵選擇SVN Checkout...。URL of repository粘貼上前面復(fù)制的MathPlotRepo代碼倉(cāng)庫(kù)地址。Checkout directory選擇Math Plots - 2D根目錄。
Tortoise會(huì)提示Target folder is not empty,不用管它,繼續(xù)Checkout。
這個(gè)時(shí)候Math Plots - 2D文件夾上會(huì)有一個(gè)標(biāo)記,表示操作正常、已經(jīng)與代碼倉(cāng)庫(kù)版本一致。
注意,我們從MathPlotRepo代碼倉(cāng)庫(kù)里Checkout時(shí),代碼倉(cāng)庫(kù)里是沒(méi)有項(xiàng)目文件(VI等)的,Checkout操作只是建立了Math Plots - 2D文件夾和代碼倉(cāng)庫(kù)的版本控制“關(guān)系”。這種“關(guān)系”保存在Math Plots -2D文件夾里的隱藏文件夾.svn里。
所以,打開(kāi)Math Plots - 2D文件夾,你會(huì)發(fā)現(xiàn)里面的文件上會(huì)有藍(lán)色小問(wèn)號(hào)標(biāo)記,表示這些文件還沒(méi)有進(jìn)行版本控制。
我們也可以打開(kāi).lvproj文件,在項(xiàng)目樹(shù)里可以看見(jiàn)對(duì)應(yīng)的幾個(gè)文件上也是有問(wèn)號(hào)標(biāo)記的。
如果在項(xiàng)目樹(shù)里沒(méi)有看見(jiàn)問(wèn)號(hào),請(qǐng)把Viewpoint TSVN Toolkit設(shè)置選項(xiàng)里里Icon Overlays相關(guān)的幾項(xiàng)都勾選上。
我們需要把這些帶問(wèn)號(hào)的文件增加到代碼倉(cāng)庫(kù)中進(jìn)行版本控制。
方法有兩個(gè):
1)在文件夾里單擊鼠標(biāo)右鍵,選擇TortoiseSVN->Add,彈出下面這個(gè)對(duì)話框,批量把這些文件加入到代碼倉(cāng)庫(kù)中。
2)在LabView項(xiàng)目樹(shù)中,右鍵單擊帶問(wèn)號(hào)的文件,選擇SVN Add。
逐項(xiàng)Add之后,項(xiàng)目樹(shù)里這些文件圖標(biāo)上會(huì)顯示一個(gè),表示這些文件已經(jīng)計(jì)劃添加到代碼倉(cāng)庫(kù)中進(jìn)行版本控制。
在帶的文件上單擊鼠標(biāo)右鍵,選擇SVN Commit進(jìn)行提交操作后,這個(gè)文件就被正式加入了代碼倉(cāng)庫(kù)。
方法2這個(gè)操作有點(diǎn)麻煩,還是方法1批量操作更方便些。
方法2適用于在項(xiàng)目過(guò)程中漸進(jìn)地、單個(gè)單個(gè)地添加文件。
說(shuō)明:
在LabView項(xiàng)目樹(shù)里Add文件之后,系統(tǒng)資源管理器文件夾里的文件圖標(biāo)也會(huì)跟著變化的。在文件夾里右鍵選擇SVN Commit也可以批量提交。
完成提交之后,LabView項(xiàng)目樹(shù)里這些文件前面都加上了標(biāo)記。
3)基本版本控制操作
我們打開(kāi)Compass Plot.vi做一些修改,例如增加右邊圖表控件寬度、修改它的標(biāo)題文字。
提交 Commit
在項(xiàng)目樹(shù)里可以看見(jiàn)被修改過(guò)的文件會(huì)有個(gè)帶紅色驚嘆號(hào)的圖標(biāo),提醒你該文件已被修改、需要提交。
在文件上單擊鼠標(biāo)右鍵,選擇SVN Commit,在彈出的對(duì)話框里輸入修改備注后單擊OK,這個(gè)修改后的文件會(huì)被提交到代碼倉(cāng)庫(kù)并加上自動(dòng)更新的版本號(hào)。
回退 Revert
如果我們不想修改了,但是修改已經(jīng)被保存到當(dāng)前VI了(尚未提交),我們可以選擇Revert命令,TortoiseSVN會(huì)從代碼倉(cāng)庫(kù)中提取出最近版本的文件。
檢出 Checkout
任何可以訪問(wèn)代碼倉(cāng)庫(kù)(一般放置在服務(wù)器上)的用戶,都可以在任意位置Checkout出其中的項(xiàng)目。Checkout時(shí),選擇HEAD revison可以獲得最新的版本;選擇Revision并單擊右側(cè)的Show Log按鈕,可以根據(jù)需要選擇想要的版本。
更新 Update
其他工程師修改項(xiàng)目文件后,我們只需要右鍵選擇SVN Update就可以將文件更新到最新版本。
小結(jié)一下通常操作過(guò)程:
1)創(chuàng)建代碼倉(cāng)庫(kù)。
2)Checkout,添加項(xiàng)目文件,Commit,建立初始版本。
3)Checkout/Update,繼續(xù)開(kāi)發(fā),Commit;過(guò)程中間可能用到Revert。
SVN自動(dòng)維護(hù)Checkout、Commit、Update操作之間的版本。正常Checkout/Update,再修改,再Commit確認(rèn),代碼的最新有效版本總是可以從SVN總獲得;其它版本也可以從SVN中選擇,Commit時(shí)的描述也有助于我們區(qū)分不同版本。
建議大家試一試,從今天起SVN用起來(lái)!
假設(shè)A打開(kāi)Compass Plot.vi進(jìn)行了修改、提交;接著B(niǎo)打開(kāi)他在A提交之前Checkout的、保存在本地的Compass Plot.vi,也進(jìn)行了修改,然后B申請(qǐng)?zhí)峤恍薷牡奈募_@時(shí)候會(huì)發(fā)生什么?
B打開(kāi)文件后未進(jìn)行更新,文件已經(jīng)不是最新?tīng)顟B(tài)的了,在提交基于當(dāng)前舊狀態(tài)進(jìn)行的修改時(shí)TortoiseSVN會(huì)提示無(wú)法提交并給出原因。
此時(shí)項(xiàng)目樹(shù)中這個(gè)文件前面會(huì)有一個(gè)黃色三角驚嘆號(hào),表示當(dāng)前文件內(nèi)容與代碼倉(cāng)庫(kù)里保存的版本有沖突。
如何解決沖突呢?
SVN還有些什么功能呢?Viewpoint TSVN還有些什么操作呢?
我想這還需要一篇或者多篇推文才能說(shuō)完。
歡迎大家關(guān)注。
審核編輯:湯梓紅
-
LabVIEW
+關(guān)注
關(guān)注
1995文章
3670瀏覽量
333904 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9728瀏覽量
87437 -
開(kāi)源
+關(guān)注
關(guān)注
3文章
3632瀏覽量
43577 -
代碼
+關(guān)注
關(guān)注
30文章
4891瀏覽量
70350 -
svn
+關(guān)注
關(guān)注
0文章
32瀏覽量
8833
原文標(biāo)題:如何使用SVN進(jìn)行LabVIEW代碼版本控制
文章出處:【微信號(hào):傳感測(cè)控物聯(lián)網(wǎng),微信公眾號(hào):傳感測(cè)控物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux svn管理工具的12個(gè)命令詳細(xì)講解
如何用LabVIEW找到某一文件夾,當(dāng)前的SVN的版本號(hào)(Revision)
請(qǐng)教一下大神使用RT-Thread Studio如何進(jìn)行SVN的代碼管理呢?
SVN服務(wù)器建立使用手冊(cè)
SVN,HG,GIT命令對(duì)照
基于SVN軟件配置管理及持續(xù)集成

為什么說(shuō)Git把SVN拍在沙灘上了呢?

如何使用SVN進(jìn)行LabVIEW代碼版本控制呢?

C/c++源代碼qt軟件 svn版本管理開(kāi)發(fā)如何防泄密?

數(shù)據(jù)管理/版本控制升級(jí)指南:龍智解讀SVN痛點(diǎn)、Perforce Helix Core功能優(yōu)勢(shì)及三種遷移方法

評(píng)論