首页 > > > java学习笔记.pdf

java学习笔记.pdf

java学习笔记.pdf

上传者: zaki 2011-02-24 评分1 评论0 下载640 收藏10 阅读量1120 暂无简介 简介 举报

简介:本文档为《java学习笔记pdf》,可适用于IT书籍领域,主题内容包含java学习笔记作者:韩悠悠http:qqcomjavaeyecomjava学习笔记http:wwwjavaeyecom做最棒的软件开发交流社区第页符等。

java学习笔记 作者: 韩悠悠 http://501565246-qq-com.javaeye.com java学习笔记 http://www.javaeye.com - 做最棒的软件开发交流社区 第 1 / 356 页 本书由JavaEye提供的电子书DIY功能自动生成于 2010-10-10 目 录 1. TortoiseSVN 1.1 什么是 TortoiseSVN? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2 TortoiseSVN 的历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3 TortoiseSVN 的特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 安装 TortoiseSVN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5 第 2 章 Basic Version-Control Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6 版本模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7 Apache安装基本过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.8 Subversion 实战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.9 创建版本库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.10 版本库备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.11 服务器端钩子脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.12 检出链接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.13 基于 svnserve 的服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.14 基于 Apache 的服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 1.15 日常使用指南 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 1.16 导入数据到版本库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 1.17 检出工作副本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 1.18 将你的修改提交到版本库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 1.19 用来自别人的修改更新你的工作副本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 http://501565246-qq-com.javaeye.com 第 2 / 356 页 1.20 解决冲突 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 1.21 获得状态信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 1.22 本地与远程状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 1.23 修改列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 1.24 版本日志对话框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 1.25 查看差异 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105 1.26 添加新文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 1.27 复制/移动/重命名文件和文件夹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 1.28 忽略文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 1.29 删除、移动和改名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 1.30 撤消更改 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 1.31 清理f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 1.32 项目设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 1.33 外部条目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130 2. java 2.1 LDAP读书笔记2-LDAP协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 2.2 Hibernate Blob数据类型映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136 2.3 元数据(ResultSetMeta接口)学习笔记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 2.4 JAVA中Session的会话状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 2.5 Java里设置session的几种方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 2.6 Java包导入机制的研究与解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 2.7 java的克隆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151 http://501565246-qq-com.javaeye.com 第 3 / 356 页 2.8 net.sf.json.JSONException: There is a cycle in the . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152 2.9 Java需要达到的30个目标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 3. web 3.1 request.getParameterMap的学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 3.2 HttpSession session = request.getSession(true) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156 3.3 mysql乱码问题解决 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 3.4 JPA注解学习总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 3.5 JPA详细说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 3.6 jstl的配置方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 3.7 Ext动画功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170 4. struts2 4.1 Struts2概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 4.2 struts2的Result配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 4.3 Struts2通用的Action配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 5. spring 5.1 Spring注解入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180 5.2 Spring 笔记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189 5.3 Spring下单元测试的要点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192 5.4 spring事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194 5.5 spring security工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 5.6 spring的DataSource数据源分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 http://501565246-qq-com.javaeye.com 第 4 / 356 页 5.7 spring中jdbcTemplate归纳1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 5.8 spring中jdbcTemplate归纳2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 5.9 使用spring的jdbcTemplate-----用jdbc模板跟新数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 5.10 使用spring的jdbcTemplate-----用JDBC模板查询数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 5.11 使用spring的jdbcTemplate-----简化JdbcTemplate模板的创建 . . . . . . . . . . . . . . . . . . . . . . . . .251 5.12 使用spring的jdbcTemplate-----SimpleJdbcTemplate的使用 . . . . . . . . . . . . . . . . . . . . . . . . . .255 5.13 使用spring的jdbcTemplate-----使用具名参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 5.14 使用spring的jdbcTemplate-----将JDBC操作建模为细粒度的对象 . . . . . . . . . . . . . . . . . . . . . . . .262 6. hibernate 6.1 hibernate注解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267 6.2 Hibernate的那些事-manyToOne注解映射(List集合) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270 6.3 Hibernate主键生成方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 6.4 Hibernate乐观锁和悲观锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278 6.5 Hibernate中saveOrUpdate()使用时要注意的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 6.6 Hibernate源代码分析之大纲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 6.7 如何结合hibernate进行复杂的查询功能设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 6.8 Hibernate中的Session缓存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 6.9 Hibernate中的对象的状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 6.10 Hibernate乐观锁和悲观锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 6.11 Hibernate column属性简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 6.12 Hibernate的多对一和一对多操作实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 7. oracle http://501565246-qq-com.javaeye.com 第 5 / 356 页 7.1 oracle日期函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308 7.2 Oracle日期和字符串函数转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 7.3 ORACLE插入日期数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 7.4 oracle循环插入数据函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312 8. thinking in java编程学习笔记 8.1 泛型讨论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 8.2 泛型讨论------一个元组类库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 8.3 泛型讨论------堆栈类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321 8.4 泛型讨论------泛型接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324 8.5 泛型讨论------泛型方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327 8.6 泛型讨论------类型参数推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 8.7 泛型讨论------可变参数与泛型方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 8.8 泛型讨论------一个更通用的对象生成器Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333 8.9 泛型讨论------利用泛型求交集并集等数学知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 8.10 泛型讨论------危害 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 8.11 泛型讨论------危害的解决 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 8.12 泛型讨论------危害的解决2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 8.13 数组1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 8.14 数组实用功能(Arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349 9. 杂谈 9.1 路走到尽头,才能领悟当初的因果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 http://501565246-qq-com.javaeye.com 第 6 / 356 页 10. 未分类 10.1 svn教程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353 http://501565246-qq-com.javaeye.com 第 7 / 356 页 1.1 什么是 TortoiseSVN? 发表时间: 2010-08-30 TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保 存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢 复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备 许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样 的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。 http://501565246-qq-com.javaeye.com 1.1 什么是 TortoiseSVN? 第 8 / 356 页 1.2 TortoiseSVN 的历史 发表时间: 2010-08-30 在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形化客户端,创建一个 作为 Windows 外壳集成的 Subversion 客户端的创意来自 TortoiseCVS,一个非常类似的 CVS 客户端。 Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,然后开始这个项目,注册了域名 tortoisesvn.org,并将源代码提交到网上。此时 Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 和 TortoiseSVN,由于 TortoiseSVN 还不能够使用,他加入了这个项目并开始编程。很快他便重 写了大多数代码,并且开始添加命令和特性,此时,最初的代码都已经不复存在了。 随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们的 Subversion 客户 端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了许多漂亮图标和 TortoiseSVN 的 logo,细心照 料网站并且管理翻译。 http://501565246-qq-com.javaeye.com 1.2 TortoiseSVN 的历史 第 9 / 356 页 1.3 TortoiseSVN 的特性 发表时间: 2010-08-30 是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。 外壳集成 TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使 用版本控制功能时切换应用程序。 并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文 件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器 的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。 重载图标 每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。 Subversion 命令的简便访问 所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。 因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性: 目录版本控制 CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修 改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。 原子提交 提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。 版本控制的元数据 每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内 容。 可选的网络层 Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务 器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在 稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等 等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封 http://501565246-qq-com.javaeye.com 1.3 TortoiseSVN 的特性 第 10 / 356 页 装。 一致的数据处理 Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一 致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。 高效的分支和标签 分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬 链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。 良好的维护能力 Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容 易维护,可以轻易的被其他语言和程序使用。 http://501565246-qq-com.javaeye.com 1.3 TortoiseSVN 的特性 第 11 / 356 页 1.4 安装 TortoiseSVN 发表时间: 2010-08-30 系统要求 TortoiseSVN 可以运行在 Windows 2000 SP2,Windows XP 或更高的版本。TortoiseSVN 1.2.0 以后不再支 持 Windows 98, Windows ME 和 Windows NT4,但是如果需要的话,你仍旧可以下载以前的版本。 如果在安装 TortoiseSVN 时发现了任何问题,请首先参考附录 A, 常见问题(FAQ)。 安装 TortoiseSVN 提供一个容易使用的安装程序。双击安装程序文件并按照提示操作。安装程序将会完成剩余的步 骤。 重要 你需要管理员权限来安装 TortoiseSVN。 语言包 TortoiseSVN 的界面已经翻译成了许多种语言,所以你可以下载符合你要求的语言包。你可以在我们的翻译状 态页里看到语言包。如果没有你需要的,为什么不加入我们的团队并且提交你的翻译呢?-) 每一种语言包都是一个 .exe 安装程序,只要根据向导运行安装程序,当你下一次启动程序时,翻译就会生效。 拼写检查器 TortoiseSVN 包括了一个拼写检查器,可以检查你的提交日志信息,当你的项目语言不是你的本地语言时尤其 有用,拼写检查器使用 OpenOffice 和 Mozilla 相同的词典。 安装程序自动添加 US 和 UK 英语词典。如果你需要其他语言,最简单的方法是安装 TortoiseSVN 的语言包, 这会安装合适的词典文件和 TortoiseSVN 的本地用户界面,当你下一次启动程序时,词典也将会生效。 或者你也可以自己安装词典。如果你安装了 OpenOffice 或 Mozilla,你可以复制这些词典,位于那些应用的安 装目录。否则,你需要从 http://wiki.services.openoffice.org/wiki/Dictionaries 下载必要的词典文件。 一旦你得到了词典文件,你可能需要重命名文件,这样文件名只包含位置信息,例如: en_US.aff en_US.dic http://501565246-qq-com.javaeye.com 1.4 安装 TortoiseSVN 第 12 / 356 页 然后把它们复制到TortoiseSVN 安装目录的 bin 子目录,通常情况下,可能是在 C:\Program Files\TortoiseSVN\bin。如果你不希望弄乱bin子目录,你可以将拼写检查文件放置在C:\Program Files\TortoiseSVN\Languages,如果那个目录不存在,你可以自己创建,当你下次启动TortoiseSVN 时,就 可以使用拼写检查器。 如果你安装了多个词典,TortoiseSVN 使用下面的规则选择一个。 检查 tsvn:projectlanguage 设置,关于设置项目属性可以参考“项目设置”一节。 如果没有设置项目语言,或者那个语言没有安装,尝试使用对应 Windows 区域信息的语言。 如果精确的 Windows 区域信息不起作用,可以试一下“基础”语言,例如将 de_CH(Swiss-German) 修改为 de_DE (German)。 如果以上都没有效果,则缺省语言是英语,包含在标准安装中。 http://501565246-qq-com.javaeye.com 1.4 安装 TortoiseSVN 第 13 / 356 页 1.5 第 2 章 Basic Version-Control Concepts 发表时间: 2010-08-30 本章修改自《使用 Subversion 进行版本管理》的相同章节,它的在线版本位于: http://svnbook.red- bean.com/。 这一章是对 Subversion 一个简短随意的介绍,如果你对版本控制很陌生,这一章节完全是为你准备的,我们从 讨论基本概念开始,深入理解 Subversion 的思想,然后展示许多简单的实例。 尽管我们的例子展示了人们如何分享程序源代码,仍然要记住 Subversion 可以控制所有类型的文件-它并没有 限制只为程序员工作。 版本库 Subversion 是一种集中的分享信息的系统,它的核心是版本库,储存所有的数据,版本库按照文件树形式储存 数据-包括文件和目录,任意数量的客户端可以连接到版本库,读写这些文件。通过写数据,别人可以看到这 些信息;通过读数据,可以看到别人的修改。 图 2.1. 一个典型的客户/服务器系统 所以为什么这很有趣呢?讲了这么多,让人感觉这是一种普通的文件服务器,但实际上,版本库是另一种文件 服务器,而不是你常见的那一种。最特别的是 Subversion 会记录每一次的更改,不仅针对文件也包括目录本 身,包括增加、删除和重新组织文件和目录。 When a client reads data from the repository, it normally sees only the latest version of the filesystem tree. But the client also has the ability to view previous states of the filesystem. For example, a client can ask historical questions like, “what did this directory contain last Wednesday?”, or “who was the last person to change this file, and what changes did they make?” These are the sorts of questions that are at the heart of any version control system: systems that are designed to record and track changes to data over time. http://501565246-qq-com.javaeye.com 1.5 第 2 章 Basic Version-Control Concepts 第 14 / 356 页 1.6 版本模型 发表时间: 2010-08-30 所有的版本控制系统都需要解决这样一个基础问题: 怎样让系统允许用户共享信息,而不会让他们因意外而互相 干扰?版本库里意外覆盖别人的更改非常的容易。 文件共享的问题 考虑这个情景,我们有两个共同工作者,Harry 和 Sally,他们想同时编辑版本库里的同一个文件,如果首先 Harry 保存它的修改,过了一会,Sally 可能凑巧用自己的版本覆盖了这些文件,Harry 的更改不会永远消失(因 为系统记录了每次修改),Harry 所有的修改不会出现在 Sally 的文件中,所以 Harry 的工作还是丢失了—至少 是从最新的版本中丢失了—而且是意外的,这就是我们要明确避免的情况! 图 2.2. 需要避免的问题 锁定-修改-解锁 方案 Many version control systems use a lock-modify-unlock model to address this problem, which is a very

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 356
所需积分:0 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!