九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
CVS 實(shí)踐: 配置CVSNT 服務(wù)器自動(dòng)檢查注釋
         雖然有點(diǎn)機(jī)械, 但自動(dòng)的, 強(qiáng)制的永無遺漏地檢查CVS的提交注釋還是有效的.

配置CVS服務(wù)器的這一功能有一些小地方需要注意.

1. 軟件版本
cvsnt: Concurrent Versions System (CVSNT) 2.5.01 (Travis) Build 1976 (client/server)
tortoise cvs: 1.8.31
WinCVS: 2.0.2.4(build 4)

2. 在CVSROOT目錄下的 commitinfo 文件中, 這樣指定
^Relative_Project_Path C:/ActivePerl/bin/perl.exe "D:/ABC/CVSROOT/check_comment.pl" -comment %m

這里%m 是由CVS服務(wù)器在調(diào)用perl命令行之前替換為你提供的注釋
其中Relative_Project_Path 要使用/而不是\, 既使是在windows系統(tǒng)上. 這是個(gè)正則表達(dá)式.

3. 如果使用命令行
cvs ci -m "" file.txt
則上面的%m 不會(huì)產(chǎn)生一個(gè)參數(shù). 這樣 check_comment.pl 就只看到一個(gè)參數(shù)(@ARGV 只一個(gè)元素), 這在寫腳本時(shí)要注意.
但命令行上使用
cvs ci -m " " file.txt
就可以使得%m 產(chǎn)生一個(gè)參數(shù), 其內(nèi)容為一個(gè)空格. 所以check_comment.pl 不僅要檢查沒有參數(shù)的情況, 還要檢查參數(shù)為全空白字符(包括<TAB>換行等)的情況.

4. 但Tortoise CVS中, 僅輸入空格或換行提交, CVS服務(wù)器端仍得不到%m 對(duì)應(yīng)的參數(shù). 這說明Tortoise CVS在客戶端就作了處理. 同樣, 下面的輸出說明 Tortoise CVS的輸出窗口中給出的命令行并不能直接copy到DOS 命令窗口中執(zhí)行:


看綠線劃出的-m 參數(shù), 后面沒有跟 "", 從命令行的角度看, MainApp.cs 會(huì)作為注釋的內(nèi)容而不是被提交的文件名. 不能簡(jiǎn)單地相信Tortoise CVS輸出窗口中給出的命令.

上面是檢查注釋為空時(shí)提交失敗的輸出, 故意弄的醒目一些.

5. 使用WinCVS

WinCVS 會(huì)在你根本不輸出注釋時(shí), 自動(dòng)產(chǎn)生一個(gè) "no message"作為注釋送給cvs 服務(wù)器, 所以檢查注釋的腳本還得額外地檢查WinCVS的這種縱容程序員不寫注釋的行為. 因?yàn)檫@個(gè)原因, WinCVS永遠(yuǎn)不會(huì)產(chǎn)生無注釋的提交.

另外, 在perl腳本中*********與下面的Empty or blank... 文本之間我僅有一個(gè)空行, 但WinCVS卻在處理輸出時(shí), 額外地為每行都添加一個(gè)空行. 這一點(diǎn)實(shí)在很惱人.

不過WinCVS會(huì)對(duì)送到標(biāo)準(zhǔn)錯(cuò)誤輸出的內(nèi)容使用黃色, 這一點(diǎn)比Tortoise CVS好.

在既輸出到標(biāo)準(zhǔn)輸出, 也輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出時(shí), 即使你在perl腳本中先輸出到STDOUT, 再即使你還使用了$| = 1來強(qiáng)制刷新到設(shè)備, WinCVS還是會(huì)先顯示錯(cuò)誤消息, 之后才是送至STDOUT的消息.

如果象下面這樣散布著對(duì)STDOUT, STDERR的輸出:

local $| = 1;
  print "STDOUT 1\n";
  print STDERR "1234";
  print "STDOUT 2\n";
  print STDERR "xyz\n";


則在WinCVS的輸出窗口中, 仍然是先輸出所有的 STDERR消息, 然后才是 STDOUT消息. 但所有STDERR消息和STDOUT消息的相對(duì)順序還是能保證的.

送至STDOUT的消息也是每一行額外加一個(gè)空白行.

6. 使用命令行 cvs ci file.txt

你不指定-m 注釋, cvs會(huì)強(qiáng)制打開notepad(在windows上)讓你輸入注釋, 不要以為看到notepad中已經(jīng)有內(nèi)容就可以偷懶啥也不寫然后繼續(xù)提交, 送至服務(wù)器端的注釋仍然是空的, notepad中的既有內(nèi)容僅是模板.

這說明cvs的設(shè)計(jì)者很重視開發(fā)者對(duì)每次提交都要寫注釋.

7. [失敗經(jīng)驗(yàn)]注意 commitinfo 中的正則表達(dá)式匹配規(guī)則: 第一個(gè)匹配成功就執(zhí)行過濾程序, 其余的不檢查

^Project/src/CPP
^Project/src
對(duì)第二個(gè), 再想執(zhí)行通用的檢查就不行了, 因?yàn)镃PP目錄下的check in動(dòng)作會(huì)先找到第一個(gè)匹配的條目, 執(zhí)行相應(yīng)的命令, 不會(huì)再繼續(xù)檢查其余的條目是否匹配.

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WinCVS與CVSNT簡(jiǎn)明使用手則
搭建CVSNT環(huán)境手記
一篇CVS權(quán)限管理手冊(cè)
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服