﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Kino's Blog-随笔分类-软件评测</title><link>http://www.blogjava.net/kinoviti/category/5126.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:12:14 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:12:14 GMT</pubDate><ttl>60</ttl><item><title>Subversion 客户端 配置及简单实用</title><link>http://www.blogjava.net/kinoviti/archive/2006/01/27/29291.html</link><dc:creator>-=Kino=-</dc:creator><author>-=Kino=-</author><pubDate>Fri, 27 Jan 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/kinoviti/archive/2006/01/27/29291.html</guid><wfw:comment>http://www.blogjava.net/kinoviti/comments/29291.html</wfw:comment><comments>http://www.blogjava.net/kinoviti/archive/2006/01/27/29291.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/kinoviti/comments/commentRss/29291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kinoviti/services/trackbacks/29291.html</trackback:ping><description><![CDATA[<P class=MsoTitle style="MARGIN: 12pt 0cm 3pt"><FONT size=5><SPAN lang=EN-US><FONT face=Arial><FONT color=#0000ff>请用过subversion的朋友一起交流一下使用心得吧。</FONT><BR><BR><STRONG>Subversion </STRONG></FONT></SPAN><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">客户端</SPAN><FONT face=Arial> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">配置</SPAN></STRONG></FONT></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; TEXT-INDENT: 0cm"><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">第一章 </SPAN></SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境配置</SPAN><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件环境：</SPAN><SPAN lang=EN-US>TortoiseSVN-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chsdate IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899" w:st="on">1.2.4</st1:chsdate>.4479-svn-1.2.3.msi<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US>Windows</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）<BR></SPAN><SPAN lang=EN-US>Linux</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：还使用命令行吧</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">嘿嘿</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不过也没有谁自己的</SPAN><SPAN lang=EN-US>client</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</SPAN><SPAN lang=EN-US>Linux</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">吧</SPAN></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; TEXT-INDENT: 0cm"><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">第二章 </SPAN></SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要操作</SPAN><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%"><o:p></o:p></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何下载</SPAN><SPAN lang=EN-US>CVS – checkout</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如图中</SPAN><SPAN lang=EN-US>URL of repository </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入服务器项目名称就好。（丛</SPAN><SPAN lang=EN-US>IE</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也能看啦）<BR></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_s1026 style="MARGIN-TOP: 5.4pt; Z-INDEX: 1; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg" o:title="001"></v:imagedata><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><BR><BR><IMG height=320 alt=001.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/001.JPG" width=456 border=0><BR><BR><BR><BR><BR><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何追加新文件或者目录</SPAN> <SPAN lang=EN-US>– add</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>Subversion</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是递归追加的，省去了</SPAN><SPAN lang=EN-US>cvs</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>python</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这一步。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里的追加仅仅是在本地打标记，别忘了提交！！！<BR><BR><BR><IMG height=386 alt=007.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/007.JPG" width=498 border=0><BR></SPAN></P>
<P><SPAN style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN><o:wrapblock><v:shape id=_x0000_s1027 style="MARGIN-TOP: 3.7pt; Z-INDEX: 2; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image002.jpg" o:title="007"></v:imagedata><w:wrap type="topAndBottom"><BR></w:wrap></v:shape></o:wrapblock><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore"><BR>l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何提交修改</SPAN> <SPAN lang=EN-US>– commit</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><v:shape id=_x0000_s1028 style="MARGIN-TOP: 2.25pt; Z-INDEX: 3; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image003.jpg" o:title="003"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><BR style="mso-ignore: vglayout" clear=all></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">英文和</SPAN><SPAN lang=EN-US>CVS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一样，毕竟这</SPAN><SPAN lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个软件都有同一个“老爸”</SPAN><SPAN lang=EN-US>(</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Karl</SPAN><SPAN lang=EN-US>)</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，相近也自然。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;<IMG height=515 alt=003.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/003.JPG" width=551 border=0></o:p></SPAN><BR style="mso-ignore: vglayout" clear=all><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是不是比</SPAN><SPAN lang=EN-US>CVS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">友好（这个</SPAN><SPAN lang=EN-US>Client</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还不错么）？</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">呵呵</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但这并不是</SPAN><SPAN lang=EN-US>Subversion</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">真正的强项。<BR><BR><IMG height=500 alt=004.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/004.JPG" width=635 border=0><BR><BR><BR><BR><BR></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何撤销操作</SPAN> <SPAN lang=EN-US>– clean up / revert</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><v:shape id=_x0000_s1030 style="MARGIN-TOP: 0.3pt; Z-INDEX: 5; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image006.jpg" o:title="005"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><BR style="mso-ignore: vglayout" clear=all><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果你做了不该做的事情</SPAN><SPAN lang=EN-US>… -_-!<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么恢复就很重要了（当然了，这都是客户端的，如果已经提交了，那</SPAN><SPAN lang=EN-US>…</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就等着挨板子吧）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>Clean </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US> Revert </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很相近。都是撤销提交前进行的所有修改。可以对目录作。<BR></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p><BR><BR><IMG height=423 alt=005.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/005.JPG" width=627 border=0><BR><BR><BR><BR>&nbsp;<BR></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何明确目录下的变更项</SPAN> <SPAN lang=EN-US>– status</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><v:shape id=_x0000_s1031 style="MARGIN-TOP: 3.4pt; Z-INDEX: 6; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image008.jpg" o:title="008"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><IMG height=523 alt=008.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/008.JPG" width=707 border=0><BR><BR><BR><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">右键</SPAN> <o:wrapblock><v:shape id=_x0000_s1032 style="MARGIN-TOP: 3.4pt; Z-INDEX: 7; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left; mso-position-horizontal-relative: text; mso-position-vertical-relative: text" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image008.jpg" o:title="008"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">右键</SPAN> <o:wrapblock><v:shape id=_x0000_s1033 style="MARGIN-TOP: 3.4pt; Z-INDEX: 8; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left; mso-position-horizontal-relative: text; mso-position-vertical-relative: text" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image008.jpg" o:title="008"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还是右键。对，就是</SPAN><SPAN lang=EN-US> Check for Modifications </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这厮！</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何删除一个文件或者目录</SPAN> <SPAN lang=EN-US>– delete</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这就不说了，</SPAN><SPAN lang=EN-US>Delete </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个东东就是，<SPAN style="COLOR: red">别忘了</SPAN></SPAN><SPAN style="COLOR: red"> </SPAN><SPAN style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交！</SPAN><SPAN lang=EN-US style="COLOR: red"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何察看一个文件的或者目录的修改记录</SPAN><SPAN lang=EN-US> --- log</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;<BR></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><v:shape id=_x0000_s1034 style="MARGIN-TOP: -52.4pt; Z-INDEX: 9; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 2.85pt; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image010.jpg" o:title="009"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><IMG height=647 alt=009.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/009.JPG" width=633 border=0><BR><BR><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是看</SPAN><SPAN lang=EN-US> history </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。选</SPAN><SPAN lang=EN-US>Show Log</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就好。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何比较文件或者不同版本之间的比较</SPAN> <SPAN lang=EN-US>– diff</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如上图，得到历史版本后，就可以直接</SPAN><SPAN lang=EN-US>diff</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了，这个</SPAN><SPAN lang=EN-US>Client</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自带了</SPAN><SPAN lang=EN-US>Compare</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功能。可能不如</SPAN><SPAN lang=EN-US>BC</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">强吧，不确定。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">明确提交文件时的用户权限验证</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:wrapblock><v:shape id=_x0000_s1035 style="MARGIN-TOP: 3.7pt; Z-INDEX: 10; LEFT: 0px; VISIBILITY: hidden; MARGIN-LEFT: 0px; WIDTH: 0pt; POSITION: absolute; HEIGHT: 0pt; TEXT-ALIGN: left" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image012.jpg" o:title="006"></v:imagedata><w:wrap type="topAndBottom"></w:wrap></v:shape></o:wrapblock><BR><IMG height=408 alt=006.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/Subversion/006.JPG" width=652 border=0><BR><BR><BR><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写个代码</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容易么。都是体力啊！被人覆盖了，可不是气的嘴都歪了。所以</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">权限</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理也就顺应历史洪流，出现在</SPAN><SPAN lang=EN-US>Subversion</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中。这个图是提交时的密码输入。具体的设置请参考</SPAN><SPAN lang=EN-US>《subversion之Apache配置》</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">！</SPAN></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; TEXT-INDENT: 0cm"><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">第三章 </SPAN></SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">预设权限和使用者</SPAN><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%"><o:p></o:p></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>Subversion</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自带了一个小型的</SPAN><SPAN lang=EN-US>server</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">叫做</SPAN><SPAN lang=EN-US> svnserve </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但是他不能完成复杂的权限目录等的管理，因此我们这次借用</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">牛</SPAN><SPAN lang=EN-US>XX </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>Apache Server</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><st1:chsdate IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899" w:st="on"><SPAN lang=EN-US>2.0.53</SPAN></st1:chsdate><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN><SPAN lang=EN-US>,</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用了他的</SPAN><SPAN lang=EN-US>Apache Base Auth </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">框架。具体设置</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参见</SPAN><SPAN lang=EN-US> <SPAN lang=EN-US>《subversion之Apache配置》</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">！</SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN></P><STRONG><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">第四章 </SPAN></SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参考</SPAN></STRONG><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%"><o:p></o:p></SPAN> 
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">《使用</SPAN><SPAN lang=EN-US>Subversion</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行版本控制》</SPAN><SPAN lang=EN-US> Orilly </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中文</SPAN> </P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A href="http://172.28.25.61/voesvn/logparser/other/knowhow/html"></A></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">《</SPAN><SPAN lang=EN-US>Apache Securty</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">》</SPAN><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>HTMLPage<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ApacheGroup English</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A href="http://172.28.25.61/voesvn/logparser/other/knowhow/html"></A></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; TEXT-INDENT: 0cm"><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">第五章 </SPAN></SPAN><SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">疑问和联系者</SPAN><SPAN lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 240%"><o:p></o:p></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">kino&nbsp;<BR><BR><A href="mailto:kinoviti@gmail.co">kinoviti@gmail.co</A>m<BR>QQ:23493713</SPAN></SPAN></P><img src ="http://www.blogjava.net/kinoviti/aggbug/29291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kinoviti/" target="_blank">-=Kino=-</a> 2006-01-27 11:19 <a href="http://www.blogjava.net/kinoviti/archive/2006/01/27/29291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小探Subversion Server 之 Apache配置</title><link>http://www.blogjava.net/kinoviti/archive/2006/01/26/29277.html</link><dc:creator>-=Kino=-</dc:creator><author>-=Kino=-</author><pubDate>Thu, 26 Jan 2006 15:32:00 GMT</pubDate><guid>http://www.blogjava.net/kinoviti/archive/2006/01/26/29277.html</guid><wfw:comment>http://www.blogjava.net/kinoviti/comments/29277.html</wfw:comment><comments>http://www.blogjava.net/kinoviti/archive/2006/01/26/29277.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kinoviti/comments/commentRss/29277.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kinoviti/services/trackbacks/29277.html</trackback:ping><description><![CDATA[***************************************<BR><SPAN style="FONT-FAMILY: 宋体">关键字：Subversion,Apache,DAV</SPAN><SPAN lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 宋体">难易度：</SPAN> 简单 
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体">软件版本：subversion1.2.3<BR>apache-server 2.0.55</SPAN><SPAN lang=EN-US><BR>时间：2006-01-26<BR>Author：Kino<BR>***************************************<BR><STRONG><FONT style="BACKGROUND-COLOR: #ffffff">安装到Apache<BR></FONT></STRONG>Subversion作为CVS的次代作品，Kerl真的是煞费苦心啊。现在我们就来看看如何配置它到ApacheServer。<BR>Subversion本身有一个自带的小server就是bin下的cvsserve ，通过svn://XXXX进行访问。同时支持ssh配置。但是弱点就是这个server对于权限和用户管理很弱，对于大型项目，必须将他挂在ApacheServer这样的重磅萨巴上。<BR>[svnserve的用户文件需要修改conf下的2个文件，自己看看，很简单都有注释的，这里不说了]<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你应该得到subversion的二进制安装版，比较稳定的是1.2.3版本，这个版本对于apacheserver最低的版本要求是2.0.45 所以我们可以去apache官方站点下载2.0.55版本（最新已经是2.5了吧）。分别安装2个软件。<BR>ok,软件环境好了，那就来连接他们吧。<BR><BR><FONT color=#000080><FONT color=#0000ff>数据库连接：</FONT><BR></FONT>（如果你懒得改，那么安装软件的时候就一定要先安装ApacheServer,Subversion安装的时候会自动修改）<BR>subversion可以被看作是一个特殊的数据库（事实上也就是，呵呵FSFS 和伯克利DB）。那么就需要让Apache能够访问subversion的数据库，这就用到了module概念，我们便来修改httpd.conf文件。<BR>1。打开Apache自带的DAVmodule：去掉“LoadModule dav_module modules/mod_dav.so”前的#<BR>2。追加访问subversion用的module：（subversion安装目录bin下自带有这2个modules）<BR>LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"<BR>LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"<BR><BR><FONT color=#0000ff>权限设置：</FONT><BR>比较麻烦的东西来了。我们需要配置3个东西：<BR>1。在httpd.conf中追加&lt;Location&nbsp;&gt; 。例子如下：<BR>#配置subversion用户权限<BR>&lt;Location /mysvn&gt;<BR>&nbsp; DAV svn<BR>&nbsp; #&nbsp;http中输入&nbsp;"/mysvn/Parser" URL will map to a repository F:/SVN/repository/Parser<BR>&nbsp;SVNParentPath F:/SVN/repository/</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>&nbsp; #声明 accessfilepolicy&nbsp;文件，目的是确认Group分类和目录的访问权限<BR>&nbsp;AuthzSVNAccessFile F:/SVN/commonconf/accessfilepolicy&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>&nbsp;# only authenticated users may access the repository<BR>&nbsp;# Require valid-user<BR>&nbsp;# For any operations other than these, require an authenticated user.<BR>&nbsp;&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;<BR>&nbsp;&nbsp;&nbsp; Require valid-user<BR>&nbsp;&lt;/LimitExcept&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>&nbsp; #&nbsp;声明userauthofapachedav文件，其内容是各个用户的md5密码<BR>&nbsp; AuthType Basic<BR>&nbsp; AuthName "HFSVB AuthName"<BR>&nbsp; AuthUserFile F:/SVN/commonconf/userauthofapachedav<BR>&lt;/Location&gt;<BR><BR>2。accessfilepolicy&nbsp;文件（放在项目的conf目录下，也可随意） 如下：<BR>#this file communicate with httpd file's Location Tag ,per file&nbsp; per Tag<BR>#like svnserve.conf&nbsp; here section is [repos-name:path] or [path]<BR>#if you use SVNParentPath in httpd.conf then here you MUST use repository name<BR>#if you use SVNPath ,no problem<BR>#r&nbsp;&nbsp; read&nbsp;&nbsp;&nbsp; &nbsp;w&nbsp;&nbsp; write&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>#don't have any right to parser:/src/ of user guest<BR>#[repository名字：path] <BR>#[parser:/src/]<BR>#guest =</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>[groups]<BR>administrator = admin<BR>developer = tester<BR>everyone = admin, tester</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>#default no one has right to repos,so use * to everyone<BR>[parser:/] #根目录下所有的文件和目录，又继承关系<BR>* = r&nbsp; #默认的所有人都有 读权限<BR>@developer = rw&nbsp; #这就表明只有developer（tester）才有读写权限<BR>[ 具体的文件和内容可查阅 Orilly的《使用Subversion进行版本控制》<BR>访问 <A href="http://www.subversion.org.cn/svnbook/1.1/index.html">http://www.subversion.org.cn/svnbook/1.1/index.html</A>&nbsp; ]<BR>3。userauthofapachedav文件<BR>admin:$apr1$A45.....$WQ0RCK61I/PO4gSKt.kK60<BR>这个文件是如何生成的呢，使用apache 的bin目录下的htpasswd.exe。用法可以参照 --help的帮助。<BR>这里给一个例子吧<BR>&gt;htpasswd -cm&nbsp;C:/userauthofapachedav&nbsp; admin<BR>&gt;input password:admin123<BR>&gt;again : admin123&nbsp;<BR>具体的英文忘了。呵呵不过很简单的。<BR><BR>好了，就这么简单。祝大家开心。这只是入门。具体的操作还要靠各位自己去感受。<BR><BR>关于如何设置subversion的项目库，上边提到的orilly的书就有记载。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P><img src ="http://www.blogjava.net/kinoviti/aggbug/29277.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kinoviti/" target="_blank">-=Kino=-</a> 2006-01-26 23:32 <a href="http://www.blogjava.net/kinoviti/archive/2006/01/26/29277.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++  Test  之 RuleWizard 使用心得</title><link>http://www.blogjava.net/kinoviti/archive/2005/11/22/21007.html</link><dc:creator>-=Kino=-</dc:creator><author>-=Kino=-</author><pubDate>Tue, 22 Nov 2005 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/kinoviti/archive/2005/11/22/21007.html</guid><wfw:comment>http://www.blogjava.net/kinoviti/comments/21007.html</wfw:comment><comments>http://www.blogjava.net/kinoviti/archive/2005/11/22/21007.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/kinoviti/comments/commentRss/21007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kinoviti/services/trackbacks/21007.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>C++&nbsp; Test&nbsp; 之 RuleWizard 使用心得</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN><SPAN lang=EN-US><BR>***************************************<BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关键字：</SPAN><SPAN lang=EN-US>C++Test&nbsp;&nbsp;&nbsp; Rulewizard&nbsp;&nbsp;&nbsp; Python<BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">难易度：中</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件版本：</SPAN><SPAN lang=EN-US>Parasoft<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>C++ Test<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>6.5<BR>时间：2005-11-23<BR>Author：Kino<BR>********************************<BR><SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><STRONG>一.介绍一下C++Test吧（这一部分请允许我ctrl + c/v ）</STRONG></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: ˎ̥; mso-hansi-font-family: ˎ̥">是单元测试和静态分析工具，自动测试</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: ˎ̥">C</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: ˎ̥; mso-hansi-font-family: ˎ̥">和</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: ˎ̥">C</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: ˎ̥; mso-hansi-font-family: ˎ̥">＋＋类别、功能或组件，而无需编写单个测试实例、测试驱动程序或桩调用。只需点击按钮，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: ˎ̥">C++Test</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: ˎ̥; mso-hansi-font-family: ˎ̥">即会采用业内编码标准执行代码的静态分析，测试代码构造（白盒测试），测试代码功能性（黑盒测试），并保持代码完整性（回归测试）。可以巡行在</SPAN><SPAN lang=EN-US>Windows 2000/XP </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US>Linux </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US>Solaris 7, 8, 9</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台之上。她的主要功能可以参见下边的链接网页：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>http://www.superinst.com/cn/products/software_engineering/unit_testing/parasoft/ctest.html</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里我想说明的不是</SPAN><SPAN lang=EN-US>C++Test</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有多么好用，而是要说明她内置的</SPAN><SPAN lang=EN-US>RuleWizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">™定制编码机能。那么什么才是</SPAN><SPAN lang=EN-US>RuleWizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">呢？他到底能干什么？</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><STRONG>二.RuleWizard<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></STRONG></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>C++Test</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内置了</SPAN><SPAN lang=EN-US>300</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">多个静态测试项，一般的情况下其实也就够用了。但是如果有特殊的测试要求，动辄几十</SPAN><SPAN lang=EN-US>K</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的代码，用眼睛看，脑子想，太辛苦，也不“安全”。那么使用</SPAN><SPAN lang=EN-US>rulewizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定制自己的规则还是很有用的。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们首先要明确，</SPAN><SPAN lang=EN-US>rulewizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定制的是</SPAN> <SPAN style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><STRONG>不成功</STRONG></SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的情况。也就是应该被排除的。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>Rule</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的创建有</SPAN><SPAN lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">种方式，一种是手工写规则，另一种是写入需要剔除的代码，让</SPAN><SPAN lang=EN-US>rulewizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">去帮你生成规则（最好别用，弱弱的</SPAN><SPAN lang=EN-US>autocreate</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）。我这里主要重点放在自己写规则方面。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>Rulewizard</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的界面如下图：</SPAN></P></SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" align=center><BR><IMG height=666 alt=o_Rulewizard001.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/o_Rulewizard001.JPG" width=891 border=0>*******<BR><BR>图1。RuleWizard界面</P></SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">右边的就是我们写的规则。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么我们先来大概的介绍一下</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">rulewizard</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义的基本组成部分吧。（实在不太会翻译，那么就沿用英文名字了，请大家多多包涵）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">Node</FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：规则的基本组成部分，通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你可以很清楚的知道它的功能。比如表达式</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">a=b</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、变量的类型测试。。。分为：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">parentNode</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：规则中的主分支</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者次分支的主</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。内容可以是表达式、变量、函数等</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">childNode</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：规则的组成单元。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">Commands</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用来在</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Nodes</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之间建立关联关系。形象一点就是点中一个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后右键显示出的快捷菜单的上半部分。如下图：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt" align=center><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;<IMG height=190 alt=o_Rulewizard002.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/o_Rulewizard002.JPG" width=304 border=0></FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt" align=center><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;图2</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">介绍一下主要的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Command</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">Collector:</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合。这个概念更像数学中的集合而不是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Java</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的广义集合。满足一定条件的数据或者方法或者变量的全体。比如，所有被声明过的变量，<SPAN style="COLOR: red">如下图<BR></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><IMG height=75 alt=o_Rulewizard003.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/o_Rulewizard003.JPG" width=328 border=0><BR>图3</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">isDecl</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是用来返回前边的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是不是一个声明。那么</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">body</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">membervariable</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">返回了所有的包涵指定类型变量得语句（包括</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">变量付值、声明、判断等）那么这个图被理解为，所有不是声明得语句内使用的变量的集合。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没有被声明的变量，<SPAN style="COLOR: red">如下图</SPAN>。<BR></SPAN><SPAN lang=EN-US style="COLOR: red"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><IMG height=78 alt=o_Rulewizard004.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/o_Rulewizard004.JPG" width=332 border=0><BR>图4</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里的意思是所有作为声明语句的变量的集合。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么通常情况下，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">A</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合和</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">B</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合应该是相等的，也就是说所有被声明过的变量（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">B</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合内容）应该都被使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">/</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">付值</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">/</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">判断（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">A</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合的内容）。那么对于存在声明了但没有被使用的变量的特殊情况应该怎么样表示呢？</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">Node Set:Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合的处理。分为</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Union</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（合并）、</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Intersection</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（交叉）、</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Difference</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（差值，左差</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">/</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">右差）、</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Xor</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（异或）。<SPAN style="COLOR: red">如下图</SPAN>：<BR></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><IMG height=255 alt=o_Rulewizard006.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/o_Rulewizard006.JPG" width=297 border=0><BR>图5</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">满足这个规则，那么输出相应得警告信息。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">Output</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">如果满足</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">check</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">的条件，向用户返回一个消息（箭头表示）</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">三．</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">Python<o:p></o:p></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是用来给</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">rulewizard</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作补充的一个脚本语言。通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以定制一些特殊的，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">rulewizard</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不能完成的规则。</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">种方式被加入到规则中：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作为一个输出</SPAN></I><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：如果规则没有被遵守那么可以调用一个违反规则的方法。（类似于输出错误消息，只不过这里用来启动一个方法而已）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作为一个单独的方法组件</SPAN></I><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：其实就是一个方法而已。比如，以上图为例子，如果我们不判断</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">B </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> A</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的大小关系，就是想打印一下</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">A</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">B</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内容，那么就得到如下的图：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt" align=center><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;<IMG height=220 alt=r_Rulewizard005.JPG src="http://www.blogjava.net/images/blogjava_net/kinoviti/3830/r_Rulewizard005.JPG" width=339 border=0></FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图6</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其中</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Method</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内容是：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">def showCollectorContext(node,context):</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>a = context.getList("A")</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>b = context.getList("B")</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>context.report("D's Context is " + str(a) + "C's Context is " + str(b))</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么在</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">c++test</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行测试的时候就会得到输出我们需要的内容。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的语法我这里就不写了，毕竟和这篇文章的内容美关系。如果想要了解，可以去下载相关资料，我这里建议使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> Orielly</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> Python in a Nutshell </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">四．不足点</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作为一个能自定义规则的静态测试工具，不得不佩服</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">parasoft</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">兄弟们的才智。但是我觉得还有一些改善点的：（当然也不排除，已经有，但我没有发现的情况，如果各位知道请指教，谢谢先）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57.75pt; TEXT-INDENT: -36.75pt; mso-list: l0 level1 lfo1; tab-stops: list 57.75pt"><SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore"><FONT face="Times New Roman">1．<SPAN style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">pyhon</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们可以干涉规则的制定，比如，对于上例变量的确定，如果们不使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">collect<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>set</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Difference|left menus</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（就是图</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">4</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中最下的那个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">6</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">边形），而用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一样的可以对比</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">List</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。但是就像他提供的功能是静态测试一样，这里我们得到的永远是经过处理的集合。而不能把</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插入检测的循环中，不能一次得到一个变量，做点操作然后等下次的变量。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57.75pt; TEXT-INDENT: -36.75pt; mso-list: l0 level1 lfo1; tab-stops: list 57.75pt"><SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore"><FONT face="Times New Roman">2．<SPAN style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集合的概念在这里有</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">他的优点，也有缺点，如果我们想要明确的得到代码里相同变量的出现次数，那么通过现有的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">rulewizard</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是得不到的，因为我们得到的集合总是经过“合并”的、没有重复的数据结构。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57.75pt; TEXT-INDENT: -36.75pt; mso-list: l0 level1 lfo1; tab-stops: list 57.75pt"><SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore"><FONT face="Times New Roman">3．<SPAN style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就我看到的资料，所有的内置的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都没有为用户提供接口。不能够把通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的处理结果正确的传递给内置的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">node</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。感觉所有的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">python</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做成的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">node </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都是“叶子”。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57.75pt; TEXT-INDENT: -36.75pt; mso-list: l0 level1 lfo1; tab-stops: list 57.75pt"><SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore"><FONT face="Times New Roman">4．<SPAN style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术支持和官方论坛人气低到，看了浑身发抖的地步。没有交流，没有讨论。不知道是不是因为太贵的原因。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57.75pt; TEXT-INDENT: -36.75pt; mso-list: l0 level1 lfo1; tab-stops: list 57.75pt"><SPAN lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore"><FONT face="Times New Roman">5．<SPAN style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">贵！！！真的很贵。动辄就是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">4XXX$</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">-_-! </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">反正贵。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">就写这么多，希望大家多多交流，国内关于软件的新闻有不少，经验却没有，希望能给我仍的“砖”能换来大家“玉”。谢谢！</SPAN></SPAN></P><img src ="http://www.blogjava.net/kinoviti/aggbug/21007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kinoviti/" target="_blank">-=Kino=-</a> 2005-11-22 17:43 <a href="http://www.blogjava.net/kinoviti/archive/2005/11/22/21007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>