`
hudeyong926
  • 浏览: 2034804 次
  • 来自: 武汉
社区版块
存档分类
最新评论

subversion操作

阅读更多

本控制之于程序员,就好比安全网之于高空秋 千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风 险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经 发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。

Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能 性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。

本文介绍了使用 Subversion 追踪项目的基础知识,以使您在编写代码时能够承受更多的风险、享受更多的乐趣。

版本控制简史

当我还是一名刚刚毕业的学生时,我第一次在国家太阳观察站(National SSolar Observatory)接触到了如今版本控制系统的鼻祖 —— SCCS。今天,已经出现了数不胜数的版本控制系统,而 SCCS 也早已被更强大的产品所取代,如 Visual SourceSafe、BitKeeper、Perforce 和开源 CVS(参见 参考资料 部分)。

在开放源码程序员间,CVS 已成为一种事实上的 标准。Codehaus、Sourceforge、Savannah 和 Java™ 社区的 java.net 等站点中驻留的免费 CVS 使得为开源项目建设存储库更为简单。以 CVS 为中心,已发展起一个大型的附件市场,包括 TortoiseCVS、ViewCVS 和 Fisheye 等工具。

与其他版本控制系统相比,CVS 最令人称道的地方就是其非锁定 存储库,这使多个开发人员能够同时检出同一个文件。CVS 在提交时解决冲突问题,这就避免了冲突成为发展的瓶颈。CVS 第二个出色的特性就是它是一种网络存储库。处于许多不同系统上的程序员可以通过公共的 Internet 访问相同的存储库。

 

逐渐失去优势的 CVS

CVS 在过去的十年中,为社区提供了优质的服务,但它陈旧的劣势开始体现出来。首先,它实际上仅能处理 ASCII 文件。Unicode 文件会令 CVS 严重混乱。此外,CVS 存储库更改起来极为困难。CVS 没有任何关于 “移动” 操作的概念。它只能注意到,一个文件在一处被删除了,而在一个新位置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失。设置 CVS 存储库时,您必须非常谨慎地为每个文件选择准确的位置,因为在设置之后,您几乎就要一直使用这个位置了。

CVS 已经不再适合现代开发,这一点越来越明显。特别是 CVS 只能满足老式 C 程序员的 ASCII 需求,而对 Web 开发人员和其他非传统用户来说,CVS 实际上根本不起作用。在您开始考虑存储整个 Web 站点时,在 CVS 中,将文件从一个目录移动到另外一个目录是关键考虑事项。因此,在几年前,许多核心 CVS 开发人员认为,已经到了利用他们多年来使用 CVS 时学到的经验和教训、从头开始创建新一代开放源码 存储库的时机。在 2004 年年初,他们的努力结出了丰硕的果实,那就是 Subversion 1.0。

 

Subversion 的支持与采纳

程序员(特别是那些依赖版本控制的程序员)是一个非常谨慎的群体,Subversion 着实用了很长一段时间,才得到他们的广泛接受。很少有程序员愿意冲在易于流血的最前沿,即便是他们已经因为 CVS 受了伤。甚至是在 Subersion 变得可靠之后,仍然用了好几年的时间,所有第三方编辑器、IDE 和文档规范才相继跟进。而 Subversion 依然在不断改进,BBEdit 和 Eclipse 等第三方工具现在已经有了足够好的 Subversion 支持。逐渐地,新项目也纷纷选择 Subversion 满足其版本控制需求,而老项目正在向 Subversion 移植。最近,Apache Software Foundation 已移植到 Subversion。已实现移植的项目包括 Xerces XML 解析器、Apache HTTP Server 和 Spamassassin。

合并

如果您已进行了更改,其他开发人员也进行了更改,那么您就必须手动合并文件。对于绝大多数简单更改,Subversion 可推断出需要进行怎样的处理,无需人工干预。但对于较大、较为复杂、存在冲突的更改,您可能需要参与进来,手动合并更改。

Subclipse 在这里可提供一些帮助,但实际上我发现,在一个独立的窗口或选项卡中直接实现一个临时文件副本,通过存储库更新本地副本以覆盖我的更改,然后通过临时副本 重新输入更改,这样做往往更容易。若存储库中的更改与我做出的更改相比较少,我就会从存储库实现临时副本,并通过它进行提交,而不是更新。随后我会重新应 用那些更改。这听上去非常复杂,但事实通常并非如此,它的发生几率几乎与您希望的一样低。即便是您出了错,忘记重新应用更改或是错误地应用了更改,总是可 以找到所有更改的完整历史(包括您覆盖的那些更改)供您参考。实际上您从未彻底丢失任何东西。

如果您不确定已更改了哪些文件,同步视图可以为您显示这些文件。您还可打开标签修饰(label decoration)来查看上次提交/更新后哪些文件发生过更改。选择 Help | Preferences ,然后再选择 General/Appearance/Label Decorations 。然后选中 SVN 复选框 。(实际上该复选框在默认情况下就是选中的。)

SmartSVN注册方法
"C:\Program Files\SmartSVN 6\jre\bin\java.exe" -jar keyfilemaker.jar 

tools/export backbup 导出

modify/relocate 迁移地址

update/revision 退回到之前的版本

window/reset to default

目录(文件)-》右键-》ignore 忽略上传


使用:
1.在工作目录下 右键 git create repository here(创建一个仓库)
2.git commit-> master(将当前代码添加到本地仓库中)
3.create branch(创建分支)
4.switch/checkout 切换到分支(主干中代码自动会添加到分支中)
5.在分支中修改代码,并 commint
6.switch/checkout切换到主干 merge 可以选择分支 比如:test 就可以将代码合并了

0
0
分享到:
评论

相关推荐

    Jenkins subversion 插件和所有依赖说明:依赖安装顺序

    5. **执行Subversion操作**:在构建步骤中,选择"Checkout from Subversion",并指定要检出的分支或标签。 遵循正确的安装顺序和配置方法,Jenkins与Subversion的集成将能够顺利进行,实现自动化构建和测试,提高...

    SubVersion的应用详解

    它使得日常的SubVersion操作如提交、更新、比较、解决冲突等变得更加简单。 ### 7. 示例——`svn ch_student.ppt` `svn ch_student.ppt`可能是SubVersion教程或讲座的幻灯片,详细介绍了SubVersion的使用方法,...

    Subversion1.8.8 32位

    2. **右键菜单操作**:用户可以直接在文件或目录上右键点击,选择各种Subversion操作,如添加、提交、更新、解决冲突等。 3. **语言支持**:提供多种语言包,例如中文包,方便不同地区的用户使用。 4. **强大的比较...

    subversion客户端

    TortoiseSVN的特性还包括强大的图形界面,提供右键菜单选项,易于使用的diff工具,以及与Visual Studio、Office等其他应用程序的集成,使得Subversion操作更加便捷。 总的来说,Subversion客户端,尤其是...

    Version Control with Subversion

    二、Subversion操作流程 1. 安装Subversion客户端和服务器端软件。 2. 创建仓库:在服务器上指定位置初始化一个Subversion仓库。 3. 检出项目:开发者从仓库检出项目到本地工作拷贝。 4. 开发与修改:在工作拷贝中...

    subversion for SUSE Linux.rar

    学习基本的Subversion操作,如`svn add`(添加新文件到版本库)、`svn commit`(提交变更)、`svn update`(同步本地副本)和`svn diff`(查看差异)等,是使用Subversion的关键。 9. **高级功能**: 高级特性...

    使用SUBCLIPSE——针对ECLIPSE的SUBVERSION插件

    通过SUBCLIPSE,开发者可以在Eclipse中执行常见的Subversion操作,如检出、提交、更新、解决冲突、创建分支和标签等。SUBCLIPSE还提供了与Eclipse的其他视图和功能的深度集成,如与构建工具(如Maven或Gradle)的...

    Subversion 1.6.3 官方发布的命令行程序

    3. **命令行工具**:在Subversion 1.6.3中,提供的svn-win32-1.6.3是Windows平台下的命令行客户端,它包含了执行所有Subversion操作所需的基本命令,如`svn checkout`(检出)、`svn commit`(提交)、`svn update`...

    subversion 帮助文档

    12. 版本控制命令行工具(SVN Command Line):如svn.exe,提供一系列命令行工具供用户执行Subversion操作。 13. 服务器配置:Subversion可以运行在多种服务器上,如Apache HTTP Server或VisualSVN Server,服务器...

    mac-subversion1.9

    这些工具使用户能够执行基本的Subversion操作,如`svn checkout`(检出)、`svn commit`(提交)、`svn update`(更新)、`svn diff`(比较)等。 **Subversion的基本操作** 1. **检出(Checkout)**: 使用`svn ...

    Subversion使用简介

    - **集成**: TortoiseSVN将所有Subversion操作集成到了Windows资源管理器的右键菜单中,使得用户可以方便地进行版本控制操作,如检出(Checkout)、提交(Commit)、更新(Update)等。 - **状态显示**: 在资源管理...

    subversion

    - **插件功能**:插件提供图形化的Subversion操作,如检出、提交、更新、合并、解决冲突等,使得在IDE内部进行版本控制更加便捷。 - **设置与配置**:在MyEclipse中,用户可以配置Subversion的连接信息,如仓库URL...

    Python库 | infrae.subversion-1.4.3.tar.gz

    总之,infrae.subversion-1.4.3是Python开发者不可或缺的工具,它提供了强大的Subversion操作功能,让Python程序员能以更加灵活和高效的方式进行版本控制操作。通过深入理解和熟练掌握这个库,可以提升开发效率,...

    subVersion 1.7.22

    通过TortoiseSVN,用户可以轻松完成上述的所有SubVersion操作。 总的来说,SubVersion 1.7.22为Windows开发者提供了一个稳定且功能强大的版本控制工具,帮助他们更好地管理项目,提高开发效率,并确保代码的质量和...

    如何结合使用Subversion 和myeclipse

    4. **基本的Subversion操作** - **Checkout**:从SVN仓库中获取项目代码,创建本地工作副本。 - **Commit**:将本地更改提交到仓库,记录版本历史。 - **Update**:同步本地工作副本与仓库的最新版本。 - **...

    基于php与Web的subversion用户管理系统设计与实现

    3. 版本控制操作:用户应该能够通过Web界面执行常见的Subversion操作,如检出(Checkout)、提交(Commit)、更新(Update)、回滚(Revert)等。这些操作需要通过PHP调用SVN命令行工具或使用SVN的PHP扩展来实现。 ...

    PHP基于Web的subversion用户管理系统(源代码+论文).zip

    3. 仓库操作:通过Web界面,用户可以执行常见的Subversion操作,如检出、更新、提交、合并等,无需在命令行上输入复杂的SVN命令。 4. 日志查看:系统提供日志查看功能,展示仓库的历史变更记录,包括谁修改了哪些...

    如何快速建立Subversion服务器[借鉴].pdf

    TortoiseSVN是Windows Shell的扩展工具,提供图形化的Subversion操作,可以在其官方网站的Download页面找到最新稳定版,如TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。 安装过程相对直观,只需按照提示进行。...

Global site tag (gtag.js) - Google Analytics