SVN与TortoiseSVN实战:从入门到精通
SVN,版本控制程序,是支撑项目开发的基础工具。
在团队开发中,不管是程序员还是美工、测试等人员,都会用到SVN,通常会把SVN视为源代码管理工具,但对于SVN更准确的理解是:
“帮助参与项目人员的管理他们的项目资产,其中项目资产包括:源代码、文档、测试和构建脚本等。”
SVN带来的优势:
1、提供项目级别撤销的可能;
2、协调团队开发,避免团队成员开发的代码相互覆盖;
3、SVN记录每次提交的改动,它允许你恢复旧版本的数据,或者追查数据变化的历史;
4、SVN允许团队在保持主线开发的同时,建立发布分支,并在发布分支上修改BUG,而不是团队开发的停滞;
5、....
正确使用SVN能给项目和团队带来非常明显的优势,即使你独自一个人在开发项目,也强烈建议你通过SVN来管理你的项目。
相信很多人都在用或使用过SVN,但正确使用SVN的人可能还是比较少的,很多人对于SVN可能仅限于提交、更新上,对于SVN的标签、分支、加锁等使用知之甚少。
你使用正确使用了SVN?
1、你是否在SVN项目仓库中合理划分了trunk、branches、tags目录来管控项目?
2、你是否在发布新版的过程中建立了发布分支,还是让团队中的开发人员停下来或不要提交代码?
3、你是否在版本发布后建立了版本标签?
4、你是否在编辑二进制文件时正确使用了加锁策略?
5、你是否听说过SVN的关键字展开的功能?
6、你是否知道一次提交后会解锁所有的加锁文件?
7、.......
SVN与TortoiseSVN实战:从入门到精通
正是因为很多项目人员没有正确运用SVN,所以打算写这个系列的文章,来分享SVN中有价值的知识和实战技巧,并结合TortoiseSVN客户端的讲解,真正从入门到精通,帮助项目人员提高项目管理水平。
路线图:从SVN环境的搭建和安全配置讲起,每周更新2-3篇,欢迎关注...
记录,为更好的自己!
SVN与TortoiseSVN实战:从入门到精通的更多相关文章
- SVN与TortoiseSVN实战:冲突详解(一)
硬广:<SVN与TortoiseSVN实战>系列已经写了三篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,第二篇<SVN与TortoiseSVN实战:标签 ...
- SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支
硬广:<SVN与TortoiseSVN实战>系列已经写了两篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,关于分支和标签的知识介绍可翻阅第二篇<SVN与T ...
- SVN与TortoiseSVN实战:标签与分支
最近在写<IOS性能调优系列>,今天偷个懒,写写SVN与TortoiseSVN实战的第二篇,标签与分支. 第一篇详见<SVN与TortoiseSVN实战:从入门到精通> SVN ...
- SVN与TortoiseSVN实战:文件加锁详解
硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用Tortoi ...
- SVN与TortoiseSVN实战:属性的奇技淫巧(二)
硬广:<SVN与TortoiseSVN实战>系列已经写了七篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解. 关于属性的奇技淫巧较多,分为两篇来写,第一篇详见< ...
- SVN与TortoiseSVN实战:属性的奇技淫巧(一)
硬广:<SVN与TortoiseSVN实战>系列已经写了六篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,预计再用三.四篇来结束这个系列. 本篇详解一下SVN的属 ...
- SVN与TortoiseSVN实战:补丁详解
硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...
- SVN与TortoiseSVN实战:冲突详解(二)
硬广:<SVN与TortoiseSVN实战>系列已经写了四篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...
- SVN与TortoiseSVN实战:补丁详解(转)
硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...
随机推荐
- 在DataList、Repeater的HeaderTemplate和FooterTemplate模板中寻找控件FindControl
[程序代码] <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> ...
- HtmlParser
HtmlParser 基本类库使用 HtmlParser 提供了强大的类库来处理 Internet 上的网页,可以实现对网页特定内容的提取和修改.下面通过几个例子来介绍 HtmlParser 的一些使 ...
- Codeforces Round #363 (Div. 2) One Bomb
One Bomb 题意: 只有一个炸弹,并且一个只能炸一行和一列的'*',问最后能否炸完所以'*',如果可以输出炸弹坐标 题解: 这题做的时候真的没什么好想法,明知道b题应该不难,但只会瞎写,最后越写 ...
- 模拟实现兼容低版本IE浏览器的原生bind()函数功能
模拟实现兼容低版本IE浏览器的原生bind()函数功能: 代码如下: if(!Function.prototype.bind){ Function.prototype.bind=function( ...
- js上移、下移、置顶、置底功能实现
实现页面上列表内容上移.下移.置顶.置底 功能,主要实现思路是节点操作,比如说:上移,直接把点击项移动到前一个节点,以此类推,当然实际代码实现还要加些判断,如当前点击操作项是否已经是置底或置底了,如果 ...
- Java多线程之线程中断
该例子说明,Sleep可以被中断,但是I/O和synchronized不能被中断. package Thread.Interrupting; import java.io.IOException; i ...
- ruby 字符串学习2
在一个ruby字符串中包含表但是或者变量.想使用不同的值替换表达式或者变量 1 类似java 或者python的printf-style方式 template = 'Oceania has alway ...
- Mongo 备份 还原
表还原 mongorestore --collection Inquiry0315 -d Estate --drop --dir D:/backup/20150731/Estate/Inquiry.b ...
- C++学习18 派生类的析构函数
和构造函数类似,析构函数也是不能被继承的. 创建派生类对象时,构造函数的调用顺序和继承顺序相同,先执行基类构造函数,然后再执行派生类的构造函数.但是对于析构函数,调用顺序恰好相反,即先执行派生类的析构 ...
- 关于 Python Iterator 协议的一点思考
转:http://www.jianshu.com/p/dcf83643deeb Python 中有好几种容器或者序列类型:list tuple dict set str,对于这些类型中的内容,往往需要 ...