其它基础 - 添加文件

  • 作者:KK

  • 发表日期:2015.12.27


你可能会问,这不是会了吗,a.js和b.js不就是添加了吗?

其实那时候只是为了让你快速上手,没跟你细说,现在回头我好好讲讲这个添加文件

在SVN的项目文件夹里新建一个文件后,这个文件会有一个问号图标(或者没有任何附加图标,像正常文件一样),意思就是这是一个跟你这个SVN仓库毫无关系的文件,代码仓库没有登记它,其它开发成员也不知道它,只有你自己了解它,是在你电脑上产生的新文件,就是这么一个状态

你应该清楚我们开发者是处于SVN的客户端上,对这些新建的带问号图标的文件右键弹出菜单的话你会找不到提交菜单,要对空白的地方右键才会有提交菜单,这是怎么回事呢?其实我也不知道具体哈

但是,你会发现展开的TortoiseSVN菜单里会有一个加入菜单,我们就试一下加入,然后,文件就有了一个蓝色的+号

然后再右键这个带+号的文件就会出现提交菜单,并且多出一个撤销添加菜单

我这里不说复杂的版本管理概念,你只要知道现象规律就是这样,新建的文件都是默认未登记在版本仓库里的

你应该先将这些文件加入到版本库中,上图我们是用小明的目录操作的,但是这时候小红是不会收到这个文件的,你这个加入操作只是在项目根目录的.svn这个隐藏文件夹里做了"提前登记"的工作

而对目录的空白处右键所选的提交,它会检查这个目录以及子目录等所有里面的目录是不是有未登记的文件,有的话就都列出来,你觉得要加入版本库就钩上再提交

我无法像官方使用说明书那样讲得非常非常详细,我觉得学到这里你已经有了领悟SVN版本管理理念的一些基础了,慢慢领悟吧


要知道哪些文件不可以

简单一句话:动态生成的文件不可以提交

  • 为什么呢?

    比如你跑一次程序会产生个"2012-12-01.log",改天再跑一次会出现个02.log这样

    虽然不是你人工创建的文件,但对于SVN来说它也是个新文件所以在你提交的时候,它会列入提交列表中,只是没有钩选

    如果你不小心钩选提交了,别人更新就会得到你这个日志文件,但别人运行时也会出现"2012-12-01.log",那就会发生冲突是不是?然后要谁的日志呢?再纠结下去问题还很多

到底还是因为把日志给添加到仓库里了,这种动态产生的文件不应该属于项目的一部分才对

还有,你测试程序的时候,上传的图片让程序自动存到了/upload/fba4c33c1.png这个路径下,久而久之会更加多图片,一共几百MB怎么办,你这样提交上去,整个版本仓库突然就变大啦,其实告诉你吧,版本仓库一般都是只存代码和UI素材的图片文件等,这样总体容量是不会大到哪去的

所以我们不要把那些动态产生的文件给提交上去,更深一层的理念和原因以后学到服务端SVN管理再说吧