XCode中使用SVN 教程

修改subversion.config方法:

能够直接在终端上输入:vi ~/.subversion/config来编辑.php

也能够经过Finder搜索.subversion,点击下边的+号,进入高级搜索界面,找到各种->其余-> 文件可见性 ,选择不可见文件便可搜索到.subversion文件夹.html

隐藏文件文件名是  .subversionlinux

 

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

 

 

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.web

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.vim

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.xcode

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?本节就向你们一一讲解。

1、SVN干什么用的?

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

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

2、Xcode SVN配置方法

Mac自带svn,因此咱们就不须要下载了,稍稍修改一下subversion配置就能使用。大大教了两种方法:方法1、适合团队合做的固然是把sourcecode放在服务器上,这样你们均可如下载、更新,不过一般这种服务器都是要收费滴(公司内网设个服务器是否是可用,这个我还没学);方法2、若是只是用于管理本身的程序,那么直接把本机看成服务器来配置就能够了~

配置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有以下限制: 

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

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

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

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

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

    六、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有以下限制: 

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

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

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

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

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

      六、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命令说明

    一、从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] 

    二、向SVN仓库提交代码: 

           # svn commit -m "here is message" 

    三、将本地文件添加到工做拷贝: 

           # svn add something 

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

    四、从工做拷贝中删除一个文件: 

           # svn delete something 

           注:若是something为文件,svn会将这个文件从工做拷贝中删除;若是something是目录,svn会将目录及里面的文件所有从工做                      拷贝中删除。 

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

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

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

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

           导入应用的某个版本: 

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

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

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

           # svn status [something] 

    八、更新本身的工做拷贝: 

           # svn update 

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

    九、取消对代码修改 

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

第一种状况:改动没有被提交(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 

    十、查看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 

相关文章
相关标签/搜索