1、首先,从SVN上检出服务器的文件目录,打开要放置新文件的目录,然后将本地新建的文件复制过去。
2、SVN目录中新增的文件会显示特殊标识,表示这个文件还没有进行登记。
3、使用加入功能将新增的文件进行登记。
4、新增的文件登记后还未上传至SVN服务器,所以包含这个新文件的各层文件夹都会被标识红色感叹号以作提醒。
5、提交新增的文件才能将本地修改上传至SVN服务器,选择任意层的文件夹都可以进行提交。
6、提交时可以对本次修改内容进行描述。
1、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositories2、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://19216811/pro/domain
2、往版本库中添加新的文件
svn add file
例如:svn add testphp(添加testphp)
3、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://19216811/pro/domain/testphp -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固有的问题,即projectpbxproj文件的提交冲突问题。
projectpbxproj文件里面包含了构建过程所需的所有文件,如果你在项目目录下增加了新文件,比如没有通过Xcode,该文件就不在projectpbxproj文件中,就不会生成到app中。同理,如果你从SVN中更新到其他项目成员增加的文件,而没有更新projectpbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。
如果项目成员提交了新的projectpbxproj文件,你这边没有在项目中增加新的文件,直接svn update就可以了。
7、Xcode中更新代码后项目文件打不开
若选择更新整个项目经常会出现冲突问题,尤其是projectpbxproj文件。此文件包含了构建过程所需的所有文件,如果在项目目录下增加了新文件,但没有通过Xcode,
该文件就不在projectpbxproj文件中,就不会生成到app中。同理,如果从SVN中更新到其他项目成员增加的文件,
而没有更新projectpbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。这一文件冲突将直接导致项目文件打不开。
解决更新代码后打不开项目文件方法:
当项目文件如tobaccoxcodeproj打不开时可以右键选择'显示包内容',会看到有三个文件,projectpbxproj/usermodelv3/userpbxuser。
其中projectpbxproj有三个版本,和解决普通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)一、准备工作
1、获取S version服务器程序
到官方网站(htt p:/ /s versiontigrisorg/)下载最新的服务器安装程序。目前最新的是15版本,具体下载地址 在:htt p:/ /s versiontigrisorg/servlets /ProjectDocumentListfolderID=8100&expandFolder=8100&folderID=91
2、获取TortoiseSVN客户端程序
从官方网站htt p:/ /tortoisesvnn et/downloads获取最新的TortoiseSVN。TortoiseSVN是一个客户端程 序,用来与s vers服务器端通讯。S version自带一个客户端程序svnexe,但TortoiseSVN更好 *** 作,提高效率。
二、安装服务器端和客户端
搭建svn服务第二步要安装服务器端和客户端。安装S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个zip压缩包,直 接解压缩即可,比如我解压到E:\s version。客户端安装文件是个exe可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
三、建立版本库(Repository)
运行S version服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本 库。首先建立e:\svn空文件夹作为所有版本库的根目录。然后,进入命令行并切换到s version的bin目录。输入如下命 令:svnadmincreateE:\svn\repos1此命令在E:\svn下建立一个版本库repos1。repos1下面会自动生成一些文件夹 和文件。我们也可以使用TortoiseSVN图形化的完成这一步:先建立空目录E:\svn\repos1,注意一定是要空的。然后在repos1文件 夹上“右键->TortoiseSVN->CreateRepositoryhere”,然后可以选择版本库模式,这里使用默认的 FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
四、运行独立服务器
搭建svn服务过程中要运行独立服务器。 此时s version服务还没有开始,只是通过它的命令建立了 版本库。继续在刚才的命令窗口输入:svnserveexe--daemon
svnserve将会在端口3690等待请求,--daemon(两个短横线)选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退 出。注意不要关闭命令行窗口,关闭窗口会把svnserve停止。为了验证svnserve正常工作,使用TortoiseSVN->Repo- browser来查看版本库。在d出的URL对话框中输入:svn://localhost/svn/repos1
点OK按钮后就可以看见repos1版本库的目录树结构了,只不过这时repos1是个空库。你也可以使用--root选项设置根位置来限制服务器的访问 目录,从而增加安全性和节约输入svnserveURL的时间:svnserveexe--daemon--rootdrive:\path\to \repository以前面的测试作为例,svnserve将会运行为:svnserveexe--daemon--roote:\svn然后 TortoiseSVN中的版本库浏览器URL缩减为:svn://localhost/repos1
五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserveconf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符,注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
[users]
#harry=harryssecret
#sally=sallyssecret
增加帐号:
[users]
#harry=harryssecret
#sally=sallyssecret
test=test
六、初始化导入
下面就是搭建svn服务时将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢 失、改错数据时版本库也能帮我们找回数据。
比如,我在d:\>进入settings查看查看icon overlays中的status cache查看选项是否选的shell ,如果不是,那就更改咯!
开始输入cmd,再输入regedit,调出注册表信息,按下Ctrl+F,在注册表里搜索“ShellIconOverlayIdentifiers”
重命名为前面加几个空格即可,目的是将其排序挪到前面,不让其他程序干扰svn图标的显示
update
重启电脑
号外:
加一个svn cleanup的解释
SVN 本地更新时,由于一些 *** 作中断更新,如磁盘空间不够,用户取消。可能会造成本地文件被锁定的情况。
一般出现这种情况的解决方法:
1、可以使用SVN clean up来清除锁定。
2、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。
3如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,这时重新CHECKOUT需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。
4如果觉得第3种很麻烦,可以考虑这样的方法。其实SVN加锁会在SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。然后再尝试更新,系统可能会提示某个base文件无法访问。找到它,把相关的文件或其所在的目录删除,重新UPDATE。工作量就小多了。
再带上一个svn安装指南
>1、可以使用SVN clean up来清除锁定(break lock)。
2、如果不是本目录锁定,系统提示上一层目录锁 定,需要到上一层或者根目录中清除。
3、如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,这时重新CHECKOUT需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。
4、如果觉得第3种很麻烦,可以考虑这样的方法。其实SVN加锁会在SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。然后再尝试更新,系统可能会提示某个base文件无法访问。找到它,把相关的文件或其所在的目录删除,重新UPDATE。工作量就小多了。
1、打开eclipse开发工具,在需要进行关联的项目上点击右键,选择team。
2、选择share Project,在team *** 作按钮右侧,选择分享项目。
3、选择svn版本控制。高版本的eclipse都支持svn、cvs、git等代码同步插件,这里使用svn演示,选择svn插件。
3、选择需要关联的项目,找到svn目录链接,选择需要和哪个项目进行关联,然后点击下一步。
4、确定好需要进行关联的项目之后,然后点击完成,进行开始同步代码。同步的过程中不会影响svn代码和本地代码。
5、最后点击Finish进行同步,系统会提示文件夹{0}已存在于资源库中,不影响继续即可。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
更新:把他人上传的代码更新到本地环境,你在这个环境下把自己的代码合并到这个版本中。提交:将合并好的版本提交到svn,他人再根据你提交的版本开发,保证代码不会冲突。
值得注意的是,使用SVN的目的是多人共享一个最新的目录,你在提交的时候最好先更新,更新到最新版本的核对之后再提交。
因为如果你不更新直接提交,这段时间有可能他人更新后已经提交了,你没有更新还是老得版本,直接提交后会把他人更新的覆盖掉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)