`
yaasshole
  • 浏览: 667425 次
文章分类
社区版块
存档分类
最新评论

Subversion 使用简介

 
阅读更多

转贴自:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-php-blog/section7.html

利用 PHP 和 Subversion 从零开始创建一个 blog

为存储库作准备

Subversion 将所有版本化数据存储在中央存储库中。创建存储库之前,您需要对目录结构进行一些修改。在本教程开始提到的 blog-svn 目录下再创建 3 个子目录:branches、tags、trunk。trunk 目录包含主源树、branches 目录为主源树的细分。可暂时不合并 Branches,也可立即合并此目录。Tags 目录非常有用,因为您可为 trunk 的当前快照加上 “发布版” 或代码其他关键点、里程碑的标签。

那么 index.php 文件所在目录中有了 3 个新的子目录,将整个原始目录结构移动到 trunk 目录中。这样就为创建存储库作好了准备。




回页首


创建存储库

创建存储库时,应首先构建一个目录以保存存储库。本教程中使用的目录为 C:/svn-repository/。在本目录中创建存储库的命令为:


svnadmin create c:/svn-repository/php-blog

如果您现在查看 php-blog 目录,应看到以下目录/文件列于其中:conf、dav、db、format、hooks、locks 和 README.txt。存储库已成功创建!




回页首


将代码导入存储库

将代码导入存储库后,存储库就完成了。通过以下命令将 blog 代码导入存储库:


svn import <blog-svn-dir> file:///svn-repository/php-blog -m "first import"

<blog-svn-dir> 目录应为之前创建的 trunk、branches 和 tag 目录的父目录。此时,Subversion 应返回形如清单 23 所示的信息。


清单 23. 初次将代码导入 Subversion 存储库



Adding C:/www/blog-svn/trunk
Adding C:/www/blog-svn/trunk/footer.php
Adding C:/www/blog-svn/trunk/edit
Adding C:/www/blog-svn/trunk/edit/footer.html
Adding C:/www/blog-svn/trunk/edit/includes
Adding C:/www/blog-svn/trunk/edit/includes/functions.php
Adding C:/www/blog-svn/trunk/edit/header.html
Adding C:/www/blog-svn/trunk/edit/index.php
Adding C:/www/blog-svn/trunk/header-sidebar.php
Adding C:/www/blog-svn/trunk/blogs
Adding C:/www/blog-svn/trunk/blogs/Dec 2005
Adding C:/www/blog-svn/trunk/blogs/Dec 2005/Dec 22 2005 15 48
Adding C:/www/blog-svn/trunk/includes
Adding C:/www/blog-svn/trunk/includes/functions.php
Adding C:/www/blog-svn/trunk/index.php
Adding C:/www/blog-svn/branches
Adding C:/www/blog-svn/tags

Committed revision 1.





回页首


设置您的工作目录

既然已经完成了存储库,请删除之前导入到 Subversion 的 blog-svn-dir 目录。需要从存储库中签出一份新副本,以创建您的工作副本。删除此目录之后,即可在相同的位置从存储库中签出副本,输入以下命令:


svn checkout file:///svn-repository/php-blog/trunk blog-svn

此命令签出存储库(参见清单 24),并建立您自己的工作副本。浏览目录,并注意各目录中都有自己的 .svn 目录。这就是在 blog 代码的清单 12 和清单 17 中忽略 .svn 目录的原因。


清单 24. 从存储库中签出



A blog-svn/footer.php
A blog-svn/edit
A blog-svn/edit/footer.html
A blog-svn/edit/includes
A blog-svn/edit/includes/functions.php
A blog-svn/edit/header.html
A blog-svn/edit/index.php
A blog-svn/header-sidebar.php
A blog-svn/blogs
A blog-svn/blogs/Dec 2005
A blog-svn/blogs/Dec 2005/Dec 22 2005 15 48
A blog-svn/includes
A blog-svn/includes/functions.php
A blog-svn/index.php
Checked out revision 1.





回页首


向存储库提交更改

在作出更改及编辑代码时,您可使用以下命令提交更改:


svn checkout file:///svn-repository/php-blog/trunk blog-svn

Subversion 随后将返回形如清单 25 所示的信息。


清单 25. 签入更改



Sending blogs/Dec 2005/Dec 22 2005 15 48
Sending edit/includes/functions.php
Sending includes/functions.php
Transmitting file data ...
Committed revision 2.

通过下一节的介绍,您将看到向存储库添加新 blog 条目有多么简单。




回页首


向存储库添加文件

若您想向 Subversion 存储库添加 blog 条目或另外一个文件,请输入以下命令:


svn add "Dec 21 2005 15 48"

Subversion 将返回这样的信息:


A Dec 21 2005 15 48

此后在您想提交更改时,Subversion 将返回以下信息:


Adding Dec 2005/Dec 21 2005 15 48
Transmitting file data .
Committed revision 5.

因而,为所添加的新文件显示的是 Adding 而非 Sending。或许您还希望实现一点自定义,在 PHP 中创建一个函数为您完成签入操作(具体方法请参阅 参考资料)。




回页首


从存储库中删除文件

删除文件的方法与添加文件极为类似:


svn remove "Dec 21 2005 15 48"

Subversion 返回:


D Dec 21 2005 15 48

与上面一样提交更改,Subversion 返回:


Deleting Dec 2005/Dec 21 2005 15 48

Committed revision 8.

这一次,为所删除的文件显示了 Deleting 而非 Sending。

接下来介绍如何设置系统以实现从另外一台计算机上远程签出您的 blog 代码。




回页首


远程访问

为实现远程访问,需要在您的机器上设置 Subversion 服务器。为此,输入:


svnserve -d -r c:/svn-repository/

请注意,-d 开关告诉 svnserver 以守护程序 (deamon) 模式运行,-r <directory> 开关告诉 svnserve 仅允许存储库在给定目录下可见 —— 也就是说,在上述服务器配置中,c:/repository2/ 是不可见的。

现在前往您的远程计算机(或您想签出代码的其他计算机,务必确保远程计算机已安装 Subversion),输入:


svn checkout svn://example.com/php-blog/trunk

注意,我已在 localhost 上运行了 svnserve 服务器,因此您也可以尝试这样做,只需将 example.com 替换为 localhost 即可。另请注意我以粗体标出的内容:由于服务器是以 -r c:/svn-repository/ 开关运行的,查看服务器的文件系统时应将 c:/svn-repository 视为服务器的根目录。

您将看到清单 26 所示返回信息,看上去就像您是在本地 Subversion 存储库以外的地方检查 PHP blog 代码。


清单 26. 从远程 Subversion 存储库签出



A trunk/footer.php
A trunk/edit
A trunk/edit/footer.html
A trunk/edit/includes
A trunk/edit/includes/functions.php
A trunk/edit/header.html
A trunk/edit/index.php
A trunk/header-sidebar.php
A trunk/blogs
A trunk/blogs/Dec 2005
A trunk/blogs/Dec 2005/Dec 21 2005
A trunk/blogs/Dec 2005/Dec 22 2005
A trunk/blogs/Dec 2005/Dec 23 2005
A trunk/includes
A trunk/includes/functions.php
A trunk/index.php
Checked out revision 8.

好!现在您已经很好地掌握了 Subversion。

分享到:
评论

相关推荐

    Subversion使用简介

    Subversion使用简介,Subversion服务方和客户方均基于Windows操作系统,包含Subversion的服务端和客户端软件的安装,

    Subversion 使用简介PPT

    Subversion 是一个开源的版本控制系统 Subversion 可以帮助我们管理文件、目录及随着时间的推移对它们的修改 通过Subversion我们可以恢复数据之前的版本或者查看数据的修改历史

    Subversion--使用简介.

    Subversion--使用简介.关于svn使用的各种说明文档。

    Subversion简介

    Subversion简介

    subversion应用简介

    subversion应用简介

    Eclipse下使用Subversion

    CVS很酷,但Subversion更酷... 一、SCM和Subversion简介软件配置管理(SCM)是管理源码并保持其安全的良好艺术,它能实现源码与其他团队成员之间保持共享,并且能够对之加以保护。良好地利用SCM,你能够容易地跟踪软件的

    在JDeveloper中使用Subversion

    目录简介安装JDeveloperSubversionVCS扩展连接Subversion信息库将JDeveloper项目导入Subversion签出文件添加和提交文件更新文件编辑文件比较与合并文件修订解决冲突重命名文件从Subversion控件中移除文件附录一:...

    PySvn, 面向 python的轻量级Subversion库.zip

    PySvn, 面向 python的轻量级Subversion库 简介是一个简单的用于的Subversion库。 为了方便,我写了一个轻量级的。可以访问的库,它也可以在的PyPI中使用。 它与 python 2.7和 3.3 兼容。这个库包装了svn客户端,因此...

    subversion-TortoiseSVN-使用手册(CHM+HTML,中英完整版)

    6. 本文使用的术语 1. 简介 1.1. 什么是TortoiseSVN? 1.2. TortoiseSVN的历史 1.3. TortoiseSVN的特性 1.4. 安装TortoiseSVN 1.4.1. 系统要求 1.4.2. 安装 1.4.3. 语言包 1.4.4. 拼写检查器 2. 基本概念 2.1. 版本...

    apache subversion版本控制系统 v1.9.3 完整版.zip

    Apache Subversion 简介 Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。 相关阅读 同类推荐:站长常用源码

    SVN基本培训(非常棒的Subversion初学教程)

    非常棒的Subversion初学教程。包括: SVN简介 SVN客户端介绍 SVN客户端的安装和配置 SVN客户端的使用 SVN配置库的规划 SVN配置库的切换方式 Q&A

    TortoiseSVN使用简介

    TortoiseSVN使用简介,详细介绍什么是SVN(Subversion)? ,为甚么要用SVN? 怎么样在Windows下面建立SVN Repository?制作Tag或是Release

    TortoiseSVN (源代码管理)使用简介

    什么是 SVN(Subversion)? 有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器

Global site tag (gtag.js) - Google Analytics