一个人不应该依附在其他人身上,一个人应该首先自力更生。你应该自己能够独立,能够安顿你自己,那你就不会害怕了。你爱你自己的话,别人不能不爱你吧。

发布新日志

  • 相关测试工具下载

    2008-01-30 17:35:39Top 3 Digest 3

    相关测试工具下载

    HP-Mercury软件测试工具下载,随时更新

    官方下载:
    http://downloads.mercury.com/cgi-bin/portal/download/index.jsp
    LoadRunner 8.1下载
    http://esd.mercury.com/akdlm/trial/lr/LR81Download.exe
    TestDirector for Quality Center
    http://esd.mercury.com/akdlm/trial/qc/quality-center-starter-edition.zip
    QTP 9.2下载
    http://esd.mercury.com/akdlm/trial/qtp/qtp92.zip
    其他下载地址:
    LoadRunner 8.0下载
    http://www.tomore.com/catalog/3_25/7.htm
    LoadRunner.8.0.工业级测试工具.part01.rar
    ……
    ……
    LoadRunner.8.0.工业级测试工具.part22.rar
    QTP 8.2下载:
    http://www.tomore.com/catalog/3_25/5.htm
    QuickTest.Pro.8.2.中文版.强大测试工具.QuickTest_Pro_82_CHS_ENG.part01.rar
    ……
    ……
    QuickTest.Pro.8.2.中文版.强大测试工具.QuickTest_Pro_82_CHS_ENG.part18.rar

    测试工具下载推荐
    CC/CQ,PCVS, CVS ,WinCVS , TD/QC所有配置管理工具下载网站:
    SCMLife--致力于做一流得配置管理社区电驴测试工具资源下载:
    1)        LoadRunner7.8
    http://lib.verycd.com/2005/01/07/0000034096.html
    2)WinRunner7.6
    http://lib.verycd.com/2005/03/16/0000042388.html
    3)TestDirector 7.6 http://board.verycd.com/t162206.html
    FTP:TD7.6下载:
    TD 7.6 SP4 企业版
    TD 7.6 SP4标准版
    4)WinRunner 7.6下载用快车就行http://www.clzx.net.cn/Soft/ShowSoft.asp?SoftID=450
    WinRunner8。0电驴下载
    http://lib.verycd.com/2005/09/18/0000065515.html
    5)QuickTest Pro 8.2 电驴下载http://lib.verycd.com/2005/09/19/0000065551.html
    6)LoadRunner 8.0下载地址:http://lib.verycd.com/2005/10/01/0000067173.html
    LoadRunner 8.1下载地址
    Ftp: LoadRrunner 8.0下载http://esd.mercury.com/akdlm/trial/lr/LR8DownLoad.exe
    7).  TestDirector 8.0 电驴下载http://lib.verycd.com/2006/03/19/0000095046.html
    七  Java开源测试工具汇总
            1  JUnit  
    JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
    http://www.junit.org/
    2 Cactus  
    Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
    http://jakarta.apache.org/cactus/
    3 Abbot  
    Abbot是一个用来测试Java GUIs的框架。用简单的基于XML的脚本或者Java代码,你就可以开始一个GUI。
    http://abbot.sourceforge.net/
    4 JUnitPerf  
    Junitperf实际是junit的一个decorator,通过编写用于junitperf的单元测试,我们也可使测试过程自动化http://www.clarkware.com/software/JUnitPerf.html
    5        DbUnit  
    DbUnit是为数据库驱动的项目提供的一个对JUnit 的扩展,除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态。
    http://dbunit.sourceforge.net/
    6        Mockrunner  
    Mockrunner用在J2EE环境中进行应用程序的单元测试。它不仅支持Struts actions, servlets,过滤器和标签类还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。
    http://mockrunner.sourceforge.net/index.html
    7        DBMonster  
    DBMonster是一个用生成随机数据来测试SQL数据库的压力测试工具。
    http://dbmonster.kernelpanic.pl/

    8        MockEJB  
    MockEJB是一个不需要EJB容器就能运行EJB并进行测试的轻量级框架。
    http://mockejb.sourceforge.net/
    9        StrutsTestCase  
    StrutsTestCase 是Junit TestCase类的扩展,提供基于Struts框架的代码测试。StrutsTestCase同时提供Mock 对象方法和Cactus方法用来实际运行Struts ActionServlet,可以通过运行servlet引擎来测试。http://strutstestcase.sourceforge.net/
    10  JFCUnit  
    JFCUnit使得你能够为Java偏移应用程序编写测试例子。它为从用代码打开的窗口上获得句柄提供了支持;为在一个部件层次定位部件提供支持;为在部件中发起事件(例如按一个按钮)以及以线程安全方式处理部件测试提供支持。
    http://jfcunit.sourceforge.net/
    11JTestCase  
    JTestCase 使用XML文件来组织多测试案例数据,声明条件(操作和期望的结果),提供了一套易于使用的方法来检索XML中的测试案例,按照数据文件的定义来声明结果
    http://jtestcase.sourceforge.net/
    12SQLUnit  
    SQLUnit是一个单元测试框架,用于对数据库存储过程进行回归测试。用 Java/JUnit/XML开发。
    http://sqlunit.sourceforge.net
    13 JTR  
    JTR (Java Test Runner)是一个开源的基于反转控制(IOC)的J2EE测试框架。它允许你构建复杂的J2EE测试套件(Test Suites)并连到应用服务器执行测试,可以包括多个测试实例。JTR的licensed是GPL协议
    http://jtrunner.sourceforge.net/
    14 Marathon  
    Marathon是一个针对使用Java/Swing开发GUI应用程序的测试框架,它由recorder, runner 和 editor组成,测试脚本是python代码。Marathon的焦点是放在最终用户的测试上。
    http://marathonman.sourceforge.net
    15 TestNG  
    TestNG是根据JUnit 和 NUnit思想而构建的一个测试框架,但是TestNG增加了许多新的功能使得它变得更加强大与容易使用比如:
    *支持JSR 175注释(JDK 1.4利用JavaDoc注释同样也支持)
    *灵活的Test配置
    *支持默认的runtime和logging JDK功能
    *强大的执行模型(不再TestSuite)
    *支持独立的测试方法。
    http://testng.org/
    16 Surrogate Test framework  
    Surrogate Test framework是一个值得称赞单元测试框架,特别适合于大型,复杂Java系统的单元测试。这个框架能与JUnit,MockEJB和各种支持模拟对象(mock object )的测试工具无缝给合。这个框架基于AspectJ技术。
    http://surrogate.sourceforge.net
    17 MockCreator  
    MockCreator可以为给定的interface或class生成模拟对象(Mock object)的源码。
    http://mockcreator.sourceforge.net/
    18 jMock  
    jMock利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。
    http://www.jmock.org/
    19 EasyMock  
    EasyMock为Mock Objects提供接口并在JUnit测试中利用Java的proxy设计模式生成它们的实例。EasyMock最适合于测试驱动开发。
    http://www.easymock.org/
    20 The Grinder  
    The Grinder是一个负载测试框架。在BSD开源协议下免费使用。
    http://grinder.sourceforge.net/
    21 XMLUnit  
    XMLUnit不仅有Java版本的还有.Net版本的。Java开发的XMLUnit提供了两个JUnit 扩展类XMLAssert和XMLTestCase,和一组支持的类。这些类可以用来比较两张XML之间的不同之处,展示XML利用XSLT来,校验XML,求得XPath表达式在XML中的值,遍历XML中的某一节点利DOM展开,
    http://xmlunit.sourceforge.net/
    22        Jameleon  
    Jameleon一个自动化测试工具。它被用来测试各种各样的应用程序,所以它被设计成插件模式。为了使整个测试过程变得简单Jameleon提供了一个GUI,因此Jameleon实现了一个Swing 插件。
    http://jameleon.sourceforge.net/index.html
    23        J2MEUnit  
    J2MEUnit是应用在J2ME应用程序的一个单元测试框架。它基于JUnit.
    http://j2meunit.sourceforge.net/
    24        Jetif  
    Jetif是一个用纯Java实现的回归测试框架。它为Java程序单元测试以及功能测试提供了一个简单而且可 伸缩的架构,可以用于个人开发或企业级开发的测试。它容易使用,功能强大,而且拥有一些企业级测试的重要功能。Jetif来源于JUnit, JTestCase以及TestNG的启发,有几个基本的概念直接来自于JUnit, 比如说断言机制,Test Listener的概念,因此从JUnit转到Jetif是非常容易的。
    http://jetif.sourceforge.net/
    25        GroboUtils  
    GroboUtils使得扩展Java测试变得可能。它包括用在Java不同方面测试的多个子项目。在GroboUtils中最常被到的工具是:多线程测试(multi-threaded tests),整体单元测试(hierarchial unit tests),代码覆盖工具(code coverage tool)。
    http://groboutils.sourceforge.net/
    26        Testare  
    TESTARE是用来简化分布式应用程序(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI环境下)测试开发过程的一个测试框架.
    https://testare.dev.java.net/

  • HTML快速参考

    2007-03-01 17:51:43Top 3 Digest 3

    HTML快速参考

    注释 结构标记 头标和标题 段落的区域 链接 列表
    字符格式 图像、声音、嵌入媒体 表单 表格  

    注:MS表示它仅适用于IE。

    注释(Comment)

    <!-...->           创建注解,也用于隐含浏览器不支持的Javascrīpt程序。

    结构标记(Structure Tags)

    标记

    属性

    功能

    <html>...</html>   括入全部HTML文件内容
    <head>...</head>   括入HTML头文件内容
    <body>...</body>   括入HTML文件主体部分(文本和标记)
      background="..." 页面背景中名称或图像的URL标题
      bgcolor="..." 页面背景颜色
      text="..." 页面文字颜色
      link="..." 不是紧随其后的链接颜色
      alink="..." 激活的链接颜色
      vlink="..." 紧随其后的链接颜色
      bgproperties="..."(MS) 背景图像属性。目前仅允许的值是FIXED,它用于防止背景图像滚动。
      topmagrin="..."(MS) 页面上边空白,以像素表示
      bottommargin="..."(MS) 页面底部空白,以像素表示
    <base>    标明当前文件的全部URL
      href="..." 此文件的全部URL
    <isindex>   标明此文件是一个允许查询的网关脚本
      prompt="..." 查询域提示
      action="..." 查询的字符串应能通过的网关程序
    <link>    标明在此文档与其它文档之间的链接,通常被用作HTML制作工具,<link>表示从此文档到另一文档的链接例如<a>,可以在文件中创建一个多重链接。
      href="..." 当链接激活时,调用文档的URL
      name="..." 如果允许考虑一个锚点,它是一个锚点名称
      rel="..." 当前文件与链接文件关系,例如“toc”或“glossary”
      rev="..." 当前文件与链接文件之间的相反关系
      urn="..." 统一资源数,它与href中的URL有很大的差别
      title="..." 与文档链接的标题
    <meta>   获得文件的方法,例如:FTP, Gropher等
      methods="..." 标明文件的meta信息(文件本身信息),例如,寻找工程的关键词,用于获得文档、时间期限等的特殊HTTP头标。Meta信息通常是以关键字/数值形式成对使用,用在文件的标记<head>中
      http-equiv="..." 用作为属性值的同一名子创建一个新的http头标。例如,http-equiv="Expires"。标头的值由内容的属性定义
       name="..." 如果meta的数据通常以关键字/数值成对使用,name表示关键字,例如,作者和ID
      content="..." 成对使用的关键字/数字的内容(或由http-equiv指明的http头标)
    <nextid>   标明与此文件相关的下一文件,(可能被一工具定义用于严格管理http文件)。<nextid>被认为无用。

    头标和标题(Heading and Title)

    标记

    属性

    功能

    <h1>...</h1>       第一层头标
    <h2>...</h2>    第二层头标
    <h3>...</h3>    第三层头标
    <h4>...</h4>    第四层头标
    <h5>...</h5>    第五层头标
    <h6>...</h6>    第六层头标
    <title>...</title>    标题。在<head>中使用
    所有的标题目录具有以下属性: align="..."      可能的值为center, left, right

    段落的区域(Paragraphs and Regions)

    标记

    属性

    功能

    <p>...</p>   一般段落结束的标志,</p>可选
      align="..." 文本对齐为中心(center)、左(left)、右(right)
    <div>...</div>   格式化文本区域
      align="..." 文本对齐为中心(center)、左(left)、右(right)

    链接(Links)

    标记

    属性

    功能

    <a>...</a>   用href的属性创建与另一个文件的链接,使用name的属性创建可被链接的锚
      href="..." 链接被激活时调用的URL
      name="..." 锚名
      target="..." 与文件相链接的帧(Frame)

    列表(Lists)

    字符格式(Character Formatting)

    其它要素(Other Elements)

    图像、声音和嵌入媒体(Images, Sounds, and Embedded Media)

    表单(Forms)

    表格(Tables)

    帧(Frames)

  • LR概念常见问题(持续更新)

    2007-04-28 15:22:02Top 2 Digest 2

    问题1:LoadRunner响应时间是什么?
               
    答:响应时间就是客户端发送请求,服务器返回最后(或者第)一个字节的时间。LoadRunner的事务函数功能是  度量客户端和服务器之间交互时间的。事务函数最后在分析图表里有,比如你在前边开发脚本的时候你在登陆功能中添加了事务函数,那么controller中运行1000个用户之后,在分析图表中你就会看到1000个用户登录功能所消耗的时间(平均,其中1000个用户用的最多的时间,10000个用户用的最少的时间)。
     
     
    问题2:页面点击数与页面浏览数什么概念,页面点击数过高会对系统的性能产生什么影响?
    答:页面点击数:又名“hits”,它包括了点击了某个网页后,浏览器为了显示此网页而附带来的所有图片等支持文件的数量。“点击数”往往被用来衡量网站服务器的工作负载,也是衡量网站服务器性能的标准之一。文件数量的增多,会增加网络流量。

    页面浏览量(页面量):又名“PageView”,它是指实际被点击的网页数量。“页面浏览量”往往被用来衡量网站内容的受欢迎程度和被访问情况。
     
    问题3:在LoadRunner中有个Anget,这个Anget具体起什么作用啊?在讲Robot的架构的时候好像也提到过,但是没有讲Anget具体作用,是不是LR与Robot中Anget作用一样的呢?

    答:Agent 的作用是提供一个宿主环境提供虚拟用户运行,在LoadRunner中叫做Load Generator。
     
    问题4:这个章节中讲到了“响应时间”、“页面点击数”、“吞吐量”这几个概念,我想问一下,“响应时间”越快是不是就越好?“页面点击数”越少是不是就越好?“吞吐量”越大是不是就越好?

    答:性能是寻找执行效率与功能之间的平衡。这些不过是性能分析所关注的。不是越大越好。
     
     
  • 等等我...

    2008-04-16 09:10:59Top 1 Digest 1

    你们你们为什么都不等等我

    一个也不等我

    两个也不等我

    等等我...

    我这次马上就要回去了

    昨晚已经定了机票了

    明天早上最早的班机

    在生日的今天

    却是悲伤的

    这次又没有赶上...

    等等我,等等我,等等我...

     

     

     

  • 资料搜集

    2008-01-21 14:41:39Top 1 Digest 1

    注:*代表星星级别,越多的*表示越好;

    1、http://www.51testing.com/html/37/ (*****)

    这个是软件测试网下载资料的地方,很全,(MercuryRational其它测试工具测试技术软件开发其他分类、沙龙资料软件工程开源测试工具 ,hoho~;

    2、http://www.51testing.com/N_download/salonDL.htm (**)

    这个是软件测试沙龙资料下载,每期都有,从2起到11期的前期沙龙;

    3、http://www.51testing.com/N_download/ToolDL.htm 

    这个应该是51未改版之前的老版本网站,清单很清晰,可惜的是上面资料都下载不了了;

    4、http://bbs.51testing.com/thread-43397-1-1.html 

    包括了(1)、 面向对象自动化测试框架的研究与设计.pdf (****)
         (2)、 面向对象软件测试方法研究.pdf (*)
    送给喜欢框架研究的boys & girls,貌似是研究生的论文,有兴趣的可以看看;
     

    多多看书

    多多实践

     

     

  • LR介绍(更新完毕)

    2007-04-29 12:03:01Top 1 Digest 1

    Ø         LR架构

    ü         VuGen(Virtual User Generator):虚拟用户脚本生成器

    ü         Controller:压力调度和监控系统

    ü         Analysis:压力结果分析工具。

      模拟真实业务对系统进行加压操作,测试整个系统在不同压力下的体现,找出潜在的瓶颈。

     

     

     

    从组件看LR大概流程

     

     

    Ø         LR性能测试的流程(从过程看LR大概流程)

    ü         计划测试:收集软件系统的原始数据从而定制软件的测试方案和测试策略

    ü         创建脚本:搭建相应的测试环境,录制用户使用的相应的场景

    ü         创建场景:组合不同的脚本并根据用户实际使用的场景对其进行校验确定增强脚本

    ü         运行场景:产生数据

    ü         分析数据:分析测试结果,确定瓶颈所在处。

     

     

    Ø         LR组件和过程的关系

     

     

     

     

     

    Ø         LR中相关概念

    ü         响应时间:从客户端发出请求到服务器响应的最后一个字节结束的中间时间的长度

           分清系统正常消耗的时间和发生瓶颈的时间即不同的响应的时间

           网络传输时间(LRnetwork计数器)

           后台数据库响应时间(事件查看器Sql

    ü         页面点击数:hits页面Web程序上一个对象或者文件进行的请求

            点击了某个网页后,浏览器为了显示此网页而附带来的所有图片等支持文件的数量

                    衡量网站服务器的工作负载和网站服务器性能的标准之一

    ≠页面浏览量:PageView, 实际被点击的网页数量

                  衡量网站内容的受欢迎程度和被访问情况

     

    ü         并发量:系统在某一时刻处理的交易个数

    ü         吞吐量 :系统在单位时间内处理的交易个数,即每秒处理的事务数。

     

     

    Ø         如何判断需求

    ü         响应时间

    ü         用户数

    ü         吞吐量

    主要可以从这三个方面去挖掘需求,完成的什么样的功能,和客户进行交流。

     

     

     

    从别的地方看到的,转载一下,据说看了之后能很好的帮助我们理解压力测试。

     

  • 性能测试介绍(总结)

    2007-04-27 10:43:33Top 1 Digest 1

    LR工具介绍:

      模拟大量的用户对整个系统(C/S,B/S)进行性能测试,通过监控器实时的收集信息来分析系统的瓶颈和性能。它能够有效的提高软件产品的质量,优化软件性能,减少用户使用软件失败的几率,提高测试工作效率和质量,加大测试的深度和广度。

      Controller 创建和运行测试场景
      VuGen和Controller 进行规划有效的负载测试
      Analysis 对整个系统进行压力测试的结果进行分析

    性能测试介绍:

     

    Ø         性能的概念:执行软件某一功能所消耗的时间

    ü         代码:算法(执行效率) 顺序查找 折半查找   (单元)

    ü         用户:速度                  (系统)      

                note:性能测试生存在于整个软件生命周期。

     

     

    Ø         性能的分类:

    ü         负载测试(Load Testing):不同的负载系统是否能正常应用

    ü         压力测试(Stress Testing):系统极限下(系统资源很小时)是否满足用户要求

    ü         容量测试(Volume Testing):未来规划或者是数据库

      还有基准测试:流程上控制测试的方法

        配置测试:不同系统配置时系统应用是否能保证测试的结果

        可靠性测试,安全性测试等等。  

     

     

    Ø         性能的策略

     

    ü         如何选择的依据:

       / 测试用例:实际的系统应用

       |        同类型的软件

       |        升级系统的前版本  

        |      每个功能模块会出现的问题

       |        用户经常使用的和访问的模块

       \ 测试策略:选择好

              平台,后台数据库,服务器,用户访问的模块

     

    ü         在工具上的体现:模拟大量的用户系统的访问

            场景的设计:不同的用户,系统极限下

                   不断调整虚拟用户数

     

     

    Ø         性能发现的错误

    ü         内存泄漏:对象无及时释放

    ü         数据库死锁

     

     

    ^      性能测试思路

    !       前提:了解整个系统的应用

    !       用户实际使用情况

    !       将其开发成脚本

    !       移植到相关硬件并进行组合

    !       性能测试(就是如何将性能测试策略应用到测试工具上)

    !       最后:采集数据。

  • 安装LR8.1成功步骤

    2007-04-17 20:25:06Top 1 Digest 1

    学习,尤其是自学自动化测试工具的历程是辛苦和难以想象的,以此纪录我学习LR的过程。

    最开始是安装LR8(也不记得是什么版本了),总之最后没有成功,听说必须卸载才能成功,求助某人,结果某人竟然说是公司,貌似是配置管理员帮着装的,从心里小小的鄙视了一把...,结果不了了之

    接下来就是最近,从51testing上下载了LR8.1,谁知足足下乐一个礼拜,还有两个晚上是偷偷开着公司的电脑通宵的下载吖,愣是到今天下午才下完,让人吐血的是下载下来,LR解压后的文件夹有六百四十多兆,可是在详细信息里看每个文件却都是0 K,0 K吖,你知道什么概念吖...我真想撞在办公桌上,可是面临着中国测试行业不可前途的份儿上,忍着,询问人,在这里,隆重感谢某人,谢谢支持,这会全装上了,且破解成功。

    1.LoadRunner 8.1 iso 下载 这个肯定可以,是我成功下载完了的

    2. 这个是破解,我把rar格式改成了jpg后缀上传了,不知道能不能需要用的同学们下载下来,即把后缀改成rar,如果不行,可以看这篇文章 LR相关 

    事实上证明这个方法是可行di~幸好这个文件不大...

      • setup.exe安装,直至需要填写序列号处,会有个默认的8888-88888888之类的,不管,直接NEXT
      • 安装最后让你重新启动,此时不要重新启动,把破解文件 lm70.dll,mlr5lprg.dll
        这两个文件复制并粘贴到LR8.1安装目录下的bin文件夹下,一般是C:\Program Files\Mercury\LoadRunner\bin
      • 重新启动系统,启动LR,菜单项“CONFIGURATION”-->“LoadRunner License”下选中“LicenseKey1”,点击“New License”输入7.8、8.0通用的license:
        golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
        web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB(我输入的是这个)即可

    3.哈哈,完成啦

     

  • 资料库

    2007-03-05 14:35:56Top 1 Digest 1

  • HTML参考

    2007-03-01 16:08:59Top 1 Digest 1

    HTML参考

    Basic tags 基 本 标 签
    <html></html> Creates an HTML document 创 建 一 个HTML 文 档
    <head></head> Sets off the title and other
    information that isn't displayed
    on the Web page itself
    设 置 文 档 标 题 以 及 其 他 不 在WEB 网 页 上 显 示 的 信 息
    <body></body> Sets off the visible portion of
    the document
    设 置 文 档 的 可 见 部 分
       
    Header tags
    标 题 标 签
    <title></title> Puts the name of the document
    in the title bar
    将 文 档 的 题 目 放 在 标 题 栏 中
       
    
    Body attributes
    文 档 整 体 属 性
    <body bgcolor=?> Sets the background color,
    using name or hex value
    设 置 背 景 颜 色, 使 用 名 字 或 十 六 进 制 值
    <body text=?> Sets the text color, using
    name or hex value
    设 置 文 本 文 字 颜 色, 使 用 名 字 或 十 六 进 制 值
    <body link=?> Sets the color of links,
    using name or hex value
    设 置 链 接 颜 色, 使 用 名 字 或 十 六 进 制 值
    <body vlink=?> Sets the color of followed
    links, using name or hex value
    设 置 已 使 用 的 链 接 的 颜 色, 使 用 名 字 或 十 六 进 制 值
    <body alink=?> Sets the color of links on click 设 置 正 在 被 击 中 的 链 接 的 颜 色, 使 用 名 字 或 十 六 进 制 值
       
    
    Text tags
    文 本 标 签
    <pre></pre> Creates preformatted text 创 建 预 格 式 化 文 本
    <h1></h1> Creates the largest headline 创 建 最 大 的 标 题
    <h6></h6> Creates the smallest headline 创 建 最 小 的 标 题
    <b></b> Creates bold text 创 建 黑 体 字
    <i></i> Creates italic text 创 建 斜 体 字
    <tt></tt> Creates teletype, or
    typewriter-style text
    创 建 打 字 机 风 格 的 字 体
    <cite></cite> Creates a citation, usually
    italic
    创 建 一 个 引 用, 通 常 是 斜 体
    <em></em> Emphasizes a word (with italic
    or bold)
    加 重 一 个 单 词( 通 常 是 斜 体 加 黑 体)
    <strong></strong> Emphasizes a word (with italic
    or bold)
    加 重 一 个 单 词( 通 常 是 斜 体 加 黑 体)
    <font size=?></font> Sets size of font, from 1 to 7 设 置 字 体 大 小, 从 1 到 7
    <font color=?></font> Sets font color, using name or
    hex value
    设 置 字 体 的 颜 色, 使 用 名 字 或 十 六 进 制 值
       
    
    Links
    链 接
    <a href="URL"></a> Creates a hyperlink 创 建 一 个 超 链 接
    <a href="mailto:EMAIL">
    </a>
    Creates a mailto link 创 建 一 个 自 动 发 送 电 子 邮 件 的 链 接
    <a name="NAME"></a> Creates a target location within
    a document
    创 建 一 个 位 于 文 档 内 部 的 靶 位
    <a href="#NAME"></a> Links to that target location
    from elsewhere in the document
    创 建 一 个 指 向 位 于 文 档 内 部 靶 位 的 链 接
       
    
    Formatting
    格 式 排 版
    <p> Creates a new paragraph 创 建 一 个 新 的 段 落
    <p align=?> Aligns a paragraph to the left,
    right, or center
    将 段 落 按 左、 中、 右 对 齐
    <br> Inserts a line break 插 入 一 个 回 车 换 行 符
    <blockquote>
    </blockquote>
    Indents text from both sides 从 两 边 缩 进 文 本
    <dl></dl> Creates a definition list 创 建 一 个 定 义 列 表
    <dt> Precedes each definition term 放 在 每 个 定 义 术 语 词 之 前
    <dd> Precedes each definition 放 在 每 个 定 义 之 前
    <ol></ol> Creates a numbered list 创 建 一 个 标 有 数 字 的 列 表
    <li> Precedes each list item, and adds
    a number
    放 在 每 个 数 字 列 表 项 之 前, 并 加 上 一 个 数 字
    <ul></ul> Creates a bulleted list 创 建 一 个 标 有 圆 点 的 列 表
    <li> Precedes each list item, and adds
    the bullet
    放 在 每 个 圆 点 列 表 项 之 前, 并 加 上 一 个 圆 点
    <div align=?> A generic tag used to format large
    blocks of HTML, also used for
    stylesheets
    一 个 用 来 排 版 大 块HTML 段 落 的 标 签, 也 用 于 格 式 化 表
       
    
    Graphical elements
    图 形 元 素
    <img src="name"> Adds an image 添 加 一 个 图 像
    <img src="name" align=?> Aligns an image: left, right,
    center; bottom, top, middle
    排 列 对 齐 一 个 图 像: 左 中 右 或 上 中 下
    <img src="name" border=?> Sets size of border around an
    image
    设 置 围 绕 一 个 图 像 的 边 框 的 大 小
    <hr> Inserts a horizontal rule 加 入 一 条 水 平 线
    <hr size=?> Sets size (height) of rule 设 置 水 平 线 的 大 小( 高 度)
    <hr width=?> Sets width of rule, in percentage
    or absolute value
    设 置 水 平 线 的 宽 度( 百 分 比 或 绝 对 像 素 点)
    <hr noshade> Creates a rule without a shadow 创 建 一 个 没 有 阴 影 的 水 平 线
       
    
    Tables
    表 格
    <table></table> Creates a table 创 建 一 个 表 格
    <tr></tr> Sets off each row in a table 开 始 表 格 中 的 每 一 行
    <td></td> Sets off each cell in a row 开 始 一 行 中 的 每 一 个 格 子
    <th></th> Sets off the table header (a
    normal cell with bold, centered
    text)
    设 置 表 格 头: 一 个 通 常 使 用 黑 体 居 中 文 字 的 格 子
    Table attributes 表 格 属 性
    <table border=#> Sets width of border around
    table cells
    设 置 围 绕 表 格 的 边 框 的 宽 度
    <table cellspacing=#> Sets amount of space between table
    cells
    设 置 表 格 格 子 之 间 空 间 的 大 小
    <table cellpadding=#> Sets amount of space between a
    cell's border and its contents
    设 置 表 格 格 子 边 框 与 其 内 部 内 容 之 间 空 间 的 大 小
    <table width=# or %> Sets width of table - in pixels
    or as a percentage of document width
    设 置 表 格 的 宽 度- 用 绝 对 像 素 值 或 文 档 总 宽 度 的 百 分 比
    <tr align=?> or <td align=?> Sets alignment for cell(s) (left,
    center, or right)
    设 置 表 格 格 子 的 水 平 对 齐( 左 中 右)
    <tr valign=?> or <td valign=?> Sets vertical alignment for cell(s)
    (top, middle, or bottom)
    设 置 表 格 格 子 的 垂 直 对 齐( 上 中 下)
    <td colspan=#> Sets number of columns a cell should
    span (default=1)
    设 置 一 个 表 格 格 子 应 跨 占 的 列 数( 缺 省 为 1)
    <td rowspan=#> Sets number of rows a cell should
    span (default=1)
    设 置 一 个 表 格 格 子 应 跨 占 的 行 数( 缺 省 为 1)
    <td nowrap> Prevents the lines within a cell
    from being broken to fit
    禁 止 表 格 格 子 内 的 内 容 自 动 断 行 回 卷
       
    Frames 窗 框
    <frameset></frameset> Precedes the <body> tag in a frames document; can also be nested in other framesets 放 在 一 个 窗 框 文 档 的 <body> 标 签 之 前,也 可 以 嵌 在 其 他 窗 框 文 档 中
    <frameset rows="value,value"> Defines the rows within a frameset,
    using number in pixels, or percentage
    of width
    定 义 一 个 窗 框 内 的 行 数, 可 以 使 用 绝 对 像 素 值 或 高 度 的 百 分 比
    <frameset cols="value,value"> Defines the columns within a frameset, using number in pixels, or percentage
    of width
    定 义 一 个 窗 框 内 的 列 数, 可 以 使 用 绝 对 像 素 值 或 宽 度 的 百 分 比
    <frame> Defines a single frame - or region - within a frameset 定 义 一 个 窗 框 内 的 单 一 窗 或 窗 区 域
    <noframes></noframes> Defines what will appear on browsers
    that don't support frames
    定 义 在 不 支 持 窗 框 的 浏 览 器 中 显 示 什 么 提 示
       
    Frames attributes 窗 框 属 性
    <frame src="URL"> Specifies which HTML document should
    be displayed
    规 定 窗 框 内 显 示 什 么HTML 文 档
    <frame name="name"> Names the frame, or region, so it may
    be targeted by other frames
    命 名 窗 框 或 区 域 以 便 别 的 窗 框 可 以 指 向 它
    <frame marginwidth=#> Defines the left and right margins for the frame; must be equal to or greater than 1 定 义 窗 框 左 右 边 缘 的 空 白 大 小, 必 须 大 于 等 于1
    <frame marginheight=#> Defines the top and bottom margins for the frame; must be equal to or greater than 1 定 义 窗 框 上 下 边 缘 的 空 白 大 小, 必 须 大 于 等 于1
    <frame scrolling=VALUE> Sets whether the frame has a scrollbar; value may equal "yes," "no," or "auto." The default, as in ordinary documents,
    is auto.
    设 置 窗 框 是 否 有 滚 动 栏, 其 值 可 以 是 "yes", "no", "auto", 缺 省 时 一 般 为 "auto"
    <frame noresize> Prevents the user from resizing a frame 禁 止 用 户 调 整 一 个 窗 框 的 大 小
       
    Forms 表 单
    For functional forms, you'll have to run a CGI scrīpt. The HTML just creates the appearance of a form. 对 于 功 能 性 的 表 单,一 般 需 要 运 行 一 个 CGI 小 程 序,HTML仅 仅 是产 生 表 单 的 表 面 样 子。
    <form></form> Creates all forms 创 建 所 有 表 单
    <select multiple name="NAME" size=?></select> Creates a scrolling menu. Size sets the number of menu items visible before you need to scroll. 创 建 一 个 滚 动 菜 单,size 设 置 在 需 要 滚 动 前 可 以 看 到 的 表 单 项 数 目
    <option> Sets off each menu item 设 置 每 个 表 单 项 的 内 容
    <select name="NAME"></select> Creates a pulldown menu 创 建 一 个 下 拉 菜 单
    <option> Sets off each menu item 设 置 每 个 菜 单 项 的 内 容
    <textarea name="NAME" cols=40 rows=8></textarea> Creates a text box area. Columns set the width; rows set the height. 创 建 一 个 文 本 框 区 域,列 的 数 目 设 置 宽 度,行 的 数 目 设 置 高 度
    <input type="checkbox" name="NAME"> Creates a checkbox. Text follows tag. 创 建 一 个 复 选 框,文 字 在 标 签 后 面
    <input type="radio" name="NAME" value="x"> Creates a radio button. Text follows
    tag
    创 建 一 个 单 选 框,文 字 在 标 签 后 面
    <input type=text name="foo" size=20> Creates a one-line text area. Size
    sets length, in characters.
    创 建 一 个 单 行 文 本 输 入 区 域,size 设 置 以 字 符 计 的 宽 度
    <input type="submit" value="NAME"> Creates a Submit button 创 建 一 个 submit(提 交)按 钮
    <input type="image" border=0 name="NAME" src="name.gif"> Creates a Submit button using an image 创 建 一 个 使 用 图 象 的 submit(提 交)按 钮
    <input type="reset"> Creates a Reset button 创 建 一 个 reset(重 置)按 钮

    各种实用手册

     

  • 噩梦集

    2007-03-01 09:31:10Top 1

    2007-02-28 噩梦,睡觉惊醒一回。

    2007-03-12 噩梦,睡觉未惊醒但到20070313傍晚都还记得那张骷髅脸,且离我的脸是那么的近。

    2007-03-13 噩梦,晚上惊醒迷迷糊糊,早上起床忘记,随后想起,现在基本彻底忘记。

    2007-03-14 不算是噩梦,老是记着考试,在初中上学的地方但是是和高中的同学一起。我是不是太想家了?

    2007-03-15  梦见自己在跳舞。


    2007-03-18 梦见回到了家乡,看不到也找不到爸爸妈妈,大家包括亲戚一起吃饭都不理我,很强的失落感,直到早上都是;还梦见许多许多蝌蚪大状的乌龟都长着翅膀飞来飞去的,bite me,象是揭皮一样的疼,不知道是不是我养的那两只乌龟托梦给偶。 现在头都昏沉沉的还稍微有些疼

    2007-03-21 梦见在初中的课堂里小学的班长指责我上课前不该玩梦幻西游;然后下课走在走廊里还是上学走楼梯的路上,教室里正在做高中的什么化学实验,每个教室门口都会爆出试管爆炸的玻璃瓶碎片,我不停的躲,趴在地上,用手遮住脸,不敢往前看。

    2007-03-23 好多象甲壳虫一样的飞虫钻进我的皮肤肉体里,然后猛涨开,身体痉挛。


    2007-04-14 梦见手断了,曾经补牙的那位老太太对我说,你这只手得去香港,那边的技术好,居然还看见手被暂时象石膏一样的泥巴糊住了,竟然做成手的样子,恐怖的是手还能动?医生敲敲连接处问这里疼不疼,那里疼不疼,整个过程都很奇怪手什么时候断了?

    2007-04-22 噩梦,梦见偷看到某人杀人了,场景是在小学教学楼里,连续几个班级的玻璃上都是散射状血渍,恐怖的是,还要和这个杀人犯和睦相处,难怪早上2007-04-23一直到现在都惴惴不安。

    2007-04-23 噩梦,超累,不过不记得了


    2007-05-10 噩梦,自己的脑袋被飞机削平了,除了感到凉飕飕的眩晕之外好像每别的感觉,心里总觉得死了死了,这下必死无疑了...然后就是大家看到快死的我都很关心爱护我,我很喜欢那种本人快死了大家都围着我转嘘寒问暖的情形。


    2007-06-18 凌晨 不停的睡着不停的睡醒,但都在逃命。

    2007-06-19 凌晨 好像被人抓住了,然后被拖着走,毫无力气,在嘴里灌洗手液、接着灌完了再换成洗衣粉,惊恐之后醒来,头重的抬不起来。

     

     



    2008-09-17 09:35:35 / 个人分类:碎碎念

    噩梦惊醒,找手机看了一下,五点,继续睡觉,却不易入睡,昏昏迷迷一个小时中,继续被梦魇缠绕,起来,六点,头疼的要命,躺下,依旧疲惫不堪。

    内容:在**市城隍庙的家里,我、爸爸、妈妈都在躲人,其实是被那人追杀,结果和爸爸妈妈走散了,心里很难过又很恐惧,具体的已经不太记得了,反正最后居然自己能在北门双岗那边的家里的院子飞起来,但是飞不高,就像升天的那种感觉,当时梦里还以为自己逃脱了。。。


  • 网址(不断更新。。。)

    2007-02-27 15:36:49Top 1

    http://www2.tianya.cn/New/PublicForum/Content.asp?idWriter=0&Key=0&strItem=no11&idArticle=388242&flag=1

     

    http://main.tianya.cn/index.ty?url=http://cache8.tianya.cn/publicforum/Content/no11/1/383226.shtml

     

    这些真是狂牛。。。学习ing。。。

    http://shop33297078.taobao.com/

    http://shop20548375.taobao.com/

    http://bbs.dukuai.com/archiver/fid-118.html

     

    http://shop34266194.taobao.com/ 这个是很多小玩意儿,家居用品

     

    2008-1-16

    http://shop33770622.taobao.com

    全部是成套卖的YY,很fashion,但是不知道材料怎么样,况且我觉得针织毛衣都一百五左右简直是暴利厄,不敢买。。。

     

  • Subversion库迁移及备份方案

    2009-11-11 17:10:37

    Subversion库迁移及备份方案

    在做迁移操作前,请停止对svn进行提交操作。
    1. 迁移方案(采用dump -load方案):

    源SVN服务器:192.168.1.200,Windows服务器

    目标SVN服务器:192.168.1.201,Windows服务器。采用CollabNet Subversion Server,假定subversion安装在D:\Program Files\CollabNet Subversion Server上,SVN的Repository为d:\Subversion\svnbackup

    也即Windows服务中,可执行文件的路径为:

    “d:\Program Files\CollabNet Subversion Server\svnserve.exe” –service -r “d:\Subversion\svnbackup” –listen-port “3690″

    由于目前在subversion服务器上实际上只有svn://192.168.1.200/rd目录下才有内容,因此只需要迁移svn://192.168.1.201/rd下的内容,步骤如下:

    1、 在源服务器192.168.1.200上执行dump操作

    注意此处实际上把repository中所有的目录都备份了,需要在load时候采用svndumpfilter命令过滤需要的目录。

    svnadmin dump D:\Subversion\svnworkspace\bak >svn_all_20080520.dump

    2、 在192.168.1.201上创建svnbackup Repository

    svnadmin create d:\Subversion\svnbackup

    3、 下载一个windows 版本gnu 工具(例如http://sourceforge.net/projects/gnuwin32/),主要是使用cat方法

    4、 将dump文件拷贝到上并执行load操作

            cat svn_all_20080520.dump | svndumpfilter --include:rd >svn_rd_20080520.dump

    5、 执行svnadmin load

            svnadmin load d:\Subversion\svnbackup < svn_rd_20080520.dump

    6、 在192.168.1.201上配置svnserve.conf、passwd、authz文件
    2. 迁移方案(采用svnsync方案)

    从subversion 1.4.4开始,提供了svnsync命令,可用于Subversion的库迁移和备份,这里我们用于备份操作的初始化同步。

    假定从源服务器192.168.1.201备份到192.168.1.88

    SVN服务器:192.168.1.201,Windows服务器,采用CollabNet Subversion Server,假定subversion安装在D:\Program Files\CollabNet Subversion Server上,SVN的Repository为d:\Subversion\svnbackup。

    备份服务器: 192.168.1.88,Redhat As 4服务器

    采用svnsync进行数据迁移,方法如下:

    1、 在备份服务器192.168.1.88上创建源服务器192.168.1.201上对应的备份库目录

    mkdir /opt/subversion

    svnadmin create  /opt/subversion/svnbackup

    2、在备份服务器192.168.1.88上启用钩子文件

    cd  /opt/subversion/svnbackup/hooks

    echo “#!/bin/sh”> pre-revprop-change

    chmod 755 pre-revprop-change

    3、在备份服务器192.168.1.88上运行svnsync init命令

    svnsync init file:////opt/subversion/svnbackup  svn://192.168.1.201 –username username –password password

    注意,svnsync的语法为:svnsync init DEST SOURCE

    4、在备份服务器192.168.1.88上执行同步操作

    svnsync sync file:////opt/subversion/svnbackup

    由于svnsyc只能同步整个svn库,并不能同步指定的项目,因此建议迁移时候使用dump-load方案,备份时候采用svnsync方案
    3. 备份方案:

    为保证svn服务器的安全,由脚本每天定时对svn库进行备份,以保证svn库的安全性。备份仍然采用svnsync来完成。

    1. 在192.168.1.88  上安装subversion 服务器端

    2. 在192.168.1.88上创建备份用户帐号svnsync,以供192.168.1.201能够以此帐号实时把变更的同步到192.168.1.88上

    配置文件svnserve.conf:

    [general]

    anon-access = none

    auth-access = write

    password-db = passwd

    authz-db = authz

    配置文件passwd:

    svnsync=svnsync

    配置文件authz

    [groups]

    developer = svnsync

    [/]

    @developer=rw

    * =

    3. 在备份机上开启iptables的3690端口

    4. 在备份机192.168.1.88上创建备份库目录

    svnadmin create /opt/subversion/svnbackup

    chown –R svnsync:svnsync  /opt/subversion/svnbackup

    5. 按照上述采用svnsync方案的步骤,将库同步到192.168.1.88上,初始化svn库

    cd  /opt/subversion/svnbackup/hooks

    echo “#!/bin/sh”> pre-revprop-change

    chmod 755 pre-revprop-change

    svnsync init file:////opt/subversion/svnbackup  svn://192.168.1.201 –username username –password password

    svnsync sync file:////opt/subversion/svnbackup

    6. 在源服务器192.168.1.201上,创建钩子文件,保证192.168.1.201上的变动实时同步到192.168.1.88上:
    post-commit

    # Propagate the data to the remote repository

    D:\Program Files\CollabNet Subversion Server\svnsync synchronize --username svnsync --password svnsync  svn:// 192.168.1.88

    post-rev-changes

    # Propagating changes to the remote repository.

    D:\Program Files\CollabNet Subversion Server\bin\svnsync copy-revprops --username svnsync --password svnsync  svn:// 192.168.1.88 $REV 

    4. 参考文档:

    http://blog.notreally.org/articles/2006/11/30/setting-up-a-subversion-mirror-repository-using-svnsync/

  • 详说Subversion备份

    2009-11-11 16:48:02

    作者: rocksun   
    2006-10-26

    作者:Rock Sun, Subversion中文站。
    如有转发请注明出处:http://www.subversion.org.cn/ind ... ;id=85&Itemid=9

    版本控制最关键的一件事是保证数据的安全性,不能因为磁盘损坏,程序故障造成版本库无可挽回的错误,为此必须制定较完备的备份策略。在Subversion中,我们有三种备份方式:完全备份,增量备份和同步版本库。
    1, 完全备份

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

    还记得我们的版本库目录吗?

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

    我们在D:\SVNROOT下创建了两个文件,simpleBackup.bat:

        @echo 正在备份版本库%1......
        @%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
        @echo 版本库%1成功备份到了%2!

    这个文件仅仅是对“svnadmin hotcopy”的包装,然后是backup.bat:

        echo off

        rem Subversion的安装目录
        set SVN_HOME="D:\Subversion"

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

        rem 备份的目录
        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%
        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%已经存在,请清空。
        goto end

        :end

    根据以上的配置,你只需要运行backup.bat,就可以把“SVN_ROOT”下的版本库都备份到“BACKUP_SVN_ROOT”里,并且存放在备份所在日的目录里,例如“D:\svnrootbak\2006-10-22”。

    虽然这部分工作很简单,可是必须有人定时地去执行这个操作(例如每周五),为了避免发生遗忘的情况,我们可以将这个操作加入到系统的at人物当中去,例如还是上面的环境,为了安装at,我们运行:

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

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

    2, 增量备份

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

    增量备份通常要与完全备份结合使用,就像oracle数据库的归档日志,记录着每次Subversion提交的变化,然后在需要恢复时能够回到最新的可用状态。

    为了记录每次提交的结果,我们需要使用一项Subversion的特性--钩子(hook),看看我们的project1目录:

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

    其中的hooks目录里存放的就是钩子脚本,我们在此处只使用post-commit钩子,这个钩子会在每次提交之后执行,为了实现我们的备份功能,我们在hooks下建立一个文件post-commit.bat,内容如下:

        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

    通过这个脚本,可以实现D:\svnroot下的版本库提交时自动增量备份到D:\svnrootbak\delta(确定这个目录存在),其中使用的deltaBackup.bat其实可以放在任何地方,只是对脚本的svnadmin dump的包装,内容如下:

        @echo 正在备份版本库%2......
        %SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%1 --incremental --revision %2 >> %DELTA_BACKUP_SVN_ROOT%\%1.dump
        @echo 版本库%2成功备份到了%3!

    以上两个脚本可以直接拷贝到project2的hooks目录下,不需要修改就可以实现project2的自动备份。

    以上的操作已经OK了,现在需要做的是将完全备份和增量备份结合起来,也就是在完全备份后清理增量备份的结果,使只保存完全备份后的结果。

    最后的结果,可以下载附件,将之解压缩到d:\下,然后修改几个bat文件的SVN_HOME就可以使用了。
    3, 版本库同步

    Subversion 1.4增加了同步机制,可以实现一个版本库同另一个版本库的同步(但好像只是单向的),我们可以用来实现版本库的备份或镜像。
    3.1. 对目标库初始化

        svnsync init svn://localhost/project2 svn://localhost/project1
         

    其中project2是目标的版本库,而project1是源版本库。其中的目标版本库必须为空,而且必须训育修订版本属性的修改,也就是在目标的版本库的hooks目录里添加一个文件pre-revprop-change.bat,内容为空即可。
    3.2. 同步project2到project1

        svnsync sync svn://localhost/project2
         

    这时候你update一下你的project2的一个工作拷贝,就会发现有了project1的所有内容。如果project1又有提交,这时候 project2的版本库无法看到最新的变化,还需要再运行一遍sync操作,这样才能将最新的变化同步。需要注意的是,目标版本库只能做成只读的,如果目标版本库发生了变更,则无法继续同步了。
    3.3. 同步历史属性的修改

    因为同步不会更新对历史属性的修改,所以svnsync还有子命令copy-revprops,可以同步某个版本的属性。
    3.4. 钩子自动同步

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

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


    把以上内容存放为post-commit.bat,然后放到版本库project1下的hooks目录下,这样project1每次提交,都会引起project12的同步。

  • SVN Backup Widget

    2009-11-11 16:17:01

    Project Description
    Utility to create Subversion repository backups using the svnadmin dump command. This utility allows you to create profiles for different backup scenarios.

    Support Forums
    http://www.systemwidgets.com/Support/Forums/tabid/72/view/topics/forumid/2/Default.aspx

    Screen Shots

    Opening Screen
    initial screen.gif

    Configuration Screen
    server settings.gif

    Successful Setup
    successful server setup.gif
    Last edited Mar 11 at 11:47 PM by HectorSosaJr, version 11
  • 专心把病看好。

    2009-10-26 12:20:51

    加油。
  • 冰皮月饼

    2009-10-09 09:15:15

    国庆节最大的成就就是做了36个冰皮月饼,不过是中秋以后做的

    牛奶味道的冰皮10g,馅料是紫薯的25g,成品35g,模具50g的

    晚上饿了,吃一个,非常的经饿

    可惜没拍图,累个半死,但是累的很值。

  • svn目录结构组成的教程

    2009-09-29 17:20:07

    wolfwebadmin
    ├─ProjectManagement
    │  ├─trunk
    │  ├─branches
    │  └─tags
    └─SSO
        ├─trunk
        ├─branches
        └─tags
    大概的说一下, ProjectManagement和SSO是两个项目 trunk是开发的主线代码, 存放能够运行的正确的代码; 程序员如果开发新的程序或者改bug, 一般要先branch(SVN的一个功能) trunk目录下的代码到branches目录的一个子目录,在那里对代码进行修改, 确认无误后再提交到trunk主线下(但是有的时候为了效率, 我们也多人都在trunk目录下开发项目). tags目录可以看做主线代码的快照, 比如你做了1.0又做了2.0, 那每个不同版本的代码你就做快照放到tags文件夹下了.

     
    一下文字转自http://rocksun.cn/svn/?p=43 Subversion版本库布局 很多人问我”什么是推荐的版本库布局?”,”trunk是什么意思?”或”trunk有什么意义?”,本文将会尝试回答这个问题。

    一个Subversion版本库实现了一种版本化的文件系统,版本库只是一个包含目录和文件的文件系统,而且它的文件系统是版本化的,并且实现了” 廉价”拷贝,让它的这种操作比传统文件系统便宜很多,但是版本库本身还是像一个文件系统:Subversion本身没有特别的目录或名称用来代表 trunk或branches,他们只是文件系统的普通目录,这依赖于你给这些目录名和结构的一种意义。

    也就是说,社区已经采纳了多种普通的布局作为最佳实践,因此一个人可以将其视为推荐方式。如果你的版本库是公共访问的,根据这些习惯,用户可以方便的访问版本库来查找他们所需要的。

    有两种常见的布局:

    trunk
    branches
    tags
    第一种布局是版本库包含一个项目或一组紧密联系项目的最佳选择,这个布局非常好用,因为分支与标签整个项目或一组项目会非常简单,只需要一个简单的命令:

    svn copy url://repos/trunk url://repos/tags/tagname -m “Create tagname”

    这可能是最常用的版本库布局,被许多开源项目采用,就像Subversion本身和Subclipse,这是大多数主机站点,如Tigris.org, SourceForge.net和Google Code遵循的方法,这些站点的每个项目有自己的版本库。

    另一种布局是针对一个版本库包含不相关项目的最佳选择。

    ProjectA
       trunk
       branches
       tags
    ProjectB
       trunk
       branches
       tags
    在这种布局里,每个项目会存在顶级目录里,然后该目录之下创建trunk/branches/tags,其中与第一种布局相同,这只是将项目放到自己版本库方式的替换,他们都在一个版本库中。Apache软件基金会使用这种布局方式来存放他们的所有项目在一个版本库。

    通过这种布局,每个项目都有自己的分支和标签,可以很容易使用一个命令创建分支和标签,就像前面展示的:

    svn copy url://repos/ProjectA/trunk url://repos/ProjectA/tags/tagname -m “Create tagname”

    这种布局可以简单的创建同时包含ProjectA和ProjectB的标签,你可以这样做,但是需要多个命令,你也要决定是否创建一个特别的目录存放这种分支和标签,如果你需要经常这样做,你或许应该考虑第一种布局。

    至于版本库中目录的名称,再说一遍:只是一种习惯,他们在Subversion中没有特别含义。

    “trunk”可以认为是项目的开发主线,你可以称之为 “main”,”mainline”,”production”或任何你喜欢的名字。

    “branches”是放置分支的地方,人们因各种目的使用分支,你或许希望通过特性分支或客户修改分支来隔离你的发布或维护分支等,在这个例子里,你可以在branches创建一层目录,或只是在顶级目录创建多个分支目录。

    “tags”也不会被Subversion特别对待,他们只是习惯,或许通过钩子脚本或授权规则进行强制,来指明你创建了一个时间点的快照,通常情况下tags与分支的区别就是tags一旦创建不能修改,你也可以将标签目录叫做”releases” ,”snapshots”,”baselines”或任何你喜欢的。

    记住,名称对你有意义,不是Subversion。最后,Subversion的架构,全局修订版本经常使得标签没有必要,我不知道只是因为要创建 tag而创建tag有什么意义,如果你需要在特定时间点重建软件,你可以通过svn log来确定相关的修订版本号。tags对于版本库的”外部”用户很有用,或许QA/Release团队需要执行构建,或许是一个内部开发小组希望在另一个产品使用发布版本,或是外部用户或客户希望根据字面含义从版本库获取发布快照,在这些场景中,创建tag是保证获取正确代码的最简单方法,也需要有好的交流机制来指明发布快照。

    希望本文可以为你澄清一些问题,让你更好的理解Subversion是如何工作的。

    最后,我希望指出Subversion版本库的布局是可以修改的,你可以一直重组和重构布局,最坏情况下,会让用户调整他们的工作拷贝,但不会让你从头再来,你应该自由的改名,移动目录或任何你希望改变版本库的方式去做。

    文章来自[SVN中文技术网]转发请保留本站地址:http://www.svn8.com/SVNzixun/20080414/502.html

  • 我应该继续走

    2009-09-19 11:08:43

    不该放弃。

     

  • 我应该继续走

    2009-09-19 11:08:43

    不该放弃。

     

Open Toolbar