VS中使用svn注意事项

来源:  http://www.cnblogs.com/xinlj/p/5129252.html

1、程序需定期编译通过后上传SVN,每天可上传多次,根据个人程序开发进度决定,但每天晚下班前必须将当天的程序编译调试通过并上传SVN。每天早上上班首先需要更新SVN最新版本。 

上传的工作流程应该是,更新——编译运行——上传。这个工作流程那一步也不能缺少。更新是在把 别人提交的代码下载下来,看看和自己所写的代码有没有什么冲突,可能自己需要用到的一个函数已经被别人所修改。导致自己本来运行完美的系统出现了错误。如 果没有编译运行就上传了。别人下载下来的代码就是错的了。这样通过几个版本的迭代。出现的错误就很难被发现与纠正。这就又产生了一个原则:任何时候不能把错误的代码往服务器上传。对于多次上传,主要目的是把损失降低到最低,这样一旦出现了错误恢复上一个版本的损失才会最少。但每天晚下班前必须将当天的程序编译调试通过并上传SVN。对于这一点有两个重要意义:1.每天老板都知道你今天干了多少活。2.把今天的工作告一段落,没有压力的开始明天的工作。明天其他人的任何更改都不会影响你今天的工作。

 

2、在程序中添加页面、删除页面及修改页面命名时,需要先更新全部程序特别是解决方案文件,然后再做添加或者删除页面以及修改页面名称,做完这类操作后需立刻上传SVN,以免造成解决方案冲突 

先说什么是解决方案冲突:

csproj文件大家应该不会陌生,那就是C#项目文件的扩展名,它是“CSharp Project”的缩写。那么它究竟是给谁用的呢?那是给开发工具用的,例如我们在熟悉不过的VisualStudio,以及大家可以没有接触过,但是应 该都听说过的MSBuild.exe。VisualStudio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操 作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build和Post-Build需要哪些操作等 等。VisualStudio和MSBuild都是开发工具,这就是csproj存在的唯一意义:为“开发环境”提供信息。而到了运行环境中,根本不会有 人(操作系统?)关心所谓的csproj文件——也就是“程序是哪里来的”。

了解了csproj文件也就能理解什么是解决方案冲突了。你在程序中添加页面、删除页面及修改页面命名时都是需要修改这个管“程序是哪里来的”的这个文件的。这样如果你下载下来添加了页面,然后提交了。他也下载下来然后也提交,是一定会出现版本冲突的。(当然以上原则不只是添加页面时,添加类也是一样的。)这个时候技巧2,就显得尤为重要了。 

 

3.以下文件不允许提交到SVN上,应在本地通过SVN客户端添加到忽略列表中。

1、解决方案的suo文件

2、工程的bin文件夹和obj文 

这些又是什么文件呢? 

suo文件 

suo(solution useroptions)是一种文件的格式。*.suo解决方案用户选项,记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含用户所做的自定义设置。比如VS布局以及项目最后编译的而又没有关掉的文件用于下次打开时用。

其中,VS布局包括:监视器1234的变量列表、断点标记及开关状态、输出窗口错误窗口等的分布及其悬浮状态,还有项目卸载状态标记。

.suo文件偶尔会被破坏,从而在构建和编辑应用程序时出现意想不到的结果。如果VisualStudio对于每个解决方案不稳定,就应删除.suo文件。下次打开解决方案时,Visual Studio会重建它。

 

bin和obj文件夹 

bin是放最终代码的目录

obj就放中间代码的目录

Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。

obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。

可以看出这些文件都是根据本地的信息产生的配置文件,每个人和每个人的都可能是不一样的。所以上传的时候应该屏蔽。等到自己更新了最新版本。重新编译,就会自动的产生可以使用的自己的配置文件了。

 

这些技巧更应该说是我们要培养的工作习惯,只用有了这些工作习惯我们的合作开发才会更加的愉快,更加的和谐。


先更新,再提交 
SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。 
如 果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起 协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。 
在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。

 

多提交 
每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交 一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交 一次。我们提倡多提交,也就能多为代码添加上保险。


不要提交不能通过编译的代码 
代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。


每次提交必须书写明晰的标注 
在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目 组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以, 在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。


提交时注意不要提交本地自动生成的文件 
例如eclipse中的.classpath文 件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地 的环境冲突从而影响大家的工作。


不要提交自己不明白的代码 
代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。


慎用锁定功能 
在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SVN使用教程文版是一个初学者非常有帮助的文档,它详细地介绍了如何使用SVN版本控制系统来管理代码,让开发者可以更好地协作开发和维护代码。 文档首先介绍了SVN的概念和基本原则,然后详细介绍了如何安装和配置SVN客户端和服务器。接着,文档详细说明了SVN的基本操作,包括如何创建仓库、添加、删除和修改文件,如何创建分支和合并等。 文档还介绍了SVN的高级特性,如如何使用SVN属性、如何使用SVN钩子等。此外,文档还讲解了如何使用SVN补丁和SVN Diff来管理代码,如何使用SVN的日志和版本号来跟踪代码的历史和变化。 总的来说,SVN使用教程文版非常详细、通俗易懂,非常适合初学者学习和入门。同时,它涵盖的内容也非常全面,可以满足开发者在实际工作的需求。如果你是一个开发者,正在寻求一个好的版本控制系统,那么不妨试试SVN,同时也要赶紧下载SVN使用教程文版,开始学习如何使用它来管理你的代码吧! ### 回答2: svn使用教程文版.pdf是Subversion的官方文档翻译,介绍了svn工具的使用方法及相关概念。该文档内容全面系统,包含了svn的基本操作、创建仓库、版本控制、分支合并、锁定机制、数据备份等方面的内容,对于初学者来说是非常实用的。该文档也包含了不少实例及图表,帮助读者更好地理解svn使用和原理。 在使用svn时,首先需要安装svn客户端,然后根据所需操作选择相应命令进行执行。其svn checkout用于从版本仓库检出指定版本的文件或目录,svn update用于将本地代码与版本仓库同步。svn commit用于将本地修改的代码提交至版本仓库,svn add用于将新文件加入版本控制,svn delete用于删除不需要的文件,svn log用于查看版本变更历史等。同时,在分支合并时,需注意冲突的解决方法及目标版本的指定。另外,svn还支持锁定机制,可在多人开发时避免文件冲突。 总之,svn使用教程文版.pdf详细介绍了svn工具的基本操作,让读者能够快速掌握svn使用方法。对于软件开发团队,掌握svn使用已经成为必备技能之一,希望有更多的人能够通过该文档学习到相关知识,提高项目开发效率。 ### 回答3: “svn使用教程文版.pdf”是一份关于使用svn(Subversion)版本控制工具的教程手册,主要介绍了svn的基本使用方法和操作技巧。 该教程首先介绍了svn的基本概念和相关术语,如版本库(Repository)、工作副本(Working copy)、提交(Commit)、更新(Update)等,从而为使用者建立了一个清晰的工作框架。 接着,教程详细讲解了svn的安装方法,包括svn服务端和客户端的安装。同时,还介绍了如何配置svn服务端,如何创建版本库等。 在具体的操作方面,教程包括了常用的svn命令和操作技巧。例如,如何从版本库检出(Checkout)代码,如何提交代码到版本库,如何对代码进行更新等。此外,教程还介绍了svn的分支(Branch)和标签(Tag)等高级用法,以及如何解决代码冲突(Conflict)等操作技巧。 总体来说,该教程内容详实,条理清晰,适合svn初学者快速掌握svn工具的基本使用方法和操作技巧。同时,该教程还提供了许多实用的小技巧和注意事项,对于进一步提高svn使用效率也有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值