新项目的目录结构说明:

代码分三部分

1、01_Trunk(开发主干)

2、02_Branches(开发分支)

3、03_Tags(提交代码区)

文档区

请注意SVN的路径是区分大小写的!

VSS的区别:

1、不能单独一个文件检出,只能检出相应的目录

建议:开发人员在参与一个项目的时候,首次可以将该项目下所有资料都进行检出,一个是便于查看,另一个是保证目录结构的统一和完整性,以免提交的时候,由于目录的混乱导致提交出错;

2、将一个项目的源码复制到另一项目中时,不能直接复制,要清除那此隐藏的.SVN文件夹,最好是在SVN上使用导出功能。否则,易在提交文件时错误提交到原来项目之上。

因为导出目录的时候,SVN会在所有与配置库关联的每个文件夹下都生成一个.svn的文件夹,这个SVN的文件夹中就记录了你当前工作副本的版本号,关联的配置库路径等信息,如对整个文件夹进行复制,会将该文件夹也复制,这样,就算你拷贝到别的文件夹下,所关联的配置库信息还是原来的,提交还是会提交到原先关联的配置库路径的;

建议:尽量不要对目录进行复制,系统最好设置成,文件夹选项--查看--显示隐藏的文件和文件夹    如需要复制整个目录,有两种方法,一种是直接用 版本库浏览器进行操作,右键是可以直接复制的   具体是:选中相应的文件夹,右键—复制到   即可

3、如果该目录没有写的权限时,会在提交的时候,显示一条错误信息,看到后面的错误编码是403错误,一般是这个目录没有写的权限,需申请,呵呵;同理,如果对该目录没有读的权限,在版本库浏览器中,点击该目录,也是会出现403错误;但现在,一般如果是项目组成员的话,我都会开通各个目录的读权限的,至少给大家看的权限,呵呵

4、SVN的工作模式与VSS不同,不是采用锁定-编辑-锁定的模式,即可以多人同时检出,只在提交的时候提示冲突,要求解决冲突;

SVN使用要诀——先更新后提交

为避免频繁的解决冲突,一些经常冲突的文件,可以在提交的时候选择:保持锁定,这样别人在更新该文件到本地时,默认的文件属性是只读的;

5、用Eclipse开发需注意的事项:

.class文件夹不要提交到SVN配置库上受控,否则编译的.class中,

SVN一些容易混淆的概念解释:

1、Checkout(检出)与Export(导出)

两者都是获取文件,区别在于,check out方式获取文件后,文件处于版本控制中,而export是导出当前版本的数据,文件脱离了SVN版本控制。

2、Relocate(重定位)与Switch(切换)

如果你的版本库移动了,或许是因为移动到了一个新的目录,或者是域名改变,你需要“relocate”你的工作副本,这样你的版本库URL指向新的地址,这种情况下,是版本库本身移动了;

如果要在同一个版本库中切换一个分支或目录,就需要执行Switch操作。当主干和分支只有微小差别时,这个命令非常有用,你可以在目录之间跳转,而只会有很小区别需要传输。

3、Delete(删除)

删除文件要使用“TortoiseSVN—Delete”进行删除,一定不要直接删除(对于重命名、移动文件或文件夹也是一样,要使用TortoiseSVN的菜单进行这些操作,否则之前的版本信息会丢失。);文件被删除后,该文件的所有修改历史仍然保存在SVN服务器中,以后仍然可以获得该文件的修改历史。

4、Commit(提交)

进行了任何修改后,通过Commit操作可以将修改提交到服务器的版本仓库中。在工作复本的文件夹的空白处点击鼠标右键和选中当前目录执行提交的效果一样;

提交文件要慎重,尽量不要提交不需要或不能提交的文件,包括以下几类文件:

Ø        临时文件*tmp、垃圾文件:为了避免提交这类文件,就尽量不要直接Commit,选择全部文件提交,而是先执行Add操作选择需要添加的文件,这适合提交文件数目较少的情况,当然,如果你的电脑设置的可以显示这类隐藏文件,你就直接删了它们,以除后患,如果你有定期清理电脑垃圾文件的习惯,这类文件就自然会被清理掉;

Ø        编译器产生的文件,例如*.obj,生成的二进制文件等,常有些同事不注意把Debug和Release目录都Commit了!其实,“TortoiseSVN—Settings—General”中有一个设置“Global ignore pattern”(全局忽略模式),通过在模式框中输入文件名或扩展名就可以在提交时忽略这些文件或文件夹。不同的模式之间以空格分隔,例如*/bin */obj *.bak *.~?? *.jar *.[Tt]mp;

Ø        病毒文件:在实际中,真的碰到有同事把病毒文件都提交到SVN版本库中了,这不是害人吗,因此首先要养成定期杀毒的良好习惯,其次在提交时一定不要一股脑全盘提交!

提交文件还要养成以下良好习惯:

Ø        提交时一定要写备注,而且要写有意义的备注。备注有助于人(包括三个月后的你自己)理解你对文件所做的修改;其次在检出历史版本时,清晰的日志有助于快速查找到自己所需要的版本;

Ø        把握Commit的频率。不能太频繁,每修改一个小小的地方就提交,则会产生很多版本;而隔时间太久再提交,则其他相关人员不能及时获取你的改动,在提交时就容易造成冲突;当然,要视团队的具体情况而定了。

Ø        在多人协作时,尽量修改自己撰写的部分,不要修改其他部分;这就要看团队协作的能力了。

5、Update(更新)

Update对不同的人所做的修改会自动合并,如果无法自动合并则会发生冲突,需要手工用文件比较工具进行合并;因此要注意经常更新自己的工作复本,以保证自己能够获得最新的修改内容,降低发生冲突的可能性;

要养成提交前先更新的好习惯,如果没有更新就提交,很有可能提交失败;另外,有时候会需要通过复制文件的方式覆盖本地的同名文件,间接的修改文件然后再提交,进行这种操作一定要慎重,如果此时服务器上的文件版本相对于你复制的文件已经修改了某些BUG,这样提交后,以前修复的BUG就又会重现!

6、Revert(撤销)

如果进行了修改,但没有执行Commit操作,如果这时候想放弃这些操作,就可以通过Revert操作更新到修改之前的版本。

如果你想看看先前的某个版本是什么样子,可以通过“TortoiseSVN—Update to reversion”,回退到选择的版本。或者“show log”,选择某个版本,在右键菜单中选择“Browser repository”,查看选择的版本。

在实际操作中,有时需要回退到某一个版本,但是在这个过程中可能有一些文件你想保留,也有一些文件你不想保留,这种情况下推荐的做法是:export你所需要的文件版本,覆盖当前的文件,这样就可以同时保留先前的文件和现在新建的文件。

svn的一些使用技巧的更多相关文章

  1. svn checkout 实用小技巧

    svn checkout 实用小技巧 by:授客 QQ:1033553122   问题描述: 用svn小乌龟软件,进行update,commit之前,先要把svn工作目录checkout到本地,那么问 ...

  2. #001 WebStrom SVN使用技巧

    WebStrom中SVN 的一些使用技巧 2016-03-23 17:11:52 星期三 使用SVN的目录,是为了来管理代码的版本. 服务端语言 都有比较完善的IDE,前端JS代码,由于之前一直都用 ...

  3. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  4. VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

    有时候需要对之前版本提交的错误的日志信息进行修改或者进行补充描述: 1.在windows 7( 64位 )下使用TortoiseSVN客户端,选中代码目录,点击右键,选择<显示日志> 在出 ...

  5. php100视频原始地址列表整理:

    php100视频原始地址列表整理: 教程名称 . 1:环境配置与代码调试 2:PHP的数据类型与源码调试 3:常用PHP运算类型介绍与应用 4: PHP条件语句介绍与应用 5:PHP循环语句的介绍与应 ...

  6. SVN迁移到Git的过程(+ 一些技巧)

    SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...

  7. SVN迁移到Git的过程(+ 一些技巧

    关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...

  8. 【SVN技巧】如何协同开发LabVIEW代码 1

    前言 在我们工作中,必然会遇到代码的多个版本问题,也必然会遇到版本控制问题.如果所在的公司具有良好的项目管理体系或者软件管理体系,那么其版本控制应该有严格的使用规范,如果没有则作为一个上进好青年也应当 ...

  9. Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题

    喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在My ...

随机推荐

  1. AtomicReference、AtomicStampedReference 和 AtomicMarkableReference

    这三个都是自 JDK1.5 开始加入到 java.util.concurrent.atomic 下面的.他们都可以在 lock-free 的情况下以原子的方式更新对象引用. 一.AtomicRefer ...

  2. sentinel备忘

    git https://github.com/alibaba/Sentinel   https://github.com/dubbo/dubbo-sentinel-supportdubbo http: ...

  3. 2159 -- Ancient Cipher

    Ancient Cipher Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 36074   Accepted: 11765 ...

  4. Centos7 安装.Net Core SDK

    1.在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项.这只需要每台机器完成一次. sudo rpm -Uvh https://packages.microsoft ...

  5. 前端知识扫盲-VUE知识篇一(VUE核心知识)

    最近对整个前端的知识做了一次复盘,总结了一些知识点,分享给大家有助于加深印象. 想要更加理解透彻的同学,还需要大家自己去查阅资料或者翻看源码.后面会陆续的更新一些相关注知识点的文章. 文章只提出问题, ...

  6. Message NNNN not found; No message file for product=network, facility=TNS

    Message NNNN not found; No message file for product=network, facility=TNS Table of Contents 1. 错误信息 ...

  7. easyUI之练习

    <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC & ...

  8. jdk与jre与jdk都是干什么的有什么区别和jvm详解:

    1.0,jdk与jre和jvm的区别: JDK(Java Development Kit):指的是Java开发工具集.JDK是整个Java的核心,包括了Java基础类库.Java运行环境(JRE)和J ...

  9. 【React】- 1、React介绍

    React的开发背景 构建数据不断变化的大型应用 大量DOM操作   <----   自动DOM操作 数据变化 逻辑及其复杂   <----   状态对应内容(自动变化) 特点: - 简单 ...

  10. Thinkphp 使用小结

    分页中带查询参数 ...->paginate(15,false,['query'=>request()->param()]); 队列后台自动开启运行 nohup php think ...