XCode中使用SVN 教程

修改subversion.config方法:

可以直接在终端上输入:vi ~/.subversion/config来编辑.

也可以通过Finder搜索.subversion,点击下边的+号,进入高级搜索界面,找到各类->其他-> 文件可见性 ,选择不可见文件即可搜索到.subversion文件夹.

隐藏文件文件名是  .subversion

 

mac下怎么保存终端下更改的项目(^O WriteOut)

 

 

As newly anointed Xcode developers, and now with the release of Xcode 4. We found our team working on trying to get connected to a new subversion (svn) server at the same time we were trying to discover some new features of Xcode 4.

 

about challenging.

Actually this was the first time with anything Apple we have not had a great experience. Loads of talk etc on the net about what a pain in the bum it all is.

For those who don’t know. Subversion is a code storage system that allows check in / check out of developer Xcode to a server. There are services online that you can pay monthly to for the use of a SVN server. We wanted to host it on one of our own servers.

The setup was not easy and required the setup of a new Linux server, then the setup of the SVN code to turn it into an SVN server.

What became confusing was when we needed to get Xcode to talk to the darn thing. Here is the important things you need to know.

First Contact

 

Just like the movie from when I was a kid, “First encounter”  is a big deal! Big enough to heap your mashed potato into a big mountain!

1. Open Xcode and select Window / Organiser.

2. Select Repositories

3. Bottom left, click the +

4. Add the details of the SVN server. Like this: svn://www.servername.com/directory (this should be the details for your SVN Server).

5. Where asked for Trunk Branches and Tags (leave empty for now).

 

Now we nee to use the “Terminal” program to make a connection to SVN.

1. Create a test.txt file with some simple message in it. Save it in your documents folder on your mac.

2. Open Terminal

3. Type “svn import /Users/yourname/Documnets/test.txt svn://www.servername.com/directory -m“initial import” –username yourname

Note:

the path “/Users/yourname/Documnets/test.txt” should be a path to any single dummy test.txt file. The idea is that we are uploading a single file to establish a connection.

The: svn://www.servername.com/directory is the path to your SVN server

“initial import” is only a tag line. Not needed

–username yourname = This is your SVN user name. Ensure you use a double dash –username.

EG: our code looks like this:

svn import /Users/spascoe/Documents/Temp/test.txt  svn://www.interactivewebs.com/interactivewebs -m “test import”

4. You will be prompted with your existing user for your user password. At this point, if your mac user name does not match the configured SVN user name. Just hit enter. It will then prompt of a user. Type the new SVN user name, then enter. Then the configured SVN pass and enter.

5. You will likely see something that says. “svn://www.servername.com/directory already exists” – Ignore that!

6. Close Xcode

7. Open Xcode again and return to the Optimizer / Repositories and with luck, your server will list on the left hand side, and show the ROOT and any folders on the SVN server.

8. Click back on the server name in the left hand column.

9. Type in the names of the Trunk Branches and Tags folders. We chose to use these names to make it easy. They need to be setup on the SVN server by the administrator. They ARE case sensitive.

10. The text.txt file can be deleted from the server through Xcode if desired.

11. Close the terminal session.

Thoughts

 

Sometimes not all views refresh correctly. We suggest closing Xcode and opening it again to get things visible that you know should be there.

If you need to change user names, and or passwords. Then you will need to enter the terminal again and upload something using the method above.

We don’t understand exactly why, but it appears that Xcode will remember the authentication of the terminal session, and caches the authentication properties some place. Without the terminal session upload, you will never get it working!

 

 

配置Xcode SVN从零开始

本节介绍一下从零配置Xcode SVN,Xcode 2.0 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径,而SVN是版本控制工具,那么Xcode SVN又是什么呢?如何配置Xcode SVN?本节就向大家一一讲解。

一、SVN干什么用的?

如果你重没接触过svn,也许这篇文章会对你有点帮助。一个大project总是很多人一起在开发,每个人都会更新这个project的sourcecode,svn就是为了方便大家一起维护管理sourcecode而诞生的。(svn真是不可多得的好东西!很奇怪LTE那么大的工程那么多人做,实验室怎么没人提倡用svn呢?)

我刚开始自学iphone的时候真的特别笨!代码需要一次又一次的修改,但有时修改后反而不能运行又找不出错在哪儿,“恢复”原来版本重新修改是一种好办法,可惜那时候我没听说过svn走了很多弯路,我人工的为每个project存储了很多版本,最后搞得自己也不知道哪个版本能用不能用了,实在费时费力又没效率!后来yile大大教我在Xcode上配置使用svn,生产力一下子从原始社会进入封建社会,省了不少事啊。

二、Xcode SVN配置方法

Mac自带svn,所以我们就不需要下载了,稍稍修改一下subversion配置就能使用。大大教了两种方法:方法一、适合团队合作的当然是把sourcecode放在服务器上,这样大家都可以下载、更新,不过通常这种服务器都是要收费滴(公司内网设个服务器是不是可用,这个我还没学);方法二、如果只是用于管理自己的程序,那么直接把本机当作服务器来配置就可以了~

配置Xcode SVN方法一:

Leopard中自带了SVN,但Xcode的项目文件中,并不是所有文件都适于加入SVN中进行管理,比如编译后的文件和编译过程中产生的文件,这些文件不属于源代码,应该告诉svn忽略掉,方法:

编辑~/.subversion/config文件

1.找到global-ignores一行,去掉注释,编辑成

global-ignores=build*~.nib*.so*.pbxuser*.mode*.perspective*.DS_Store

Xcode项目文件中有些文件是文本文件,需要告诉SVN,因为SVN能更好地管理文本文件

2.找到enable-auto-props=yes把注释去掉,在[auto-props]Section声明以下文本文件

*.mode*=svn:mime-type=text/X-xcode

*.pbxuser=svn:mime-type=text/X-xcode

*.perspective*=svn:mime-type=text/X-xcode

*.pbxproj=svn:mime-type=text/X-xcode

先去http://svn.w18.net/注册一个帐号,可以免费使用一个月练练手。登录后创建一个项目,打开Xcode->SCM->ConfigureSCMRepositories,填写信息如下图,然后我们就可以import、checkout操作了,这里解释一下库(repository)和服务器、本机之间的关系。库记录着所有版本的代码信息,无论你是从服务器下载更新代码(update)还是想将本地修改后的代码上传至服务器(commit)都要经过Repository;它就像一个仓库,从厂家运来的货物、卖出去的货物都记录得清清楚楚,随时查随时有。第一次使用时,服务器上没有sourcecode,需要将第一份源码import到库中,库就自动将sourcecode上传至服务器了。接下来,怎么更新、上传源码呢?通过checkout可以将服务器上代码下载至本机指定路径,那么每次修改代码后,commit操作即可更新本地代码至服务器,而update可将服务器上最新版本更新至本机,如果你想恢复以前某个版本也很简单,updateto某个revision版本即可(由于学校教育网,无法连接至服务器,具体操作在方法二中演示)。

 

 

 

 

XCode中使用SVN 教程是本文要介绍的内容,Xcode 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径,而SVN是版本控制工具,那么Xcode SVN又是什么呢?如何配置Xcode SVN

Xcode SVN配置方法

Mac自带svn,所以我们就不需要下载了,稍稍修改一下subversion配置就能使用。大大教了两种方法:

第一步,配置 Subversion

Leopard中自带了SVN,但Xcode的项目文件中,并不是所有文件都适于加入SVN中进行管理,比如编译后的文件和编译过程中产生的文件,这些文件不属于源代码,应该告诉svn忽略掉,方法:

编辑 ~/.subversion/config 文件 

注意:如果”.subversion”目录不存在,请运行”svn status”命令,虽然此命令会失败,但是会为你创建所需要的文件.    

open ~/.subversion/config 打开文件

1. 找到 global-ignores 一行,去掉注释,编辑成

  1. global-ignores = build *~.nib *.so *.pbxuser *.mode *.perspective* 

Xcode项目文件中有些文件是文本文件,需要告诉SVN,因为SVN能更好地管理文本文件(谁用谁知道)

2. 找到 enable-auto-props = yes 把注释去掉,在[auto-props] Section声明以下文本文件

  1. *.mode* = svn:mime-type=text/X-xcode*.pbxuser = svn:mime-type=text/X-xcode*.perspective* 
  2. svn:mime-type=text/X-xcode*.pbxproj = svn:mime-type=text/X-xcode 

第二步,配置Xcode

我们熟悉的Version Control在Xcode中叫做SCM(Software Configuration Management,学习CMMI的时候整天看到,原来就是Version Control),

1. 在Xode的菜单中选择 SCM -> Configure Repositories,填写SVN服务器的信息

XCode中使用SVN 教程

2. 然后选SCM -> Repositories 你就可以Import, Check Out你想要的内容了,SVN的日常管理也可以在这里做。

XCode中使用SVN 教程

3. Checkout项目以后在你的项目的属性中设置项目的SCM

XCode中使用SVN 教程

4. 设置好以后,你在你的项目视图中就可以看到新的一列,M表示该文件已经修改过,然后你已经可以通过SCM菜单,或者右键菜单直接进行SVN的操作, commit,update,revert,diff and log,任何你想要的。

XCode中使用SVN 教程

SCM->Get SCM Info 可以看到任何文件的版本信息。

XCode中使用SVN 教程

小结:XCode中使用SVN 教程的内容介绍完了,希望本文对你以后帮助!关于XCode的更多内容请参考编辑推荐。

【编辑推荐】

 

 

IOS开发系列之阿堂教程:构建IOS应用开发的 svn的服务端和客户端环境实践

 (2012-03-24 20:39:21)

些开发ios应用的朋友,可能刚开始不怎么在意ios开发时代码的管理,认为可能只是一个人开发而也,无所谓。当然,一个人开发确实有无svn的codes的版本管理,的确影响不大。随着项目团队的成立,就会不断有其它同事加入ios应用的开发了,svn的重要性就不言而喻了。因为,需要协调开发,这时候开发就不是一个人的代码了,而是多个人在开发同一个应用了,需要讲究协调配合开发了,同一个应用中就会有很多人的代码了,代码当然需要好好管理了。。重要性,对于程序员朋友应该知道了。哈,下面,网络时空(阿堂)就把自己安装好的svn的服务端和客户端的操作截图和网友们分享一下了,希望能对从事ios应用,还没有使用svn或将要使用svn管理codes的朋友参考一下了!
1.服务端的安装
(用什么操作系统作svn服务器,网友们可以自行选择。。阿堂下面就是直接用的xp作为 svn server了)

 

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践


 

2.客户端的安装

(在Mac OS系统下安装)

 

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

IOS开发系列之阿堂教程:构建IOS应用开发的 <wbr>svn的服务端和客户端环境实践

 

 

概要

概述

        SAE自2011-7-10日起,将全面支持SVN代码部署,用户不仅可以通过任何SVN客户端部署代码,而且SAE现有的代码部署方式也已经对接应用的SVN仓库,即使不使用SVN客户端部署代码,也保证了代码版本。 

        如:通过在线代码编辑器(http://sdk.tools.sinaapp.com)等方式对代码的修改、部署等操作也会像svn commit一样,产生一个新版本。通过SVN客户端svn update可以获取最近的更新,也可以通过svn客户端回滚代码。 

SVN仓库地址:  https://svn.sinaapp.com/your_app_name (您可以通过此地址直接访问)

如:应用域名是 test.sinaapp.com,那么SVN仓库地址是:https://svn.sinaapp.com/test

SVN用户名:  SAE安全邮箱     

SVN密码:  SAE安全密码(如已启用微盾动态密码,则此处填写“安全密码”+“微盾动态密码”) 

注:SVN用户名和密码为安全邮箱和安全密码,不是微博账号和微博密码!

与标准SVN的区别

  为了保持与SAE兼容,使用svn方式部署代码到SAE有如下限制: 

    1、文件名或目录名不允许含有以下字符:",*,?,<,>,|,另外文件或文件名的开始与结束也不允             许有空格。 

    2、上传单个文件大小不超过20M 

    3、单个目录下的文 件个数不能超过2000个 

    4、每个应用代码总大小不超过100M 

    5、单个版本代码总大小不超过50M 

    6、appname目录下只允许存在10个以内的版本,并且版本号必须为正整数。(也就是说appname下面只允许出现10个以内的正整数             目录名,不允许有非目录的存在) 

代码部署原理

  SAE代码部署分为三步: 

  创建应用

        登陆SAE在线管理平台,“创建新应用”(http://sae.sina.com.cn/?m=myapp&a=create)时,如果创建成功,系统会自动为该应用创建一个SVN仓库。假设新创建的应用名为newapp,那么仓库地址为: 

        https://svn.sinaapp.com/newapp/ 

        此时,可以通过本地SVN客户端检出(checkout)该应用的本地工作目录。 

  部署代码

     SAE提供了不同的代码部署方式,可以分为两类: 

          一是通过SVN客户端部署,这是SAE推荐的代码部署方法。 

          另一个是通过非SVN客户端部署,即在线代码在线编辑器和推荐应用安装。 

        这两类代码部署方法都会更新应用的SVN仓库版本,但必须注意的是非SVN客户端部署方式无法提供版本管理功能,只能看到最新版本的代码,也无法回滚代码。 

        因此,强烈建议仅使用SVN客户端方式部署代码,如果同时使用非SVN客户端方式部署,为避免代码版本冲突,请及时在本地SVN工作目录下执行svn update操作,保证本地工作目录与线上代码保持一致。 

  验证

        代码更新后,通过svn update或直接通过浏览器访问应用查看代码是否已经更新到线上。 

 

相关资源

  TortoiseSVN下载:http://tortoisesvn.net/downloads.html

  Subversion中文站:  http://www.subversion.org.cn/

Windows SVN

使用TortoiseSVN客户端

        在Windows下推荐使用乌龟(Tortoise)SVN客户端。 TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库(即SAE中央SVN仓库),除了能记住文件和目录的每次修改以 外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 

下载安装

   TortoiseSVN下载:http://tortoisesvn.net/downloads.html

又不是在linux下,安装就不多说了 :) 

下面详细介绍使用TortoiseSVN向SAE部署代码。 

创建本地工作目录

        第一步,如图1,创建一个新文件夹作为本地工作目录(Working directory),可以使用应用名为文件夹名。如,为我的应用devcenter创建本地工作目录。 

 

  第二步,从SAE的SVN仓库检出(checkout)一个应用的全部版本代码,如图2,右键-->点击“SVN Checkout” 

 

  在弹出页面中填写仓库路径即可,这里是:https://svn.sinaapp.com/devcenter/,其它默认参数即可,如图3: 

 

  Reversion处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。 

  点击“OK”,出现下载界面,如图4: 

 

  如果一切顺利,devcenter应用所有版本代码将会全部出现在刚刚创建的devcenter文件夹下,如图5: 

 

修改代码

  在本地使用你喜欢的编辑器,编辑任意文件,保存后该文件图标将会出现红色感叹号,如图6所示: 

 

        看,刚刚修改过的index.php变色了。下面需要提交(commit)最近的更新。在index.php文件上击右键,出现菜单 , 

选择“SVN commit”,如图7: 

 

  然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败。如图8: 

 

  当您看到如图9所示,表明刚才的修改已经成功提交,并且前该devcenter项目的SVN版本号加1,变成30. 

 

新增文件/文件夹

        在 SVN工作目录下,对于文件修改,完成后只需要commit就ok了,但对于新增文件,或者从其它目录复制进来的文件或文件夹,需要在commit之前需 要做一步add操作,即将文件或文件夹添加到svn工作目录中来,否则SVN客户端不认它。具体操作很简单,如图10: 

 

  然后再如图7所示,右键commit 即可。 

  更多Tortoise SVN使用帮助,请参阅:http://www.subversion.org.cn/tsvndoc/

Notepad++集成svn插件

  Notepad++ 是一款Windows环境下很受欢迎的免费开源的代码编辑器,有很丰富的第三方插件。 

  下面介绍Notepad++的svn插件的安装及使用。 

    如图12,点击Plugin --> Plugin Manager --> Show Plugin Manager 

 

    打开后,在“Available”页找到“Subversion”,然后点击“Install”,如图13所示: 

 

    安装成功后会在Plugins菜单下出现"Subversion"子菜单。 

            打开之前checkout下来的任一文件,如devcenter/1/index.php,编辑完成后,点击Plugins --> Subversion --> Commit File(或使用    快捷键Ctrl+Alt+A) 

    出现熟悉的一页,如图14所示: 

 

    对,这就是乌龟SVN的Commit页面,输入Log Message,点击“OK”即可提交。 

使用UltraEdit Studio部署

    UltraEdit Studio(注意不是UltraEdit,UltraEdit不能与SVN整合)配置稍微复杂些。 

    第一步,SVN仓库账号设置,如图15所示: 

 

    然后填写仓库信息,如图16所示: 

 

    完成后,创建Project,如图17所示: 

 

        填写project名b.prj后,出现如图18所示"Project Settings",点击“Add Folder”,出现“NewFolder”,将"Group"前的勾去掉,然后点击“Browse”,在“Browse for Folder”页找到之前checkout出现的本地工作目录。 

 

    点击“OK”后出现提示,如图19所示: 

 

    表明UEStudio自动识别出了选择的代码目录是一个SVN工作目录,并询问是否整合,点击“Yes”,出现如图20所示: 

 

    大功告成,"Close"之后即可以编辑代码,并随时commit修改。如图21所示: 

 

使用EditPlus部署

    EditPlus依赖于Tortoise SVN(TSVN),必须先安装。 

    使用最简单,见图22所示: 

 

当编辑SVN工作目录里的文件时,File --> TSVN即出现相应可操作的菜单。 

Linux/Mac SVN

仓库地址

https://svn.sinaapp.com/appname/

    为了传输安全,SAE要求统一使用https方式部署代码; 

创建仓库

      登陆SAE在线管理平台(http://sae.sina.com.cn),创建应用,成功后您即可以检出该应用代码。 

      例如,您刚刚创建了应用newapp,在本地执行: 

          svn checkout https://svn.sinaapp.com/newapp 

      第一次checkout时需要验证,用户名/密码为您的SAE安全邮箱和安全密码(非微博登陆账号密码,如已启用微盾动态密码,则此处填写“安全密码”+“微盾动态密码”)。 

创建版本

      假如,为newapp应用创建版本1 

      目前提供两种方式: 

使用svn客户端

svn checkout https://svn.sinaapp.com/newapp  #此处需要认证,用户名/密码为您的SAE安全邮箱和安全密码(如已启用微盾动态密码,则此处填写“安全密码”+“微盾动态密码”) 

cd newapp 

mkdir 1 

svn add 1 

svn commit -m"add version 1 for newapp" 

使用在线管理平台

          在SAE在线管理平台“代码管理”处创建版本即可。但为了避免与本地仓库冲突,务必在本地工作目录下执行:svn update ,将最近的更新拉到本地来。 

更新代码

          更新代码前本地必须有一个工作目录(Working Directory),创建工作目录很简单,只需要检出(checkout)代码仓库即可。如,对于已经创建好的应用newapp,在本地执行: 

     svn checkout https://svn.sinaapp.com/newapp 

          输入安全账号和安全密码,即完成本地工作目录的创建。 

上传代码

      需要增加某个文件或文件夹,如部署wordpress到版本1。 

svn checkout https://svn.sinaapp.com/newapp 

cd newapp/1 

cp -rf /path/to/wordpress/* ./ 

svn add ./* 

svn commit -m"add wordpress" 

修改代码

      假如需要修改newapp应用版本1根目录下某个文件,如index.php,完整的操作流程如下: 

svn checkout https://svn.sinaapp.com/newapp    #如果已经checkout过了,不需要重新checkout。 

cd newapp/1 

vim index.php   #这里编辑代码 

svn commit -m "edit index.php" 

配置应用(appconfig)

        在应用版本根目录下,如newapp/1下,创建文件config.yaml(语法参见:http://sae.sina.com.cn/?m=devcenter&catId=193),然后通过svn commit即可完成应用配置。 

        如,现在需要更新应用newapp的默认版本3的appconfig,操作如下: 

    svn checkout https://svn.sinaapp.com/newapp    #如果已经checkout过了,不需要重新checkout。 

    cd newapp/3 

    vim config.yaml   #这里按照config.yaml语法编辑即可。 

    svn commit -m "update config.yaml" 

        注意:config.yaml不会被部署到用户的代码目录,但会被存储在服务端SVN仓库中。因此下次可以被checkout出来,但不会被用户访问到。 

在线编辑代码

      SVN可以在线阅读应用代码,地址即SVN仓库地址:https://svn.sinaapp.com/appname/ 

      将appname换成自己的应用名即可登陆查看代码。 

      在线编辑器 可在管理面板>>代码管理>>编辑代码 打开 

SVN for SAE的限制条件

      为了保持与SAE兼容,使用svn方式部署代码到SAE有如下限制: 

      1、文件名或目录名不允许含有以下字符:",*,?,<,>,|,另外文件或文件名的开始与结束也不允许有空格。 

      2、上传单个文件大小不超过4M 

      3、单个目录下的文 件个数不能超过400个 

      4、每个应用代码总大小不超过100M 

      5、单个版本代码总大小不超过50M 

      6、appname目录下只允许存在10个以内的版本,并且版本号必须为正整数。(也就是说appname下面只允许出现10个以内的正整数             目录名,不允许有非目录的存在) 

常见错误说明及解决办法

错误提示
错误原因
解决方法 

The change log need some words(not null)
提交时没有添加log message
提交时加上log message即可 

The log message is a pathname (was -F intended?); use '--force-log' to override
log message 与路径名称相同
修改log message 

Error file xxx in not allowed in root directory!
working copy的根目录下不允许有名为xxx的文件(只能是正整数版本目录)
删除该文件或者移到到版本目录下 

directory xxx/ is not allowed in root directory! Only positive integer dirs are allowed! 

working copy的根目录下不允许有名为xxx的目录(只能是正整数版本目录)
删除该目录或者移到版本目录下 

Too many versions!(less than 10 is permited)
版本目录多于10个,最多不超过10个
删除刚刚创建的版本目录即可。 

Too many files: XXX (less than 2000 is allowed).
XXX目录下文件的数量超过2000
删除XXX目录下的文件,使其总数降至2000以下 

dir APPNAME/dir(size:xxxx) is too large less than xxx
该应用下代码(不包括.svn目录)总大小超过100M,或某个版本总大小超过50M
删除不必要的代码再尝试提交 

File XXX is too large!(less than 4M)
单个文件大小超过4M
删除重试 

类似Repository UUID '305daf1b-94be-48ee-a4b9-f4bcd36320de' doesn't match expected UUID '44e2f7a2-1b69-4710-974a-b6edef0fdc12'
服务器端仓库被删除重建,客户端对原仓库进行操作导致。
重新checkout出一份代码即可 

add vers xxx faild
文件部署失败
内部原因,请联系saesupport@sina.cn。 

常用svn命令说明

    1、从SVN仓库中检索出代码到工作拷贝: 

           # svn checkout https://svn.sinaapp.com/appname [workcopy] 

           其中workcopy是可选的,如果不写workcopy,SVN会默认将appname做为workcopy。 

           如果只检索某个版本: 

           # svn checkout https://svn.sinaapp.com/appname/appversion [workcopy] 

           只检索某个版本的某个目录: 

           # svn checkout https://svn.sinaapp.com/appname/appversion/folder [workcopy] 

    2、向SVN仓库提交代码: 

           # svn commit -m "here is message" 

    3、将本地文件添加到工作拷贝: 

           # svn add something 

           注:如果something为文件,svn会将这个文件添加到工作拷贝;如果something是目录,svn会将目录及里面的文件全添加到工作                      拷贝。something也可以是通配符*,这样会忽略已经添加过的文件。 

    4、从工作拷贝中删除一个文件: 

           # svn delete something 

           注:如果something为文件,svn会将这个文件从工作拷贝中删除;如果something是目录,svn会将目录及里面的文件全部从工作                      拷贝中删除。 

    5、直接从SVN仓库中删除文件: 

           # svn delete -m "delete something" https://svn.sinaapp.com/appname/appversion/something 

           注:可以从SVN仓库中直接删除单个文件或单个目录甚至某个版本。 

    6、将一个本地项目导入到SVN仓库: 

           导入应用的某个版本: 

           # svn import localdir https://svn.sinaapp.com/appname/appversion 

           注:要确保目前应用的appversion不冲突。 

    7、查看工作拷贝中的文件或目录状态: 

           # svn status [something] 

    8、更新自己的工作拷贝: 

           # svn update 

           注:从SVN仓库下载最新版本,此命令会导致本地没有提交的更改丢失,建议使用此命令前先查看一下本地拷贝状态(svn status). 

    9、取消对代码修改 

           取消对代码的修改分为两种情况。 

第一种情况:改动没有被提交(commit)。 

           这种情况下,使用svn revert就能取消之前的修改。 

           svn revert用法如下: 

           # svn revert [-R] something 

           其中something可以是(目录或文件的)相对路径也可以是绝对路径。 

           当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则              只会将something这个目录的改动。 

           在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。 

           注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修                        改。 

第二种情况:改动已经被提交(commit)。这种情况下,用svn merge命令来进行回滚。  

           回滚的操作过程如下:  

             1) 保证我们拿到的是最新代码:  

                  svn update  

                  假设最新版本号是28。  

             2) 然后找出要回滚的确切版本号:  

                  svn log [something] 

                  假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目 

                  如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something] 

             3) 回滚到版本号25: 

                  svn merge -r 28:25 something 

                  为了保险起见,再次确认回滚的结果: 

                  svn diff [something] 

                  发现正确无误,提交。 

             4) 提交回滚: 

                  svn commit -m "Revert revision from r28 to r25,because of ..."  

                  提交后版本变成了29。 

                  将以上操作总结为三条如下: 

                  a. svn update,svn log,找到最新版本(latest revision) 

                  b. 找到自己想要回滚的版本号(rollbak revision) 

                  c. 用svn merge来回滚: svn merge -r : something 

    10、查看SVN仓库日志信息: 

            # svn log [workcopy] 

            查看所有本地的历史日志,如果workcopy为某文件,那么就是查看某个文件的日志信息。 

            查看SVN仓库所有文件的日志信息: 

            # svn log https://svn.sinaapp.com/appname/ 

            这个命令会查看所有修改过的日志。 

    注:SAE提供的SVN服务完全支持标准SVN的所有命令,更详细的使用说明请查阅SVN官方帮助文档。 

            SVN命令帮助文档:http://www.subversion.org.cn/svnbook/1.4/svn.ref.html 

            中文完全帮助文档:http://svnbook.red-bean.com/index.zh.html  

 
 

 

posted @ 2015-01-08 09:24  mengxiangtong22  阅读(1847)  评论(0编辑  收藏  举报