×

刚入职不会svn

刚入职不会svn(如何在MAC环境下使用svn,以及新手在团队使用svn注意事项)

admin admin 发表于2023-08-20 16:38:07 浏览37 评论0

抢沙发发表评论

本文目录

如何在MAC环境下使用svn,以及新手在团队使用svn注意事项

  1、Xcode4中苹果有自带的SVN软件------》Organizer------》Repositories  2、SVN checkout到本地后,删除本地file,对服务器有影响吗?  不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对应删除。  3、连接服务器  点击file-》repositories-》点击坐下边的“+”-》然后名字及svn服务器的地址,还有type选中subversion然后next等等了。  4、Xcode4下,SVN中常用命令  Commit 提交  checkout 将服务器上下载到本地(我个正在使用的电脑)  update 更新文件  File-------》SourceController-------》update    图片中第3个按钮,是视图对比按钮.  5、SVN中用法详解和注意事项  ①提交自己的代码  SVN更新的原则是要及时更新,及时提交。当完成了一个小功能,能够通过编译并且并且自己测试之后,尽量早的提交,这样也保存了历史版本,必要时候可以回滚;在开始一天的工作之前,最后update一下项目。  ②保持原子提交(不要不经意间修改并提交了别人的文件)  仅提交你修改的部分,最好不要一下子将整个项目提交;  当完成一个功能或文件后,最好提交。我就遇到完成某个功能后,没有提交,后来又做了更改,结果代码出现bug,无法恢复到正常时的代码。  ③不要提交自动生成的文件  VisualStudio等开发工具在生成过程中会产生很多自动文件,如.suo等配置文件,Debug,Release,Obj等编译文件,以及其他的一些自动生成,同编译代码无关的文件,这些文件在提交的时候不应该签入,如果不小心签入了,需要从仓库中删除。  ④不要提交不能通过编译的代码  代码在提交之前,首先要确认自己能够在本地编译。进行SVN提交更新时最好是代码在提交前已经通过自己的测试。  SVN中常用命令详解  1、将文件checkout到本地目录  svn checkout path(path是服务器上的目录)  例如:svn checkout svn://192.168.1.1/pro/domain  2、往版本库中添加新的文件  svn add file  例如:svn add test.php(添加test.php)  3、删除文件  svn delete path -m “delete test fle“  例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete testfile”  4、查看日志  svn log path  5、比较差异  svn diff path(将修改的文件与基础版本比较)  6、将两个版本之间的差异合并到当前文件  svn merge -r m:n path  SVN使用方法  更新(update),经常地update没有坏处,特别是多人项目中。如果每次提交(commit)前不进行更新(update)的到最新的版本的话,svn会提示当前的拷贝过期,需要更新。  提交(commit),一定要写上这次提交的内容的摘要,便于以后查阅。  将文件checkout到本地目录  svn checkout path(path是服务器上的目录)  svn update命令自动用服务器上的版本替换本地版本控制的文件  6、Xcode中使用SVN问题以及提交解决冲突问题  Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。  我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其实也挺好,不过,为了使用SVN功能要单独开一个耗费资源的Eclipse。    但是,不论使用什么SVN工具,都会遇到Xcode固有的问题,即project.pbxproj文件的提交冲突问题。    project.pbxproj文件里面包含了构建过程所需的所有文件,如果你在项目目录下增加了新文件,比如没有通过Xcode,该文件就不在project.pbxproj文件中,就不会生成到app中。同理,如果你从SVN中更新到其他项目成员增加的文件,而没有更新project.pbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。  如果项目成员提交了新的project.pbxproj文件,你这边没有在项目中增加新的文件,直接svn update就可以了。  7、Xcode中更新代码后项目文件打不开    若选择更新整个项目经常会出现冲突问题,尤其是project.pbxproj文件。此文件包含了构建过程所需的所有文件,如果在项目目录下增加了新文件,但没有通过Xcode,  该文件就不在project.pbxproj文件中,就不会生成到app中。同理,如果从SVN中更新到其他项目成员增加的文件,  而没有更新project.pbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。这一文件冲突将直接导致项目文件打不开。    解决更新代码后打不开项目文件方法:  当项目文件如tobacco.xcodeproj打不开时可以右键选择’显示包内容’,会看到有三个文件,project.pbxproj/user.modelv3/user.pbxuser。  其中project.pbxproj有三个版本,和解决普通svn文件冲突一样解决冲突即可。  8、SVN 更新 提交 合并 区别    当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件  当本地文件有改动,服务器文件没改动的话,不会更新此文件  当本地文件有改动,服务器文件有改动的话,如果改动的部分不冲突,就会合并文件到本地,如果有冲突的话,会提示文件冲突,需要自己手动修改以后上传到服务器。  最后一个讲解合并:  服务器和本地的同一个文件(所谓同一个文件应该就是SVN相对路径相同,文件名相同的文件,这个由SVN留在本地的信息决定)已经修改,且修改的部分不重合,不重叠  当满足上面的条件的时候再更新,SVN就会自动合并  SVN的奥妙之处就在于别人提交了修改后的文件,你再提交你的话,他是不允许你提交滴。。。  》》》》  《《《  里面标记的是冲突的区域,把冲突区域删除掉为什么还不能提交    解决办法1:  删掉的话还是没有解决冲突,文件后面还会有几个文件名相同,但是后缀不同的文件  如果你不知道用SVN解决冲突的话,最简单的办法是这样的  把这个文件改名字,然后在文件所在目录更新,这样就会把服务器文件下下来,然后把自己修改的部分添加到更新的文件里面,这样就可以提交了  解决办法2:  在文件上面点击右键,到SVN的菜单,应该有冲突的按钮,选择就会出现一个窗口,一边是服务器版本,一边是自己修改的版本 。  9、xcode自带svn的使用  1、代码中 某文件后面有 “M” 标记,表示该文件已被修改,需要 commit.  (右键该文件 -》 source control -》 commit selected file...)  2、代码中 某文件后面有 “A” 标记,表示该文件是新添加的,已受SVN管理,需要 commit.  (右键该文件 -》 source control -》 commit selected file...)  3、代码中 某文件后面有 “?” 标记,表示该文件是新添加的,并且脱离了SVN的管理,首先需要add,然后 commit.  (右键该文件 -》 source control -》 Add,这样该文件的标记就变为 “A”,然后在 commit).

svn如何使用

svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 本教程分为以下几个部分,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用。在UNIX环境下,只是安装方式不同,命令执行并无太大区别。工具/原料 Subversion服务器程序安装包Subversion的Windows客户端TortoiseSVN安装包方法/步骤 1软件下载《1》、下载Subversion服务器程序到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择Apache 2.0 或者 Apache 2.2,这样我们可以看到许多下载的内容,目前可以下载Setup-Subversion-1.7.12.msi 。《2》、下载Subversion的Windows客户端TortoiseSVN。TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。 官方网站是TortoiseSVN ,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。2svn服务器和客户端安装《1》、安装Subversion,直接运行Setup-Subversion-1.5.3.msi ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。《2》、安装TortoiseSVN,同样直接运行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。《3》、安装svn的客户端程序,需要的话还可以安装svn的语言包,注意语言包的版本也必须与客户端程序的版本一致3建立版本库(Repository)运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:svnadmin create E:\svndemo\repository就会在目录E:\svndemo\repository下创建一个版本库。我们也可以使用TortoiseSVN图形化的完成这一步: 在目录E:\svndemo\repository下“右键-》TortoiseSVN-》Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。步骤阅读 .4SVN配置用户和权限来到E:\svndemo\repository\conf目录,修改svnserve.conf: # ”前面的注释“#”一定要删除掉。步骤阅读 .5运行独立服务器在任意目录下运行: svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。6初始化导入来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个readme.txt文件:右键-》TortoiseSVN-》Import... 在URL of repository输入“svn://localhost/trunk” 在Import Message中输入你的日志信息完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/trunk”。步骤阅读 .7基本客户端操作取出版本库到一个工作拷贝: 来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键-》Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。 在工作拷贝中作出修改并提交: 打开readme.txt,作出修改,然后右键-》Commit...,这样我们就把修改提交到了版本库,我们可以运行。察看所作的修改: readme.txt上右键-》TortoiseSVN-》Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键-》Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。最后,所有的内容都已经录制为动画文件,大家可以参考。关于本教程大家有什么意见,可以这里讨论 。如果更新文件以后,有两个人或者多个人同时修改了某个文件的某个位置,是否冲突,(一般不会这样子,因为上传的版本是可以编译通过的,而且每个人负责自己的模块,不会多人独立修改同一个文件,别人也是先更新,后上传修改,,,,)开发者习惯性动作。早上上班第一件事就是更新svn版本库,再开始一天的工作。晚上下班,或者其他时候要上传东西可以直接上传因为你负责的东西没人去修改。冲突是怎么产生的呢:因为不同的人,同时修改了同一个文件的同一个地方,这个时候,他提交了,你没有提交,你就提交不了,这个时候,你要先更新,更新就会出现代码冲突问题。最好不要多人同时修改一个文件,公用的文件,更改之前要和大家沟通一下,或者解决冲突 呵呵先更新,没有冲突,再提交。有冲突,解决冲突再提交。否则也提交不了。对于一些处于冲突状态下的文件 ,右键TortoiseSVN -》Resolved,解决冲突。解决冲突: