免费version control 目前主要有CVS和SVN两种;本文简单说明单机环境下如何配置SVN开发环境,由于也是初学乍练,写得不一定准确;以后再逐渐完善;
- Visual SVN server:免费的SVN server端;
- Visual SVN:Visual Studio 的SVN client端插件(共享软件);需要TortoiseSVN的支持;
- TortoiseSVN:免费的SVN client端;
- Visual studio 2005;
安装过程比较简单,基本按照默认即可;详细步骤参见 这篇文章;
SVN server的基本配置和TotoiseSVN的基本使用方法可以参见 这篇文章。这里主要说下Visual SVN插件的用法:
1.如何将代码import到Repositories中:
1)如果是从Studio中新建一个项目,则建立完毕后,选择"VisualSVN"菜单下面的"Add Solusion to Subversion";
接下来选择加入到一个已存在的Repository,把事先在server管理界面中建立好的url填入(比如: https://uestc-ivan/svn/Npp/)
2)如果是把一个已有的项目导入到Repository中可以先用studio打开这个项目,然后选择"VisualSVN"菜单下面的"Add Solusion to Subversion";
注意有些项目可能对一些目录进行了重新组织,VisualSVN只能对一个根目录(working copy root)进行管理,
也就是只有都在这个目录下面的文件才能受到控制;如果visualSVN判断不出这个根目录,可以手工指定;
另一种导入已存在工程的方法是使用从我的电脑中找到工程的最上级目录,然后右键利用 TortoiseSVN的上下文子菜单,选择Import;
***导入之后所有受到控制的文件前面会出现一个黄色的圆点图标;说明本地版本和server中的不一致,
这时候还要commit一次,这样工程中的文件才能加入到server的Repository中,这也就是最初的版本;
成功后所有文件前面会出现一个绿色的圆点图标,说明当前版本和server上的一致;
2.如何从server上checkout一个工程:
选择"VisualSVN"菜单下面的"Get Solusion from Subversion";然后填上server上该工程Repository所在路径(比如: https://uestc-ivan/svn/Npp/);然后选择一般本地拷贝路径;这样server上的文件都会下载到本地指定的目录中;完成后修改的就是本地的拷贝;
3.修改文件后如何提交:
通过上面checkout一个工程后,所有文件前面会出现一个绿色的圆点图标,如果某个文件被修改了,则前面的图标变为黄色;如果要提交修改,可以选择"VisualSVN"菜单下面的"Commit";然后会出现一个对话框列出所有被修改过的文件;选择需要提交的文件提交即可;这时候本地的修改就传到服务器上了;由于这里是单机环境也就是不是多人同时修改,所以不存在conflict的情况,不需要merge;
4.如果我做了很多修改,发现改错了想恢复到刚checkout下来的状态怎么办?
选择"VisualSVN"菜单下面的"Revert Changes";然后会出现一个对话框列出所有被修改过的文件;选择需要revert的文件revert即可;
5.如果我某个文件现在是version5,我想回到version3,怎么办?
选择"VisualSVN"菜单下面的"Update to Revison";出现一个对话框,填上需要回到的版本号即可;
6."VisualSVN"菜单下面的"Update"是干嘛用的?
对于单机环境这个没什么作用,对于多人同时修改的情况是有用的,比如你和tom同时checkout了同一个文件的相同版本,
tom对这个文件进行了修改并且作了commit,此时server上的版本实际上比你本地的版本要新;
而此时你想要在tom修改的最新版本的基础上进行修改,这时候可以做一次update操作;
这样server上的最新版本就下到你本地了;如果这时候你已经在本地作了一些修改,则会发生merge操作,
就需要如果有conflict仔细审查代码变化然后解决conflict;
1.SVN会在working copy目录以及所有子目录中生成一个隐藏的.svn目录用来存储所有版本控制信息;
2.进程TSVNCache.exe占用CPU很高影响系统性能怎么办?
这个进程的具体作用参考 这里;大概作用就是扫描系统文件更改情况然后显示相应类型图标;可以将该进程关掉:打开系统的文件夹管理–>右键–>TortoiseSVN–>settings–>Icon Overlays–>Status cache 设为”none”就可以了。如果仍然希望它运行许,可以先把所有驱动器都添加到exclude paths里,再把你项目所在路径添加到include paths里。