??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲自偷自偷图片,国产亚洲Av综合人人澡精品,国产精品观看在线亚洲人成网http://m.tkk7.com/strive/category/17734.htmlzh-cnFri, 04 May 2007 04:00:57 GMTFri, 04 May 2007 04:00:57 GMT60我的|站开通了http://m.tkk7.com/strive/articles/115276.html一手的窝H?/dc:creator>一手的窝H?/author>Fri, 04 May 2007 02:25:00 GMThttp://m.tkk7.com/strive/articles/115276.htmlhttp://m.tkk7.com/strive/comments/115276.htmlhttp://m.tkk7.com/strive/articles/115276.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/115276.htmlhttp://m.tkk7.com/strive/services/trackbacks/115276.htmlhttp://www.oidn.net / http://www.oidn.cn 已经开通了..

]]>
?固定表头? 很好?http://m.tkk7.com/strive/articles/86081.html一手的窝H?/dc:creator>一手的窝H?/author>Thu, 07 Dec 2006 06:02:00 GMThttp://m.tkk7.com/strive/articles/86081.htmlhttp://m.tkk7.com/strive/comments/86081.htmlhttp://m.tkk7.com/strive/articles/86081.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/86081.htmlhttp://m.tkk7.com/strive/services/trackbacks/86081.html < html >
 
< body >
  
< div  style ="overflow:auto;height:100px;" >
     
< table  width ="100%" >
     
< TR  style ="position:relative;top:expression(this.offsetParent.scrollTop);background:navy;color:white;" >
     
< TH  nowrap > Header A </ TH >
     
< TH  nowrap > Header B </ TH >
     
< TH  nowrap > Header C </ TH >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
</ table >
  
</ div >
 
</ body >
</ html >  


]]>
天天学习才有q步http://m.tkk7.com/strive/articles/85659.html一手的窝H?/dc:creator>一手的窝H?/author>Tue, 05 Dec 2006 11:43:00 GMThttp://m.tkk7.com/strive/articles/85659.htmlhttp://m.tkk7.com/strive/comments/85659.htmlhttp://m.tkk7.com/strive/articles/85659.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/85659.htmlhttp://m.tkk7.com/strive/services/trackbacks/85659.html    对于M事情Q都要设w处地地思考,在考虑事情的时候,要顾虑到他h的利益?br />   表示反对意见的时候,不应该伤宛_他h?br />   对于事情的好坏,要有q速的辨别能力Q必要时Q作必要的让步?br />   切勿固执已见Q你要记住,你的意见只是千万U意见中的一U?br />   要有真挚仁慈的态度Q这U态度Q能够化敌ؓ友?br />   无论怎样隑֠的事Q要乐意承受?br />   最重要的,便是有温和,快乐Q和诚恳的态度?img src ="http://m.tkk7.com/strive/aggbug/85659.html" width = "1" height = "1" />

]]>
做hq是有问?/title><link>http://m.tkk7.com/strive/articles/85654.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Tue, 05 Dec 2006 10:59:00 GMT</pubDate><guid>http://m.tkk7.com/strive/articles/85654.html</guid><wfw:comment>http://m.tkk7.com/strive/comments/85654.html</wfw:comment><comments>http://m.tkk7.com/strive/articles/85654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/strive/comments/commentRss/85654.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/strive/services/trackbacks/85654.html</trackback:ping><description><![CDATA[L在反省:L不会做h。也许是太年M吧?img src ="http://m.tkk7.com/strive/aggbug/85654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-05 18:59 <a href="http://m.tkk7.com/strive/articles/85654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学数据结构遇到的 q义表问?之前没学q?/title><link>http://m.tkk7.com/strive/articles/85181.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Sun, 03 Dec 2006 06:11:00 GMT</pubDate><guid>http://m.tkk7.com/strive/articles/85181.html</guid><wfw:comment>http://m.tkk7.com/strive/comments/85181.html</wfw:comment><comments>http://m.tkk7.com/strive/articles/85181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/strive/comments/commentRss/85181.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/strive/services/trackbacks/85181.html</trackback:ping><description><![CDATA[ <p style="LINE-HEIGHT: 150%"> <font size="4"> <b>q义表的概念</b> </font> <br /> <br />     q义?ListsQ又U列?是线性表的推qѝ即q义表中放松对表元素的原子限Ӟ容许它们h其自w结构?br /><font color="#ff0000"><br /></font><b>1、广义表定义</b><br />     <b>q义?/b>是n(n?)个元素a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>i</sub>Q…,a<sub>n</sub>的有限序列?br />  其中Q?br />     ①a<sub>i</sub>--或者是原子或者是一个广义表?br />    ②广义表通常CQ?br />              Ls=( a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>i</sub>Q…,a<sub>n</sub>)?br />    ③Ls是广义表的名字,n为它?b>长度</b>?br />    ④若a<sub>i</sub>是广义表Q则U它为Ls?b>子表</b>?br />  <font color="#ff0000">注意Q?/font><br />     ①广义表通常用圆括号括v来,用逗号分隔其中的元素?br />     ②ؓ了区分原子和q义表,书写时用大写字母表示<b>q义?/b>Q用写字母表示<b>原子</b>?br />     ③若q义表Ls非空(n?)Q则a<sub>l</sub>是LS的表_其余元素l成的表(a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>n</sub>)UCؓLs的表?br />     ④广义表是递归定义?br /><font color="#ff0000"><br /></font><b>2、广义表表示</b><br /><font color="#0000ff">Q?Q广义表常用表示</font><br />  ?E=()<br />      E是一个空表,光度ؓ0?br />  ?L=(aQb)<br />      L是长度ؓ2的广义表Q它的两个元素都是原子,因此它是一个线性表<br />  ?A=(xQL)=(xQ?aQb))<br />      A是长度ؓ2的广义表Q第一个元素是原子xQ第二个元素是子表L?br />  ?B=(AQy)=((xQ?aQb))Qy)<br />      B是长度ؓ2的广义表Q第一个元素是子表AQ第二个元素是原子y?br />  ?C=(AQB)=((xQ?aQb))Q?(xQ?aQb))Qy))<br />      C的长度ؓ2Q两个元素都是子表?br />  ?D=(aQD)=(aQ?aQ?aQ??)))<br />      D的长度ؓ2Q第一个元素是原子Q第二个元素是D自nQ展开后它是一个无限的q义表?br /><br /><b>Q?Q广义表的深?/b><br />  一个表?深度"是指表展开后所含括L层数?br />  【例】表L、A、B、C的深度ؓ分别????Q表D的深度ؓ∞?br /><br /><font color="#0000ff">Q?Q带名字的广义表表示</font><br />     如果规定M表都是有名字的,Z既表明每个表的名字,又说明它的组成,则可以在每个表的前面冠以该表的名字,于是上例中的各表又可以写成:<br />①E()<br />②L(aQb)<br />③A(xQL(aQb))<br />④B(A(xQL(aQb))Qy)<br />⑤C(A(xQl(aQb))QB(A(xQL(aQb))Qy))<br />⑥D(aQD(aQD(?))<br /><br /><font color="#0000ff">Q?Q广义表的图形表C?/font><br /><b>QaQ广义表的图形表C:</b><br />     ①图中的分支l点对应q义?br />     ②非分支l点一般是原子<br />     ③但I对应的也是非分支l点?br />  <br /><b>QbQ广义表的图形Ş状划分:</b><font color="#ff00ff"><br /></font>   ①与树对应的q义表称为纯表,它限制了表中成分的共享和递归<br />   ②允许结点共享的表称再入?br />  【例】上?d),子表A是共享结点,它既是C的一个元素,又是子表B的元素;<br />   ③允讔R归的表UCؓ递归?br />  【例】上?e)Q表D是其自n的子表?/p> <p style="LINE-HEIGHT: 150%"> <font color="#0000ff">Q?Q递归表、再、纯表、线性表之间的关pLI</font> <br />      <span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><span style="mso-text-raise: -4.0pt"><img height="21" src="http://student.zjzk.cn/course_ware/data_structure/web/guangyibiao/guangy1.gif" width="237" v:shapes="_x0000_i1025" /></span></span><br />     q义表不仅是U性表的推q,也是树的推广?br /><font color="#ff0000"><br /></font><b>3、广义表q算</b><br />     ׃q义表是对线性表和树的推q,q且h׃n和递归Ҏ的q义表可以和有向?见第7?建立对应Q因此广义表的大部分q算与这些数据结构上的运类伹{?br />     在此Q只讨论q义表的两个Ҏ的基本运:取表头head(Ls)和取表尾tail(Ls)?br />     Ҏ表头、表定义可知QQ何一个非I广义表的表头是表中W一个元素,它可以是原子Q也可以是子表,而其表尾必定是子表?br />  【例?br />      head(L)=aQ?tail(L)=(b)<br />      head(B)=AQ?tail(B)=(y)<br />  ׃tail(L)是非IQ可l箋分解得到Q?br />      head(tail(L))=bQ?tail(tail(L))=()<br />  寚wIA?y)Q也可l分解?br />  <font color="#ff0000">注意:</font><br />     q义?)?())不同。前者是长度?的空表,对其不能做求表头和表q算Q而后者是长度为l的非I(只不q该表中惟一的一个元素是I)Q对其可q行分解Q得到的表头和表֝是空?)?br /></p> <img src ="http://m.tkk7.com/strive/aggbug/85181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-03 14:11 <a href="http://m.tkk7.com/strive/articles/85181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Name ?id 的区?/title><link>http://m.tkk7.com/strive/articles/85087.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Sat, 02 Dec 2006 13:04:00 GMT</pubDate><guid>http://m.tkk7.com/strive/articles/85087.html</guid><wfw:comment>http://m.tkk7.com/strive/comments/85087.html</wfw:comment><comments>http://m.tkk7.com/strive/articles/85087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/strive/comments/commentRss/85087.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/strive/services/trackbacks/85087.html</trackback:ping><description><![CDATA[name原来是ؓ了标识之用,但是现在Ҏ规范Q都用id来标识元素。但是name在以下用途是不能替代的:   <br />  1.   表单QformQ的控g名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控Ӟ比如checkbox和radioQ而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用idQ服务器是无法得到数据的。 ?<br />  2.   frame和window的名字,用于在其他frame或window指定target。 ?<br />    <br />  以下两者可以通用Q但是强烈徏议用id不要用nameQ ?<br />  锚点Q通常以前写作<a   name="myname">Q现在可以用M的元素id来指定:<div   id="myid">。 ?<br />    <br />  以下只能用idQ ?<br />  1.   label与form控g的关联,   <br />  <label   for="MyInput">My   Input</label>   <br />  <input   id="MyInput"   type="text">   <br />  for属性指定与label兌的元素的idQ不可用name替代。 ?<br />  2.   CSS的元素选择机制Q以#MyId的方式指定应用样式的元素Q不能用name替代。 ?<br />  3.   脚本中获得对象:   <br />  IE支持在脚本中直接以idQ而不是nameQ引用该id标识的对象。例如上面的inputQ要在脚本中获得输入的内容,可以直接以MyInput.value来获得。 ?<br />  如果用DOM的话Q则用document.getElementById("MyInput").valueQ如果要用name的话Q通常先得到包含控件的formQ例如document.forms[0]Q然后从form再引用nameQ注意这样得到的是经q计后发送给服务器的倹{ ?<br />    <br />  name与id的还有区别是Qid要符合标识的要求Q比如大写敏感Q最好不要包含下划线Q因Z兼容CSSQ。而name基本上没有什么要求,甚至可以用数字?br /><img src ="http://m.tkk7.com/strive/aggbug/85087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-02 21:04 <a href="http://m.tkk7.com/strive/articles/85087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下配|邮仉知 http://m.tkk7.com/strive/articles/85083.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:35:00 GMThttp://m.tkk7.com/strive/articles/85083.htmlhttp://m.tkk7.com/strive/comments/85083.htmlhttp://m.tkk7.com/strive/articles/85083.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/85083.htmlhttp://m.tkk7.com/strive/services/trackbacks/85083.html在一个多人协作的环境中,每个人提交代码后Q应该能通知其他个变化,邮g是一个最常见的方法?/p>

׃windows下不像linux一样都随机配备了sendmail{发送邮件的工具Q所以我们需要在windows上选择一Usmtp服务器,q里我用了JamesQ一个Java的开源的开源项目,实现了完整的邮gpȝ?/p>

 本教E是 Windows下Subversion配置理员指?/font>pd教程的一部分Q各个教E采用相同的目录l构和\径,有助于大安诅R?/p>

版本库根目录: d:\svnroot Q其中有project1和project2两个版本库?br />Subversion安装目录: d:\subversion

 

1Q下载安?/h3>

a. 下蝲安装JDK

因ؓJames是JavaE序Q首先你的系l必LJavaq行环境Q我们可以从Sun的官方网站下载,地址?a >http://java.sun.com/javase/downloads/index.jsp。下载直接按照默认安装即可,我选择安装的位|是D:\jdk1.5.0_09Q教E后面将会用这个\径?/p>

b. 下蝲安装James

James的官方网站是http://james.apache.org/Q我们可以在http://java.sun.com/javase/downloads/index.jsp下蝲James的服务器版本Q目前的最新版本是http://apache.justdn.org/james/server/binaries/james-2.3.0.zip?/p>

下蝲后直接解压羃p了,然后打开james-2.3.0\bin\run.batQ在@echo off后面增加下面的代码:
    set JAVA_HOME=D:\jdk1.5.0_09
然后直接q行一下run.batQ就会提C启动了邮g服务器,其中我们使用的就是smtp服务Q这说明James安装成功?/p>

c. 下蝲安装perl

我们q个教程会借用subversion官方|站提供的发送邮件脚本,是用perl~写Q所以我们需要下载perl的运行环境?a >http://www.activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca下的http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.819-MSWin32-x86-267479.msi。perl的安装位|与后面的教E无养I可以随意安装?/p>

d. 下蝲commit-email.pl.in

官方|站?a >http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/下提供了一些有用的钩子脚本下蝲Q我们下?a >http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in?/p>


2Q配|验证James

在上一节q行了run.bat后,可以看到如下的提C:

Using PHOENIX_HOME:   D:\tools\james-2.3.0
Using PHOENIX_TMPDIR: D:\tools\james-2.3.0\temp
Using JAVA_HOME:      D:\jdk1.5.0_09
Phoenix 4.2
James Mail Server 2.3.0
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled

它告诉我们可以用启动正常(不要关闭H口Q,q且可以使用telnetq行理Qؓ此,我们在一个新命o行窗口中q行Q?/p>

telnet 127.0.0.14555

注意Q这?27.0.0.1代表了我的本机地址Q如果是在局域网中,可能q里是运行James服务器的ip地址?/p>

然后出现输入用户名和密码的提C,用户名和密码都输入root卛_Q提C登陆成功后Q直接输入下面的命oQ就可以d一个帐P

adduser rocksun rocksun

完成q个操作后,我们可以用我们的邮g客户端(outlook, foxmailQ验证我们的James服务器,我想配置都不是问题,smtp和pop3服务器都输入?27.0.0.1”或q行James服务器主机的IP卛_Q用户名和密码都是rocksunQ设|smtp发送无需认证?/p>

然后可以发送一个测试邮ӞҎ上面d的用户信息,我们的邮件的目的地址? rocksun@127.0.0.1

Q发送后你在选择攉Ӟ应该能得到自己发送的邮gQ然后我们可以l进行了?h3>3Q编写钩?/h3>

剩下的工作就很简单了Q将commit-email.pl.in重命名ؓcommit-email.plQ存攑֜D:\svnroot\下,然后扑ֈ下面q一行:

my $svnlook = "@SVN_BINDIR@/svnlook";

修改为:

my $svnlook = "D:/Subversion/bin/svnlook.exe";

然后来到D:\svnroot\project1\hooks下,创徏一个post-commit.bat文gQ内容如下:

set REPOS=%1
set REV=%2
D:\svnroot\commit-email.pl "%REPOS%" "%REV%" rocksun@127.0.0.1--from daijun@gmail.com

好了Q在project1的工作拷贝里提交吧,然后看看你刚才配|的邮g客户端,有没有受到这ơ变更的邮g?/p>

 



]]>
Subversion的权限控?http://m.tkk7.com/strive/articles/85082.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:34:00 GMThttp://m.tkk7.com/strive/articles/85082.htmlhttp://m.tkk7.com/strive/comments/85082.htmlhttp://m.tkk7.com/strive/articles/85082.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/85082.htmlhttp://m.tkk7.com/strive/services/trackbacks/85082.html在阅L文之前,L定你已经知道了Subversion基本的服务器理Q知道了svnserve或Apache的配|,清楚如何讄用户和密码。关于svnserve的配|可以看我们的?a class="mostread" >Subversion快速入门教E?/a>》和?a class="mostread" >用Apache 和Subversion 搭徏安全的版本控制环?/a>》,对于一些细节情参?a >《用Subversionq行版本控制》?/a>

作ؓ一个配|管理员Q需要管理用L权限Q本文主要介l了使用Subversion的授权文件“authz-db”,同时Z叙述的清晎ͼ我首先澄清一些概c?/p>

1Q认证(AuthenticationQ和授权QAuthorizationQ?/h3>

q两个术语经怸起出现。其中认证的意思就是鉴别用Lw䆾Q最常见的方式就是用用户名和密码,授权是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文Ӟ实现了以路径为基的授权,也就是判断用h否有操作对应路径的权限,在Subversion 1.3之后Qsvnserve和Apache一样都可以使用“authz-db”文件?/p>


2. svnserve下的配置文g

因ؓ本文是以svnserveZ的,所以先介绍一下版本库目录的结构:

D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│?├─revprops
│?├─revs
│?└─transactions
├─hooks
└─locks

其中conf下面有三个文Ӟ

    authz
    passwd
    svnserve.conf

其中的“svnserve.conf”是q个版本库的配置文gQ当使用svnserveӞq个配置文g军_了用什么认证和授权文gQ?/p>

    password-db = passwd
    authz-db = authz

上面的配|说明用“svnserve.conf”同目录的passwd和authzQ其中的password-db指定了用户密码文Ӟauthz-db是我们的授权文gQ也是我们本文主要介绍的文件?/p>

注意Q用Apache作ؓ服务器时Q根本就不会参考“svnserve.conf”文件的内容Q而是会参考Apache的配|?/font>


3Q基于svnserve的版本库文g布局

使用svnserveӞZ理的方便,应该使用相同的认证和授权文gQ所以应该让所有版本库的配|文件svnserve.conf指向同一个password-db和authz-db文g。下面是一个多版本库的目录Q?br />D:\SVNROOT
├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks
└─project2
    ├─conf
    ├─dav
    ├─db
    │?├─revprops
    │?├─revs
    │?└─transactions
    ├─hooks
    └─locks
   
D:\SVNROOT下有两个目录project1和project2Q都已经创徏了版本库Q所以我们修Ҏ个conf目录下的svnserve.confQ之指向同一个password-db和authz-db文g?/p>

password-db = ..\..\passwd
authz-db = ..\..\authz

q样QD:\SVNROOT\passwd和D:\SVNROOT\authz控制了所有版本库的svnserve讉K。另外在后面的操作中要关闭匿名访问,应该L“anon-access = none”前的?”号Q保证只有认证用户可以访问?/p>

注意Q还有一炚w要注意,那就是svnserve的“realm”的|在上面的讄下,应该保证所有的版本库用相同的realm|q样Q对版本库的密码~存可以在多个版本库之间׃nQ更多细节见客户端凭证缓?/font>?/font>

4Q测试用户和l说?/h3>

版本库禁止Q何匿名用L讉KQ只对认证用h效?/p>

root:配置理理员,对版本库有完全的理权限?/p>

p1_admin1:project1的管理员Q对project1有完全权限?br />p1_d1:project1的开发者,对project1的trunk有完全的权限Q但是对其中?trunk/admin目录没有M权限?br />p1_t1:project1的测试者,对project1的trunk有完全的L限,但是对其中的/trunk/admin目录没有M权限?/p>

p2_admin1:project2的管理员Q对project2有完全权限?br />p2_d1:project2的开发者,对project2的trunk有完全的权限Q但是对其中?trunk/admin目录没有M权限?br />p2_t1:project2的测试者,对project2的trunk有完全的L限,但是对其中的/trunk/admin目录没有M权限?/p>


对应的组及组的用P
p1_group_a:p1_admin1
p1_group_d:p1_d1
p1_group_t:p1_t1
p2_group_a:p2_admin1
p2_group_d:p2_d1
p2_group_t:p2_t1


5Q修改D:\SVNROOT\passwd文g

前面已经说过了,用户和密码文件应该是在D:\SVNROOT\passwdQ所以我们ؓ每一位用戯|权限,文g内容如下Q?/p>

						[users]
p1_admin1 = p1_admin1
p1_d1 = p1_d1
p1_t1 = p1_t1
         
p2_admin1 = p2_admin1
p2_d1 = p2_d1
p2_t1 = p2_t1

Z便于验证Q所有密码和用户名一_如果你用的是其他认证方式,q一步可能不同,但是用户名应该都是一L?/p>

6Q配|授权,修改D:\SVNROOT\authz

[groups]
# 定义l信?/p>

p1_group_a = p1_admin1
p1_group_d = p1_d1
p1_group_t = p1_t1

p2_group_a = p2_admin1
p2_group_d = p2_d1
p2_group_t = p2_t1


[/]
# 指定所有的版本库默认只读,root可读?br />* = r
root = rw


[project1:/]
# 指定对版本库project1根目录的权限
@p1_group_a = rw
@p1_group_d = rw
@p1_group_t = r

[project1:/trunk/admin]
# 指定对版本库project1?trunk/admin根目录的权限Q?br /># p1_group_adQp1_group_d和p1_group_t没有M权限?br />@p1_group_a = rw
@p1_group_d =
@p1_group_t =

[project2:/]
# 指定对版本库project2根目录的权限
@p2_group_a = rw
@p2_group_d = rw
@p2_group_t = r

[project2:/trunk/admin]
# 指定对版本库project1?trunk/admin根目录的权限
@p2_group_a = rw
@p2_group_d =
@p2_group_t =


l过以上讄以后Q你会发C些有的事情。当使用用户“p1_d1”,出project1的trunkӞ目录是空的,好像admin目录Ҏ不存在一P当用p1_d1用户览版本库时Q能够看到admin目录Q但是其中的内容却无法看到?/p>

关于中文目录Q也是没有问题的Q只是注意要把authz文g转化为UTF-8格式Q在我的WINXP的UltraEdit里显C的文g格式为U8-DOSQ具体的做法是用UltraEdit打开authz文gQ然后选择“文?>转换->ASCII转UTF-8”,然后保存?/p>

再复杂的情况也不q如此,在实际的工作中要首先规划好权限,只赋l用h的权限Q保证以最的配置实现最复杂的权限控制?/p>

]]>Subversion安装成service http://m.tkk7.com/strive/articles/85079.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:33:00 GMThttp://m.tkk7.com/strive/articles/85079.htmlhttp://m.tkk7.com/strive/comments/85079.htmlhttp://m.tkk7.com/strive/articles/85079.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/85079.htmlhttp://m.tkk7.com/strive/services/trackbacks/85079.html以前的svnserve要想成ؓwindows服务Q必M赖于svnservice或其他工兗从Subversion1.4开始,Subversion本n集成Windows服务的工兗?br />

1Q安装svnservice

在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 ServerQ本w包含了一个安装服务的工具Q叫?Service Control"Q也是sc.exe?/p>

例如我的Subversion安装?D:\Subversion"Q版本库?D:\svnroot"Q而我希望对应的Subversion服务名ؓsvnserviceQ安装这个svn服务的命令就可以q样写:

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
h意,因ؓ便于察看Q上面的命o分ؓ多行Q但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项Q也是守护q程模式Q在q里不能使用Q会D服务无法启动。同P"-i"?-t"选项也不能用?/p>

在命令行H口执行完这个命令之后,服务q没有启动,你可以l运?net start svnservice"启动q个服务Q然后?net stop svnservice"停止服务?/p>

另外q有两点需要小心处理。首先,如果路径中包括空|一定要用“\”处理?”号Q例如上面的例子中如果svnserve.exe在“c:\program files\subversion\”中Q则命o应该写ؓ“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容)Q整个命令如下,U色部分是改变部分:

      sc create svnservice
      binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
其次Qsc寚w项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是?”前不能有空各,而后面必LI格?/p>


2Q删除服?/h3>

如果服务安装的有问题Q你可能需要删除服务。要删除前面d的服务,只需要运?sc delete svnservice"Q?svnservice"是我们创徏服务时用的名字?/p>


3Q配|服务是自动启动

默认情况下安装的服务不会随Windows的启动而启动,Z使svn服务能够随Windows启动而启动,需要修改一?sc create"命oQ首先要删除Q,增加"start= auto"选项Q?/p>

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
      start= auto
     
当然你也可以使用囑Ş化的工具修改服务的属性,你可以在“开?>q行...”中执行"services.msc"Q然后在界面中修攏V?/p>


链接Q?/p>

关于sc安装svn服务的详l信息,可以看看q篇文章Q?br />http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt



]]>
Subversion备䆾 http://m.tkk7.com/strive/articles/85081.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:33:00 GMThttp://m.tkk7.com/strive/articles/85081.htmlhttp://m.tkk7.com/strive/comments/85081.htmlhttp://m.tkk7.com/strive/articles/85081.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/85081.htmlhttp://m.tkk7.com/strive/services/trackbacks/85081.html版本控制最关键的一件事是保证数据的安全性,不能因ؓ盘损坏Q程序故障造成版本库无可挽回的错误Qؓ此必d定较完备的备份策略。在Subversion中,我们有三U备份方式:完全备䆾Q增量备份和同步版本库?br />

1, 完全备䆾

最常见和简单的备䆾是直接使用拯命oQ将版本库目录拷贝到备䆾目录上,可以了。但是这样不是很安全的方式,因ؓ如果在拷贝时版本库发生变化,会造成备䆾的结果不够准,失去备䆾的作用,为此Subversion提供了“svnadmin hotcopy”命令,可以防止q种问题?/p>

q记得我们的版本库目录吗Q?/p>

D:\SVNROOT
├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks
└─project2
    ├─conf
    ├─dav
    ├─db
    │?├─revprops
    │?├─revs
    │?└─transactions
    ├─hooks
    └─locks
   

如果要把project1备䆾到d:\svnrootbak目录下,只需要运行:

svnadmin hotcopy d:\svnroot\project1 d:\svnrootbak\project1

但是我们作ؓ配置理员,必须惛_法优化这个过E,如果我们q个目录下有许多版本库,需要ؓ每个版本库写q样一条语句备份,为此我写了下面的脚本Q实现备份一个目录下的所有版本库。我们在D:\SVNROOT下创Z两个文gQsimpleBackup.batQ?/p>

@echo 正在备䆾版本?1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本?1成功备䆾C%2Q?/p>

q个文g仅仅是对“svnadmin hotcopy”的包装Q然后是backup.batQ?/p>

echo off

rem Subversion的安装目?br />set SVN_HOME="D:\Subversion"

rem 所有版本库的父目录
set SVN_ROOT=D:\svnroot

rem 备䆾的目?br />set BACKUP_SVN_ROOT=D:\svnrootbak

set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立备䆾目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log

mkdir %BACKUP_DIRECTORY%

rem 验证目录是否为版本库Q如果是则取出名U备?br />for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
goto end

:checkBack
echo 备䆾目录%BACKUP_DIRECTORY%已经存在Q请清空?br />goto end

:end

你在使用的时候,只需要修改backup.bat开头的三个路径Q将两个脚本拯到“SVN_ROOT”下可以了。根据以上的配置Q你只需要运行backup.batQ就可以把“SVN_ROOT”下的版本库都备份到“BACKUP_SVN_ROOT”里Qƈ且存攑֜备䆾所在日的目录里Q例如“D:\svnrootbak\2006-10-22”?/p>

虽然q部分工作很单,可是必须有h定时地去执行q个操作Q例如每周一凌晨Q,Z避免发生遗忘的情况,我们可以这个操作加入到pȝ的atd当中去,例如q是上面的环境,Z安装atdQ我们运行:

at 1:00 /every:M D:\svnroot\backup.bat

q样在每周一凌晨1:00都会执行q个备䆾q程。当然备份在本机也是不安全的Q你也许需要上传到别的机器Q这个就要靠你自己去实现了?/p>


2, 增量备䆾

管完全备䆾非常单,但是也是有代LQ当版本库非常巨大时Q经常进行完全备份是不现实的Q也q不必要Q但是一旦版本库在备份之间发生问题,该如何呢Q这里我们就用到了增量备份?/p>

增量备䆾通常要与完全备䆾l合使用Q就像oracle数据库的归档日志Q记录着每次Subversion提交的变化,然后在需要恢复时能够回到最新的可用状态。在我们q个例子中我们用的是,svnadmin dump命oq行增量的备份,使用Ҏ是:

svnadmin dump project1 --revision 15 --incremental > dumpfile2

上面的命令实C对修订版?5q行增量的备份,其中的输出文件dumpfile2只保存了修订版本15更改的内宏V?/p>

Z记录每次提交的结果,我们需要用一Subversion的特?-钩子QhookQ?/font>Q看看我们的project1目录Q?/p>

├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks

其中的hooks目录里存攄是钩子脚本Q我们在此处只用post-commit钩子Q这个钩子会在每ơ提交之后执行,Z实现我们的备份功能,我们在hooks下徏立一个文件post-commit.batQ内容如下:

echo off
set SVN_HOME="C:\Program Files\Subversion"
set SVN_ROOT=D:\svnroot
set UNIX_SVN_ROOT=D:/svnroot
set DELTA_BACKUP_SVN_ROOT=D:\svnrootbak\delta
set LOG_FILE=%1\backup.log
echo backup revision %2 >> %LOG_FILE%
for /r %SVN_ROOT% %%I in (.) do if D:/svnroot/%%~nI == %1 %SVN_ROOT%\%%~nI\hooks\deltaBackup.bat %%~nI %2
goto end
:end

通过q个脚本Q可以实现D:\svnroot下的版本库提交时自动增量备䆾到D:\svnrootbak\deltaQ确定这个目录存在)Q其中用的deltaBackup.bat其实可以攑֜M地方Q只是对脚本的svnadmin dump的包装,内容如下Q?/p>

@echo 正在备䆾版本?2......
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%1 --incremental --revision %2 >> %DELTA_BACKUP_SVN_ROOT%\%1.dump
@echo 版本?2成功备䆾C%3Q?/p>

以上两个脚本可以直接拯到project2的hooks目录下,不需要修改就可以实现project2的自动备份?/p>

以上的操作已lOK了,现在需要做的是完全备份和增量备䆾l合hQ也是在完全备份后清理增量备䆾的结果,使之只保存完全备份后的结果?/p>

当果真出现版本库的故障,p求我们实现版本库的恢复操作了Q这是用要用svnadmin load命oQ同时也需要上ơ的完全备䆾例如要把上次完全备䆾backuprepoQ和之后的增量备份dumpfileQ?/p>

svnadmin load backuprepo < dumpfile

最后的l果Q可以下?a >svnroot.rarQ将之解压羃到d:\下,然后修改几个bat文g的SVN_HOME可以用了?/p>

3, 版本库同?/h3>

Subversion 1.4增加了同步机Ӟ可以实现一个版本库同另一个版本库的同步(但好像只是单向的Q,我们可以用来实现版本库的备䆾或镜像?/p>

3.1. 对目标库初始?/h5>
svnsync init svn://localhost/project2 svn://localhost/project1 
 

其中project2是目标的版本库,而project1是源版本库。其中的目标版本库必MؓI,而且必须允许修订版本属性的修改Q也是在目标的版本库的hooks目录里添加一个文件pre-revprop-change.batQ内容ؓI即可?/font>

3.2. 同步project2到project1
svnsync sync svn://localhost/project2 
 

q时候你update一下你的project2的一个工作拷贝,׃发现有了project1的所有内宏V如果project1又有提交Q这时候project2的版本库无法看到最新的变化Q还需要再q行一遍sync操作Q这h能将最新的变化同步。需要注意的是,目标版本库只能做成只ȝQ如果目标版本库发生了变_则无法l同步了?/p>

3.3. 同步历史属性的修改

因ؓ同步不会更新对历史属性的修改Q所以svnsyncq有子命令copy-revpropsQ可以同步某个版本的属性?/p>

3.4. 钩子自动同步

希望在每ơ提交时同步Q则需要在源版本库增加post-commit脚本Q内容如下:

						
								echo
						 off
set SVN_HOME="D:\Subversion"
%SVN_HOME%\bin\svnsync sync  --non-interactive svn://localhost/project2 
 

把以上内容存放ؓpost-commit.batQ然后放到版本库project1下的hooks目录下,q样project1每次提交Q都会引起project2的同步?br />



]]>有必要准备一?Eclipse 快捷键大全呵http://m.tkk7.com/strive/articles/83829.html一手的窝H?/dc:creator>一手的窝H?/author>Mon, 27 Nov 2006 08:54:00 GMThttp://m.tkk7.com/strive/articles/83829.htmlhttp://m.tkk7.com/strive/comments/83829.htmlhttp://m.tkk7.com/strive/articles/83829.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/83829.htmlhttp://m.tkk7.com/strive/services/trackbacks/83829.html俗话?工欲善其事,必先利其?如果大家对开发程序稍微有点发烧的?都知道快捷键对编E中有多大的作用?当然当年Dos用natepad开发程序的除外?,我就是这样一个发烧友?对各UIDE中的快捷功能颇感兴趣,其是对快捷键这一部分乐此不彼?再加上Eclipse又是本h的最?因此Eclipse中的快捷键就是本人重视的重点?当然,Eclipse的快捷键暂时不是最强的,本h见过快捷键最优秀的IDEq是当属IDEA?里面的快捷键为程序员考虑的面面俱?几乎C只要你想不到,没有按不到的地步??好像l它做广告了).不过说实话很多功能都是Eclipse借鉴Ideaq来的了.但至今我发现在快捷键q方面和别的开发方面Eclipseq是E逊一{了(q仅仅是从Java IDE的角?,废话说,直接切入正题了.

  今天写的q些快捷键都是本人在实际q用中ȝ出来?自己感觉很实?都是以自q喜好E度来排列了,对于的Eclipse如果没有特别说明都用有Eclipse3.0.X以上?个别如果出现不符合的话要么是版本的问?要么是和别的pȝU的快捷键有冲突,譬如输入法的冲突?q时需要修改输入法?下面的快捷键都是EclipseҎ?其是针对Java Editer?但有些对Eclipse里面的Text也是实用的了,下面是q些快捷键了(?q些快捷键随着自己学习不断的深入和Eclipse版本不断的提高会慢慢的完善的,有些太普通的没有列出来,如Ctrl+A一c?:

Ctrl+1 快速修?最l典的快捷键,׃用多说了)

Ctrl+D: 删除当前行    ?

Ctrl+Alt+?复制当前行到下一?复制增加)

Ctrl+Alt+?复制当前行到上一?复制增加)

Alt+↓?当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了)

Alt+↑ ?当前行和上面一行交互位|?同上)

Alt+←?前一个编辑的面

Alt+→?下一个编辑的面(当然是针对上面那条来说了)

Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?/p>

Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最?

Shift+Ctrl+Enter 在当前行插入I(原理同上?

Ctrl+Q   定位到最后编辑的地方

Ctrl+L  定位在某行?(对于E序过100的h有音?

Ctrl+M 最大化当前的Edit或View (再按则反?

Ctrl+/   注释当前?再按则取消注?/p>

Ctrl+O   快速显C?OutLine

Ctrl+T   快速显C当前类的承结?/p>

Ctrl+W  关闭当前Editer

Ctrl+K   参照选中的Word快速定位到下一?/p>

Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示)

Ctrl+/(键? 折叠当前cM的所有代?/p>

Ctrl+×(键? 展开当前cM的所有代?/p>

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代?

Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作)

Ctrl+J  正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C,查一个单词时,特别实用,q个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X   把当前选中的文本全部变呛_?/p>

Ctrl+Shift+Y   把当前选中的文本全部变为小?/p>

Ctrl+Shift+F  格式化当前代?/p>

Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反?

下面的快捷键是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的快捷键都是Alt+Shift开头的?

Alt+Shift+R 重命?(是我自己最q的一个了,其是变量和cȝRename,比手工方法能节省很多力_?

Alt+Shift+M 抽取Ҏ (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了q个Ҏ,修改一ơ搞?

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时?

Alt+Shift+F 把Class中的local变量变ؓfield变量 (比较实用的功?

Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline)

Alt+Shift+V Ud函数和变?不怎么常用)

Alt+Shift+Z 重构的后悔药(Undo)




另一?br />

~辑
作用域 功q快捷键 
全局 查找q替换 Ctrl+F 
文本~辑器 查找上一个 Ctrl+Shift+K 
文本~辑器 查找下一个 Ctrl+K 
全局 撤销 Ctrl+Z 
全局 复制 Ctrl+C 
全局 恢复上一个选择 Alt+Shift+↓?br />全局 剪切 Ctrl+X 
全局 快速修正 Ctrl1+1 
全局 内容辅助 Alt+/ 
全局 全部选中 Ctrl+A 
全局 删除 Delete 
全局 上下文信息 Alt+Q?br />Alt+Shift+?
Ctrl+Shift+Space 
Java~辑器 显C工hC描qWF2 
Java~辑器 选择装元素 Alt+Shift+↑?br />Java~辑器 选择上一个元素 Alt+Shift+←?br />Java~辑器 选择下一个元素 Alt+Shift+→?br />文本~辑器 增量查找 Ctrl+J 
文本~辑器 增量逆向查找 Ctrl+Shift+J 
全局 _脓 Ctrl+V 
全局 重做 Ctrl+Y 


查看
作用域 功q快捷键 
全局 攑֤ Ctrl+= 
全局 ~小 Ctrl+- 


H口
作用域 功q快捷键 
全局 Ȁzȝ辑器 F12 
全局 切换~辑器 Ctrl+Shift+W 
全局 上一个编辑器 Ctrl+Shift+F6 
全局 上一个视图 Ctrl+Shift+F7 
全局 上一个透视图 Ctrl+Shift+F8 
全局 下一个编辑器 Ctrl+F6 
全局 下一个视图 Ctrl+F7 
全局 下一个透视图 Ctrl+F8 
文本~辑器 显C标Z下文菜单 Ctrl+W 
全局 昄视图菜单 Ctrl+F10 
全局 昄pȝ菜单 Alt+- 


D
作用域 功q快捷键 
Java~辑器 打开l构 Ctrl+F3 
全局 打开cd Ctrl+Shift+T 
全局 打开cd层次l构 F4 
全局 打开声明 F3 
全局 打开外部javadoc Shift+F2 
全局 打开资源 Ctrl+Shift+R 
全局 后退历史记录 Alt+←?br />全局 前进历史记录 Alt+→?br />全局 上一个 Ctrl+, 
全局 下一个 Ctrl+. 
Java~辑器 显C大U Ctrl+O 
全局 在层ơ结构中打开cd Ctrl+Shift+H 
全局 转至匚w的括号 Ctrl+Shift+P 
全局 转至上一个编辑位| Ctrl+Q 
Java~辑器 {至上一个成员 Ctrl+Shift+↑?br />Java~辑器 {至下一个成员 Ctrl+Shift+↓?br />文本~辑器 {臌 Ctrl+L 


搜烦
作用域 功q快捷键 
全局 出现在文件中 Ctrl+Shift+U 
全局 打开搜烦对话框 Ctrl+H 
全局 工作Z的声明 Ctrl+G 
全局 工作Z的引用 Ctrl+Shift+G 


文本~辑
作用域 功q快捷键 
文本~辑器 改写切换 Insert 
文本~辑器 上滚行 Ctrl+↑?br />文本~辑器 下滚行 Ctrl+↓?br />

文g
作用域 功q快捷键 
全局 保存 Ctrl+X 
Ctrl+S 
全局 打印 Ctrl+P 
全局 关闭 Ctrl+F4 
全局 全部保存 Ctrl+Shift+S 
全局 全部关闭 Ctrl+Shift+F4 
全局 属性 Alt+Enter 
全局 新徏 Ctrl+N 



作用域 功q快捷键 
全局 全部构徏 Ctrl+B 


源代?br />作用域 功q快捷键 
Java~辑器 格式化 Ctrl+Shift+F 
Java~辑器 取消注释 Ctrl+\ 
Java~辑器 注释 Ctrl+/ 
Java~辑器 添加导入 Ctrl+Shift+M 
Java~辑器 组l导入 Ctrl+Shift+O 
Java~辑器 用try/catch块来包围 未设|,太常用了Q所以在q里列出,自己讄?br />也可以用Ctrl+1自动修正。?br />

q行
作用域 功q快捷键 
全局 单步q回 F7 
全局 单步跌 F6 
全局 单步跛_ F5 
全局 单步跛_选择 Ctrl+F5 
全局 调试上次启动 F11 
全局 l箋 F8 
全局 使用qo器单步执行 Shift+F5 
全局 d/去除断点 Ctrl+Shift+B 
全局 昄 Ctrl+D 
全局 q行上次启动 Ctrl+F11 
全局 q行臌 Ctrl+R 
全局 执行 Ctrl+U 


重构
作用域 功q快捷键 
全局 撤销重构 Alt+Shift+Z 
全局 抽取Ҏ Alt+Shift+M 
全局 抽取局部变量 Alt+Shift+L 
全局 内联 Alt+Shift+I 
全局 Ud Alt+Shift+V 
全局 重命名 Alt+Shift+R 
全局 重做 Alt+Shift+Y 

热键:TemplateQAlt + /修改处:H口->喜好讑֮->工作?>按键->~辑->内容辅助。个Z惯:Shift+SPACE(I白)。简易说明:~辑E序代码Ӟ打sysout +Template启动键,׃自动出现QSystem.out.println(); 。设定Template的格式:H口->喜好讑֮->Java->~辑?>模板。程序代码自动排版:Ctrl+Shift+F修改处:H口->喜好讑֮->工作?>按键->E序代码->格式。个Z惯:Alt+Z。自动排版设定:H口->喜好讑֮->Java->E序代码格式制作E序。样式页?>插入tab(而非I格?以内~,该选项取消N,下面I格数目?Q这样在自动~排时会以空?作羃排。快速执行程序:Ctrl + F11个h习惯QALT+X修改处:H口->喜好讑֮->工作?>按键->执行->启动前一ơ的启动作业。简易说明:W一ơ执行时Q它会询问您执行模式Q设|好后,以后只要按这个热键,它就会快速执行?br />..我觉得很手^___^自动汇入所需要的cdQCtrl+Shift+O易说明:假设我们没有ImportMcdӞ当我们在E序里打入:

BufferedReader buf =
new BufferedReader(new InputStreamReader(System.in));

此时Eclipse会警C没有汇入cdQ这时我们只要按下Ctrl+Shift+OQ它׃自动帮我们Importcd。查看用类别的原始码:Ctrl+鼠标左键点击易说明:可以看到您所使用cd的原始码。将选取的文字批注v来:Ctrl+/易说明:Debug时很方便。修改处Q窗?>喜好讑֮->工作?>按键->E序代码->Ҏ视景切换QCtrl+F8个h习惯QAlt+S。修改处Q窗?>喜好讑֮->工作?>按键->H口->下一个视景。简易说明:可以方便我们快速切换编辑、除错等视景。密技:一套Eclipse可同时切换,英文、繁体、简体显C:
1.首先要先安装完中文化包?br />2.在桌面的快捷方式后面加上参数卛_Q英?> -nl "zh_US"J体-> -nl "zh_TW"?> -nl "zh_CN"?br />(其它语系以此cL)像我2.1.2中文化后Q我在我桌面的Eclipse快捷方式加入参数-n1 "zh_US"?br />"C:\Program Files\eclipse\eclipse.exe" -n "zh_US"接口׃变回英文语系噜。利用EclipseQ在Word~辑文书时可不必程序代码重新编排:EclipseE序~辑区的E序代码整个复制下来(Ctrl+C)Q直接脓(Ctrl+V)?br />Word或WordPad上,您将会发现在Word里的E序代码格式Q跟Eclipse所讑֮的完全一P包括字型、羃排、关键词颜色。我曾试qJBuilder、GEL、NetBeans...使用复制贴上Ӟ只有~排格式一P字型、颜色等都不会改变。外挂篇Q外挂安装:外挂包下蝲回来后,其解压~后Q您会发现features?br />pluginsq?个数据夹Q将里面的东襉K复制或移动到Eclipse的features、plugins数据夹内后,重新启动Eclipse卛_。让Eclipse可以像JBuilderX一样用拖拉方式徏构GUI的外挂:
1.Jigloo SWT/Swing GUI Builder Q?a >http://cloudgarden.com/jigloo/index.html下蝲此版本:Jigloo plugin for Eclipse (using Java 1.4 or 1.5)安装后即可由档案->新徏->其它->GUI Form选取要徏构的GUIcd?br />
2.Eclipse Visual Editor ProjectQ?a >http://www.eclipse.org/vep/炚w下方Download PageQ再炚wLatest Release 0.5.0q入下蝲。除了VE-runtime-0.5.0.zip要下载外Q以下这2个也要:
EMF build 1.1.1: (build page) (download zip) 
GEF Build 2.1.2: (build page) (download zip) 

3.0 M8版本Q请下蝲Q?br />EMF build I200403250631
GEF Build I20040330
VE-runtime-1.0M1安装成功后,便可由File->New->Visual Class开始UI设计。安装成功后Q即可由新徏->Java->AWT与Swing里选择所要徏构的GUIcd开始进行设计。VE必须配合着对应版本Q才能正怋用,否则即安装成功Q用上仍会有问题。用Eclipse来开发JSPE序Q外挂名Uͼlomboz(下蝲面)http://forge.objectweb.org/project/showfiles.php?group_id=97请选择适合自己版本的lomboz下蝲Qlomboz.212.p1.zip表示2.1.2版,
lomboz.3m7.zip表示M7版本....以此cL?br />lomboz安装以及讄教学QEclipse开发JSP-教学文g

Java转exe:实现方式QEclipse搭配JSmooth(免费)?br />1.先由Eclipse制作包含Manifest的JAR。制作教?br />2.使用JSmooth做好的JAR包装成EXE?br />JSmooth下蝲面Q?a >http://jsmooth.sourceforge.net/index.php
3.制作完成的exe文gQ可在有装置JRE的Windows上执行?br />
Eclipse-Java~辑器最佌定:~辑器字型设定:工作?>字型->Java~辑器文字字型?br />(讑֮Courier New -regular 10)~辑器相兌定:H口->喜好讑֮->Java->~辑器外观:昄行号、强调对U显C的Ҏ受强调显C现行行、显C打印边距,其N,Tab宽度?Q打印编距字D设80。程序代码协助:采预讑֍可。语法:可设定关键词、字W串{等的显C颜艌Ӏ附注:采预讑֍可。输入:全部字段都勾选。Q动说明:采预讑֍可。导览:采预讑֍可。自动排版排出来的效果Q最W合Java设计惯例的设定:自动排版讑֮Q窗?>喜好讑֮->Java->E序代码制作格式。换行:全部不勾选。分行:行长度上限设Q?0。样式:只将强制转型后插入空白勾选。内~空格数目:设ؓ4?br />
l常用到的Eclipse快捷?br />存盘 Ctrl+s(一定记?
注释代码 Ctrl+/
取消注释 Ctrl+\(Eclipse3已经都合q到Ctrl+/?
代码辅助 Alt+/
快速修复 Ctrl+1
代码格式化 Ctrl+Shift+f
整理导入 Ctrl+Shift+o
切换H口 Ctrl+f6<可改为ctrl+tab方便>
ctrl+shift+M 导入未引用的?br />ctrl+w 关闭单个H口
F3 跌{到类、变量的声明
F11 q行上次E序
Ctrl + F11 调试上次E序
Alt + 回下一个编辑点
ctrl+shift+T 查找工程中的c?br />



]]>
JavaScript中的正则表达http://m.tkk7.com/strive/articles/83656.html一手的窝H?/dc:creator>一手的窝H?/author>Sun, 26 Nov 2006 12:11:00 GMThttp://m.tkk7.com/strive/articles/83656.htmlhttp://m.tkk7.com/strive/comments/83656.htmlhttp://m.tkk7.com/strive/articles/83656.html#Feedback0http://m.tkk7.com/strive/comments/commentRss/83656.htmlhttp://m.tkk7.com/strive/services/trackbacks/83656.htmlJavaScript中的正则表达?/h1>

正则表达?regular expression)对象包含一个正则表辑ּ模式(pattern)。它h用正则表辑ּ模式d配或代替一个串(string)中特定字W?或字W集?的属?properties)和方?methods)?要ؓ一个单独的正则表达式添加属?可以使用正则表达式构造函?constructor function)Q无Z时被调用的预讄的正则表辑ּ拥有静态的属?the predefined RegExp object has static properties that are set whenever any regular expression is used, 我不知道我翻得对不对Q将原文列出Q请自行译)?

  • 创徏Q?
    一个文本格式或正则表达式构造函?
    文本格式Q?/pattern/flags
    正则表达式构造函敎ͼ new RegExp("pattern"[,"flags"]);
  • 参数说明Q?
    pattern -- 一个正则表辑ּ文本
    flags -- 如果存在Q将是以下|
    g: 全局匚w
    i: 忽略大小?
    gi: 以上l合

[注意] 文本格式的参C用引P而在用构造函数时的参数需要引受如Q?ab+c/i new RegExp("ab+c","i")是实CL功能。在构造函CQ一些特D字W需要进行{?在特D字W前?\")。如Qre = new RegExp("\\w+")

正则表达式中的特D字W?

字符 含意
\

做ؓ转意Q即通常?\"后面的字W不按原来意义解释,?b/匚w字符"b"Q当b前面加了反斜杆后/\b/Q{意ؓ匚w一个单词的边界?
-?
Ҏ则表辑ּ功能字符的还原,?*"匚w它前面元字符0ơ或多次Q?a*/匹配a,aa,aaaQ加?\"后,/a\*/只匚w"a*"?

^ 匚w一个输入或一行的开_/^a/匚w"an A"Q而不匚w"An a"
$ 匚w一个输入或一行的l尾Q?a$/匚w"An a"Q而不匚w"an A"
* 匚w前面元字W?ơ或多次Q?ba*/匹配b,ba,baa,baaa
+ 匚w前面元字W?ơ或多次Q?ba*/匹配ba,baa,baaa
? 匚w前面元字W?ơ或1ơ,/ba*/匹配b,ba
(x) 匚wx保存x在名?1...$9的变量中
x|y 匚wx或y
{n} _匚wn?
{n,} 匚wnơ以?
{n,m} 匚wn-m?
[xyz] 字符?character set)Q匹配这个集合中的Q一一个字W?或元字符)
[^xyz] 不匹配这个集合中的Q何一个字W?
[\b] 匚w一个退格符
\b 匚w一个单词的边界
\B 匚w一个单词的非边?/td>
\cX q儿QX是一个控制符Q?\cM/匚wCtrl-M
\d 匚w一个字数字W,/\d/ = /[0-9]/
\D 匚w一个非字数字符Q?\D/ = /[^0-9]/
\n 匚w一个换行符
\r 匚w一个回车符
\s 匚w一个空白字W,包括\n,\r,\f,\t,\v{?
\S 匚w一个非I白字符Q等?[^\n\f\r\t\v]/
\t 匚w一个制表符
\v 匚w一个重直制表符
\w 匚w一个可以组成单词的字符(alphanumericQ这是我的意译,含数?Q包括下划线Q如[\w]匚w"$5.98"中的5Q等于[a-zA-Z0-9]
\W 匚w一个不可以l成单词的字W,如[\W]匚w"$5.98"中的$Q等于[^a-zA-Z0-9]?/td>

说了q么多了Q我们来看一些正则表辑ּ的实际应用的例子Q?

E-mail地址验证:
 function test_email(strEmail) {
  var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
  if(myReg.test(strEmail)) return true;
  return false;
 }
HTML代码的屏?
 function mask_HTMLCode(strInput) {
   var myReg = /<(\w+)>/;
   return strInput.replace(myReg, "&lt;$1&gt;");
 }


 

正则表达式对象的属性及Ҏ
  预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, rightContext?1?9。其中input和multiline可以预设|。其他属性的值在执行qexec或testҎ后被Ҏ不同条g赋以不同的倹{许多属性同时拥有长和短(perl风格)的两个名字,q且Q这两个名字指向同一个倹{?JavaScript模拟perl的正则表辑ּ)
正则表达式对象的属?

属?/td> 含义
$1...$9 如果??存在Q是匚w到的子串
$_ 参见input
$* 参见multiline
$& 参见lastMatch
$+ 参见lastParen
$` 参见leftContext
$'          参见rightContext
constructor    创徏一个对象的一个特D的函数原型
global       是否在整个串中匹?bool?
ignoreCase     匚w时是否忽略大写(bool?
input        被匹配的?
lastIndex     最后一ơ匹配的索引
lastParen     最后一个括hh的子?
leftContext    最q一ơ匹配以左的子串
multiline     是否q行多行匚w(bool?
prototype     允许附加属性给对象
rightContext    最q一ơ匹配以右的子串
source       正则表达式模?
lastIndex     最后一ơ匹配的索引

正则表达式对象的Ҏ
Ҏ 含义
compile      正则表达式比?
exec        执行查找
test        q行匚w
toSource      q回特定对象的定?literal representing)Q其值可用来创徏一个新的对象。重载Object.toSourceҎ得到的?
toString      q回特定对象的串。重载Object.toStringҎ得到的?
valueOf      q回特定对象的原始倹{重载Object.valueOfҎ得到
例子
<script language = "JavaScript">
var myReg = /(w+)s(w+)/;
var str  = "John Smith";
var newstr = str.replace(myReg, "$2, $1");
document.write(newstr);
</script>
输?Smith, John"

]]>
վ֩ģ壺 ѹۿ˳վ| ߹ۿվ| ĻѾþ| ۲ӰԺ߹ۿ| 99re8оƷƵ| ƬaëƬ| ޾Ʒþþwww| ۺϾþ| baoyu777Ƶ| ޾ƷMV߹ۿ| av뾫Ʒþþ| aר߹ۿ| ԻȫƵ߹ۿ| ߻ɫַ| ѿ߾Ʒһ| ݹѹǹ| ޵һվ߹ۿ| һëƬȫѲ| Ļ벻Ƶ| ɫݺݰվ| ޾Ʒ͵| ºձѹۿ| Ƶ߹ۿ| ӰƬ鶹ӰƬѹۿ| һƵ| պѸƵ| ձ߲| ڵƵվ| һ| ҹaëƬ| eeussӰԺsscom| ޾ƷӰۺ| 3pˬִƵ| ߹ۿվ| һ| ѹۿ| avר߹ۿ| Ļߵ| ˳ѹۿ| ƬĻӰ| ձѵӰһ|