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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MAC环境下使用svn,以及新手在团队使用svn注意事项相关的知识,希望对你有一定的参考价值。

参考技术A   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)。

Mac环境下SVN的配置和使用

  简单记录一下在Mac环境下,SVN的配置步骤和使用相关。(Mac自带了svn的服务器和客户端功能,简单配置一下即可使用)

  一、SVN的配置方法

  1. 创建一个仓库目录,比如在/Users/你的用户名 目录下新建一个svn_code仓库。

  打开终端,输入指令:svnadmin create /Users/ 你的用户名/svn_code,指令执行成功后,结果如下所示:

  

  2. 配置svn的用户权限,主要是修改/svn_code/conf 目录下的三个文件

  (1)打开svnserve.conf,将下面的配置项前的#和空格 都去掉

    anon-access = read

    auth-access = write

    password-db = passwd

    authz-db = authz

 

  (2)打开passwd,在[users]下面添加账号和密码

    [users]

    chenxkang=123

 

  (3)打开authz,配置用户组和权限

    [groups]

    topgroup=chenxkang

 

    使用[/]代表svn服务器中的所有资源库

    [/]

    @topgroup=rw

 

  3. 启动svn服务器

  在终端输入指令: svnserve -d -r /Users/你的用户名/svn_code

  如果没有任何提示就说明启动成功了。

 

  二、svn的使用方法

  1. 从本地导入代码到服务器

  在终端输入: svn import  项目地址 服务器地址 --username=chenxkang --password=123 -m

  2. 从服务器端下载代码到本地

  在终端输入: svn checkout 服务器地址  --username=chenxkang --password=123 项目地址

  3. 提交代码到服务器

  打开终端,先定位到目标代码目录,输入: cd 目标代码目录

  输入提交指令: svn commit -m "修改了XXX文件"

  4. 更新服务器代码到本地

  先定位到指定目录后,再在终端输入: svn update

  5. 关于svn的其它用法,可以再终端输入: svn help 进行查询。

 

以上是关于如何在MAC环境下使用svn,以及新手在团队使用svn注意事项的主要内容,如果未能解决你的问题,请参考以下文章

Mac环境下svn的使用(转载)

Mac环境svn的使用

Mac环境下svn的使用

Mac环境下svn的使用

Mac环境下svn的使用

Mac环境下svn命令行的使用