TortoiseSVN is an easy-to-use SCM / source control software for Microsoft Windows and possibly the best standalone Apache™ Subversion® client there is. It is implemented as a Windows shell extension, which makes it integrate seamlessly into the Windows explorer. Since it's not an integration for a specific IDE you can use it with whatever development tools you like.

相关资源

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

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

登录SAE,访问 我的应用,单击“创建新应用”

填写二级域名,单击“创建应用”,这个域名就是您应用的访问地址

现在您可以关闭浏览器,以下操作将在您的本地计算机上进行(请确保SVN已经安装好)

进入您的本地工作目录,如 D:\SAE,单击鼠标右键,在弹出的菜单中选择“SVN Checkout”

在弹出页面中填写仓库路径即可,如: https://svn.sinaapp.com/myhello (其中 myhello 是您刚创建的应用名称)

单击“OK”开始同步,如果是第一次使用会弹出Authentication窗口进行身份验证,

username:注册SAE时填写的 安全邮箱(并非微博帐号)

password:注册SAE时填写的 安全密码(并非微博密码)

另外,如果您不希望每次使用都进行身份验证,可以勾选Save authentication复选框

身份验证成功后会将您的应用同步到本地工作目录中,创建以您应用命名的文件夹

接下来需要创建一个版本,在该文件夹中创建一个新的文件夹作为这个应用的版本(注意文件夹的名称就是应用的版本号,必须是正整数,如:1)

现在您可以使用您最擅长的编码工具(如:EditPlus、Dreamweaver等)在该文件夹下创建您的第一个页面,如 index.php,文件内容如下:

<?php
echo 'Hello World ';
?>

创建完成后,右键单击该文件,在弹出的菜单中选择:TortoiseSVN > Add ,添加该文件

完成后,会在该文件左侧出现红色的“!”,右键单击该文件,在弹出的菜单中选择SVN Commit...,执行提交操作

在弹出的窗口的Message处填写更新的理由(必填项,不填写会导致上传失败)

上传成功后显示以下界面

现在,在浏览器中输入您的应用的地址,就可以马上访问了;本例地址为 http://myhello.sinaapp.com (其中 myhello 为您的应用名称)

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”即可提交。

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使用教程(基于SAE)的更多相关文章

  1. SVN教程 -- 基于自己学习记录

    SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控 ...

  2. Git 教程 -- 基于自己学习记录

    Git 教程 -- 基于自己学习记录 1. 引言 由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这. 2. 注册登录 GitHub. 3. 选择一个仓 ...

  3. [转载]SVN使用教程

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  4. SVN使用教程总结[转]

    SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Sub ...

  5. SVN备份教程(三)

    上次的博文SVN备份教程(二)中,我们讲解了一下SVN定时备份的相关内容,同时我们又提出了一种新的SVN备份方案--自动备份. 1.简介 所谓自动备份,它实现的思路非常简单,就是利用SVN自带的hoo ...

  6. SVN备份教程(二)

    上次的博文中SVN备份教程(一)我们简单介绍了一下SVN备份是如何操作的,今天我们接着将上次的问题进行优化. 1.问题回顾 在讲之前,我们先来将上次的问题重申一下.之前的SVN备份存在的问题很简单,每 ...

  7. Visual Studio图形调试器详细使用教程(基于DirectX11)

    前言 对于DirectX程序开发者来说,学会使用Visual Studio Graphics Debugger(图形调试器)可以帮助你全面了解渲染管线绑定的资源和运行状态,从而确认问题所在.现在就以我 ...

  8. SVN简明教程

    SVN简明教程 Posted on 2010-09-07 17:34 幻海蓝梦 阅读(7196) 评论(0)  编辑  收藏 所属分类: 版本管理  http://www.emsym.com/blog ...

  9. Eclipse SVN 使用教程

    Eclipse SVN 使用教程 做好以上的准备后打开Eclipse编译器,点击编译器右上角的Open Perspective 打开SVN资源库界面,新建一个资源库 选择资源库的位置,这里我们就用刚才 ...

随机推荐

  1. Android 利用an框架快速实现网络请求(含下载上传文件)

    作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22573081来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. an框架的网络框架是完全 ...

  2. Java中compareTo()方法比较字符串详解

    中心:String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型 1.当两个比较的字符串是英文且长度 ...

  3. OpenGL_ES-纹理

    OpenGL_ES2.0 -纹理 一:纹理基础: 1: 纹素的概念: 一个二维纹理在OpenGLES2.0中是非经常见的,二维纹理就是一个二维数组,每一个数据元素称为纹素,详细格式例如以下: GL_R ...

  4. swift学习第十六天:懒加载和tableView

    懒加载 懒加载的介绍 swift中也有懒加载的方式 (苹果的设计思想:希望所有的对象在使用时才真正加载到内存中) 和OC不同的是swift有专门的关键字来实现懒加载 lazy关键字可以用于定义某一个属 ...

  5. Linux与Windows 10用grub引导教程

    前言 去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程.由于去年对于写教程还 ...

  6. 在云平台上基于Go语言+Google图表API提供二维码生成应用

    二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...

  7. jquery获取元素坐标获取鼠标坐标

    获取页面某一元素的绝对X,Y坐标,可以用offset()方法: var X = $('#DivID').offset().top; var Y = $('#DivID').offset().left; ...

  8. java.sql.SQLException:Column count doesn&#39;t match value count at row 1

    1.错误描写叙述 java.sql.SQLException:Column count doesn't match value count at row 1 2.错误原因     在插入数据时,插入的 ...

  9. [React Router v4] Use the React Router v4 Link Component for Navigation Between Routes

    If you’ve created several Routes within your application, you will also want to be able to navigate ...

  10. 菜鸟学习Spring——60s利用JoinPoint获取參数的值和方法名称

    一.概述 AOP的实现方法在上两篇博客中已经用了两种方法来实现如今的问题来了尽管我们利用AOP,那么client怎样信息传递?利用JoinPoint接口来实现client给详细实现类的传递參数. 二. ...