SVN的忽略和只读使用方法学习记录
前言,先扯几句。最近学了GIT,虽然很肤浅,但是也算是用上了分布式版本管理控制系统。Linus很牛,他也很厌烦SVN,而我看这些都是工具,是否拿来使用主要看是否顺手。我赞同分布式版本管理控制,它有诸多优点,但是对于在局域网中做项目的封闭式开发或者项目很小且本机就能搭建SVN服务器,这两种情况来使用SVN也无可厚非。至于神人Linus他做的Linux系统源码太庞大,而且项目源码数据量大,这个对于SVN还是不太适用。准备进入公司新项目开发阶段了,有同事在外地分公司工作,因此代码版本管理尤为重要。之前有个项目居然是手工拷贝合并代码,还好只有3个人,即使这样也有不一致的地方,现在想起来真是汗一个。这次首先跟同事询问代码如何管理,同事说把源码放在公司服务器上,用SVN同步,因为外地的同事编码量不会太多,而我们在公司的同事可以直接通过公司局域网访问服务器,因此用SVN还是没问题。SVN的基本使用我都会了,这里只是想学习两点:1、SVN设置忽略文件;2、SVN给文件设置只读属性(该文件必须先获取锁,锁定后才能编辑,编辑好以后提交解锁)。
首先,先说如何设置忽略文件。这里先说一下为什么要设置忽略文件,因为Visual Studio编辑器在编译生成项目时会有一些无关代码的文件,比如bin文件夹、obj文件夹,还有一些用户配置文件,比如*.user、*.suo等。这类文件是不用提交同步到服务器,而是个人用个人的。对于已维护在SVN上的项目,在客户端对于某个文件右击在SVN子菜单中找到【删除和增加到忽略列表】菜单,点击它这个文件就被忽略了,需要提交一下,忽略的文件在服务器上是被删除的,但是在每个人本机上是存在的,且不受SVN版本控制。如果我想在导入本地项目文件到服务器上或者批量添加文件时,如何忽略指定类型的文件呢?这个要点击SVN右键菜单中的设置菜单,在弹出来的对话框中,常规设置中有个全局忽略样式,这里面已经有一些东西了,我们不管它。我们把我们要忽略的东西添加进去,注意文件夹直接写,文件可以使用通配符*和?(并且还支持正则表达式),多个项之间用空格隔开。比如我添加如下4项:[Bb]in [Oo]bj *.user *.suo。这样在导入操作时符合忽略规则的文件夹或文件不会导入到服务器的SVN仓库中。
然后,再来说给文件设置只读属性,为什么要设置只读属性呢?其实SVN有合并的功能,但是是对文本文件,比如txt、cs、xml、aspx等。但是对于二进制或者其他一些重要文件,合并的效果就不太好了,这时如果多人同时编辑同一文件,很容易出现冲突。而只读属性并不是真的只读,其实据说有办法可以绕开这个设置,不过这个咱们先不关心。它只是提醒我们该文件要先锁定再编辑,在提交解锁前,其他人是无法获取锁的,因此也就无法提交,他的编辑只能在本地保存副本了,这样我们就不会对于重要的需要防范冲突的文件忘记锁定了。对于已维护在SVN上的项目,在客户端对于某个文件右击在SVN子菜单中找到【属性...】,然后再点击【新建】按钮,键选择“svn:needs-lock”,值随便填,这里我就填*,提交到服务器上后,这个文件以后就必须锁定后才能编辑了。那么如果想对某个文件夹下所有的文件都设置该属性,就右击该文件夹,然后还是像前面一样操作,这时在填写键值的窗口上有个复选框会启用——递归应用该属性,勾选它,这个文件夹中的所有文件都会应用这个属性,然后提交即可,那么对于后添加或后导入的文件如何自动加上该属性呢?还要进入到之前设置全局忽略样式的窗口,它下面有个Subversion配置文件,点击【编辑】按钮,会用记事本打开一个文件,里面有这么一段:
### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
# enable-auto-props = yes
大概意思就是:将“启用自动属性”设置为是来启用自动属性功能,启用后对于SVN的Add和Import(添加和导入)会自动应用这些属性,“启用自动属性”默认值为否,自动属性可以在“auto-props”配置节中定义。然后将第4行的最前面的#和空格去掉即可,该文档下方有一个[auto-props],它下面已经有若干的自动属性定义了,只不过被注释掉了(行首加#即为该行已被注释),那些被注释的自动属性我们不管,我们配置我们的属性,比如*.sln = svn:needs-lock=*,换一行再写*.csproj = svn:needs-lock=*等等。
最后再扯一句啊,SVN服务器上有个权限,是对SVN用户做的控制,里面有只读、读写等权限,如果你在服务器的仓库中对某个文件设置成只读权限,那么对应用户是可以将该文件拉到本地,但是修改后提交,SVN客户端会提示无法提交(红色字体)。这个跟之前说的设置只读属性不是一回事。
SVN的忽略和只读使用方法学习记录的更多相关文章
- java方法学习记录
---恢复内容开始--- 方法重载:两个方法有相同的名字,但参数不同,就是方法重载,且不能仅仅依据修饰符或者返回类型的不同来重载方法. 命令行参数的使用 有时候你希望运行一个程序时候再传递给它消息.这 ...
- js千分位分隔,数字货币化方法学习记录
js千分位分隔,数字货币化-4种方法(含正则) 方法1-整数货币化 // 整数货币化 function intCurrency(num) { var reg = new RegExp("^[ ...
- 设置SVN,Git忽略MAC的.DS_Store文件的方法
设置SVN,Git忽略MAC的.DS_Store文件的方法 I. 显示Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFiles -bo ...
- SVN设置忽略文件列表以及丢失了预定增加的文件解决方法
设置svn忽略列表 Linux下svn命令行配置 1. 修改版本库的相关属性 2. svn 客户端的配置 Windows下 Tortoise SVN 设置 1. Tortoise SVN 上修改版本库 ...
- eclipse svn不能忽略文件及文件夹,ignore设置无效 ?
https://blog.csdn.net/zengmingen/article/details/79025445 https://blog.csdn.net/zengmingen/article/d ...
- SVN冲突出现原因及解决方法浅谈
缘由 很简单,用svn合base,出现了各种各样奇怪的问题,虽然最终没有造成什么大的线上问题,但过程也是曲折的,耗费个人精力,也占用他人资源,不好不好,一点都不佛系. 究其原因,还是对为什么出现各种冲 ...
- eclipse svn提交忽略文件及文件夹,ignore设置无效..
如果之前提交过此文件,就不能设置忽略该文件了.所以第一次提交的时候要搞清楚再提交. [亲测,的确如此,用 Windows -> Preferences -> Team -> Igno ...
- Spring学习记录(九)---通过工厂方法配置bean
1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. package com.guigu.spring.factory; public class C ...
- Android studio 开发中 用git实现批量忽略特定文件的方法
git实现批量忽略特定文件的方法 在用AndroidStudio开发项目的时候,3个人协同开发,那么用Git同步代码,会将模块中的大量iml文件同步,每次都会提交和更新,一个一个的去忽略他们,显然是最 ...
随机推荐
- BZOJ 1068: [SCOI2007]压缩
Sol 区间DP.这个区间DP需要三维, \(f[i][j][k]\) 表示\([i,j]\) 这个区间中是否存在 \(M\) . 转移有两种,一种是这个区间存在 \(M\) ,那么直接枚举 \(M\ ...
- java中类名,方法,变量,包名等大小写命名规范
类名:首字母大写,其他单词中首字母大写,其他小写方法名:首字母小写,其他单词中首字母大写,其他小写变量:与方法名规则同包名:全部小写接口interface:I开头
- 常用js正则归类
//定义正则表达式 //title,只能是数字字母汉字开头,不能以下划线结尾,不包含特殊字符3-20 var title = /^(?!_)(?!.*?_$)[)(\sa-zA-Z0-9_\u4e00 ...
- bootstrap按钮组
种类 -a, input , button 块级 btn-block 按钮组 btn-group btn-group-justified btn-group-vertical </div ...
- openstacksdk enable logging
http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/doc/source/users/guides/logging.rst
- 【GoLang】50 个 Go 开发者常犯的错误
1. { 换行: Opening Brace Can't Be Placed on a Separate Line 2. 定义未使用的变量: Unused Variables 2. import ...
- C# 毕业证书打印《三》
打印很关键的方法,打印方法DataPrint(),将你要打印的数据信息发送到打印机就可以了,打印机将自动处理. public void DataPrint() { try { PrintDocumen ...
- Java for LeetCode 214 Shortest Palindrome
Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. ...
- WebRequest 获取网页乱码
问题:在用WebRequest获取网页源码时得到的源码是乱码. 原因:1,编码不对 解决办法:设置对应编码 WebRequest request = WebRequest.Create(Url);We ...
- ubuntu vsftp 安装
1.输入sudo apt-get install vsftpd 回车 这样就安装完毕了,然后去建立一个ftp的帐号,我这里使用的是ftp. 2.输入useradd ftp 回车 输入密码 回车 这样帐 ...