版本跟踪与subversion(svn)为初学者

您是否曾经想过在一个项目上工作,该项目能够跟踪更改并恢复这些更改?如何使用流行的版本跟踪系统Subversion(a.k.a SVN)解释如何使用。...

版本跟踪与subversion(svn)为初学者

您是否曾经想过在一个项目上工作,该项目能够跟踪更改并恢复这些更改?如何使用流行的版本跟踪系统Subversion(a.k.a SVN)解释如何使用。

图像的清晰模糊

普雷洛格

本指南的目的是让您能够在一般情况下使用subversion客户端,如果您有,还可以在您的*DD-WRT路由器上使用。本指南绝不是颠覆的权威指南,很多信息都可以在颠覆红皮书上找到。本指南仅为您提供最基本问题的速记答案。

概述

对于使用版本控制系统的软件项目,您希望能够“签出”最新代码的原因可能有很多。这样做可以让您从最新的尚未发布的更改中获益,帮助您进行测试甚至开发。在本指南中,我们将介绍一些基本的SVN术语,展示如何在Linux、Windows上安装SVN客户机,如果您有一个支持OPKG的DD-WRT路由器。我们还包括一个项目的例子,你可以签出和使用的路由器说。

什么是颠覆(subversion)?

Subversion并不是现存的唯一版本控制系统,其他的版本控制系统包括Git(由Linux内核创始人Linus Torvalds创建)、Mercurial和PerForce等等。也就是说,它是一个免费的,它的成熟和广泛使用的世界各地。

走出颠覆“红皮书”:

Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versi*** of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”

注意:这本书是关于subversion的知识的终极集合,建议您在所有与subversion相关的主题上参考它。

什么是版本控制(versioning)?

版本控制是保存项目在某个时间点的状态的过程。这类过程通常用于管理软件开发,以便工作可以继续改进项目或添加功能,同时能够跟踪从上一次总体“保存”点更改的内容。更详细地说,这种程序对于一个人来说是有用的,但是对于一组在同一个项目上工作的人来说更有用。这是因为,通常,当作为一个团队来处理一个项目时,会有一个责任分配,不同的人会改变项目的不同方面。如果没有版本控制机制,就很难让每个人都对其他人的最新工作更改保持同步。

术语

存储库存储库是保存所有不同位置的所有数据的位置。在subversion世界中,从客户机的角度来看,是服务器保存了项目的数据库。此数据库包含作为项目一部分的所有文件及其所有以前版本。

修订

创建存储库时,它的修订号为零(0)。每次执行提交时,此数字将递增一(1)。版本号是存储库的全局版本号。也就是说,存储库中的各个文件没有单独的修订号,即使该文件中针对该特定提交没有任何更改。

工作副本

工作副本是特定版本的本地副本(或“签出”)。通常,签出时的这个版本是“最新”版本(也称为“head”),但可以请求以前的版本。用户可以对本地副本执行任何他/她想要的操作,并且知道,最坏的情况下,他们可以再次签出代码。此外,此副本是“私有的”。这是因为,除非您更新或提交您的副本,否则您不会看到其他人的更改,他们也不会看到您的更改。

更新和冲突解决

可以更新本地工作副本。也就是说,如果您“签出”了某个版本,并且在工作时,存储库上的版本已更新,则可以将工作副本更新为最新版本。事实上,服务器将阻止您在更新到与存储库匹配的最新版本之前提交更改。这样做是为了迫使您在本地解决冲突,然后才考虑向存储库提交更改。

合并

合并是指将更改后的代码混合到一个版本中的过程。这也可能需要解决冲突。

提交

提交是将您对本地副本所做的更改合并回存储库的过程。这是流程中最危险的部分,因为您所做的更改可能会影响使用同一存储库的其他人。这就是为什么这通常是在经过一些考虑之后,在团队的一致意见下,在您解决了任何合并冲突之后进行的。

工作流

使用subversion时,从用户的角度来看,最基本的工作流是:

1签出现有代码(通常是“head”)。2。进行修改、添加文件和一般代码的开发。更新到最新版本,以确保本地副本与存储库上的更新同步。4。必要时进行局部合并并解决冲突。将合并的更改提交到存储库中。转到步骤2。

我们开始吧

安装客户端

为了能够使用subversion,您需要在您的计算机上安装客户端。

在Linux上

你只需要安装软件包。在Ubuntu/Mint上,这将通过以下方式完成:

sudo aptitude install subversion

在DD-WRT上

如果您遵循了“How To Install Additional Software On Your Home Router(DD-WRT)”,只需发出以下命令即可安装svn客户端:

opkg update; opkg install subversion-client

在Windows上

尽管我们这些极客用户可能会开始忘记GUI有时甚至存在,但并不是每个人都有。如果您想使用windows客户机连接到SVN存储库,到目前为止最流行的是“Tortoise”。要使用它,只需下载程序并以常规的“下一步,下一步,完成”方式安装。

创建“存储库”

虽然在本指南中我们不会详细介绍如何设置subversion服务器,但Google替代方案对于新手用户来说并不是一个坏的开始。要创建Google存储库,请执行以下操作:

  • 前往谷歌代码托管网站和“创建”一个新的项目。
  • In the next page, fill in the required fields and select the type of “version control system” to be subversion. 007Ys3FFgy1gpgy3o12xzj30i20hr40j Note: You may want to glance over what is the difference between the licenses Google offer, before you select one for the project.
  • 单击“创建项目”。

“Checkout” your working copy

Once your project has been created, you Should be able to find the instructi*** on how to access it in the “Source” tab. 版本跟踪与subversion(svn)为初学者

Google代码的好处是它将为您的项目启用匿名只读版本。如果您不想处理创建自己项目的麻烦,您可以匿名签出此作者的存储库。

关于hotfortech项目的一个注意事项是:这个项目是为了包装已经添加到DD-WRT中的关于如何极客(我个人使用)的特性,以及一些个人的调整。虽然这个项目与howtogeek上发表的文章结合使用,但它仍然是我的私人项目。也就是说,它非常适合我的Buffalo路由器(AR71xx架构),我个人的突发奇想,而且很容易偶尔出现borkage。

在Linux/DD-WRT上

创建要在其中工作的目录,例如在DD-WRT上,可以是:

mkdir -p /jffs/svn; cd /jffs/svn

Linux上的full命令由SVN命令本身、“checkout”指令、存储库地址和要签出的目录组成。创建一个空目录并执行以下命令:

svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

请注意,在上面的示例中,只读版本正在签出。如果选择创建自己的存储库,则需要使用httpS链接。

在Windows上

Because tortoise is a shell extension, you will need to use the Windows file explorer’s context menu (right-click) to use it. In fact, if you try to invoke it from the start menu, you will get: 版本跟踪与subversion(svn)为初学者

  • 创建一个空目录。
  • 在其中单击鼠标右键以打开关联菜单。
  • 选择“SVN Checkout”:
  • 将项目链接(如果有)复制并粘贴到“URL”文本框中:
  • 根据项目的大小,这可能需要一段时间,但当“签出”完成后,您应该会看到以下内容:
  • 你可以开始发展了。

“更新”&“合并”您的工作副本如果您与同事或您自己正在从多个位置(即笔记本电脑、台式机甚至路由器)更新代码,则必须在提交最新更改之前更新工作副本。

在Linux/DD-WRT上

在这些POSIX系统上执行此操作的命令很简单:

svn up

在Windows上

  • 右击工作目录,选择“SVN更新”:
  • 如果您遇到冲突,请尝试按照屏幕上的说明进行操作,并根据您的判断来处理冲突。

“提交”您的更改就是这样,您应该没有冲突,并准备好用您的改变。改变这里需要注意的一点是,向提交中添加“日志”消息是一种常见的做法,这样可以很容易地回忆起为什么要进行更改。事实上,Google的存储库将此作为提交的强制性前提条件。

在Linux/DD-WRT上

这是我对hotfortech项目所做的承诺的一个例子,该项目将其升级到版本19:

svn commit -m “updated to reflect new ant-ads pack link”

在Windows上

  • 在工作目录中单击鼠标右键,选择“SVN Commit”:
  • 您将看到一个窗口,该窗口允许您记录日志消息:
  • 点击OK,当提示输入密码时,输入Google生成的密码。
  • 如果提交成功,您应该看到如下内容:
  • 就是这样,你应该能够像老板一样承诺。

最后的评论这应该足以让你开始。建议您阅读SVN参考书,以便更深入、更好地掌握SVN的所有用法、选项和注意事项。此外,我们(再次)提醒您,subversion不是唯一的版本控制系统,GIT(由Linux内核创始人Linus Torvalds创建)近年来似乎越来越流行。

如果你选择跑步-配置.sh从路由器上的hotfortech项目中,你会发现它目前将为你安装:反广告包、Opkg geek init脚本,以及完整的GNU“ls”、“less”、“BASH”等等。

/jffs/svn/hotfortech-dd-wrt/running-conf.sh

更多功能正在等待并将在将来添加。


系统管理员将通过编码来摆脱编码。

  • 发表于 2021-04-12 14:29
  • 阅读 ( 173 )
  • 分类:互联网

你可能感兴趣的文章

如何使用git分支来构造编程项目

...。最重要的是,它涉及到反复试验,尤其是如果你是一个初学者(像我一样)。 ...

  • 发布于 2021-03-12 01:24
  • 阅读 ( 292 )

如何在android和termux上使用linux命令行

... 源代码控制系统git和Subversion也可以使用,它们的用途不仅仅是开发。如果您喜欢控制自己的数据,源代码管理允许您将文件存放在任何需要的地方。您还可以控制何时向其他设备发送更新,...

  • 发布于 2021-03-18 07:26
  • 阅读 ( 373 )

为编写者和开发人员提供的5个最佳mac文件比较工具

...web开发人员和程序员通常需要比较同一代码或文本的不同版本,以跟踪更改。但是手动计算文件中的更改并不是一项简单的任务。随着文档变得越来越长、越来越复杂,您更有可能出现比较错误并浪费时间。 ...

  • 发布于 2021-03-18 17:33
  • 阅读 ( 205 )

托管项目源代码的7个最佳github替代方案

... Beanstalk支持Subversion和Git,是一个多功能的平台。而且,因为您可以在浏览器中直接创建分支和编辑,这对正在运行的开发人员很有好处。 ...

  • 发布于 2021-03-24 13:26
  • 阅读 ( 268 )

什么东西碎了?sha-1碰撞攻击,解释道

...——确保所有内容都是相同的。Git是一种用于开源代码的版本控制和分发软件,它使用SHA-1散列就是出于这个原因。 这是大量的技术信息,但简单地说:散列和加密不是一回事,因为它用于识别文件是否已更改。 这项技术对我...

  • 发布于 2021-04-08 06:40
  • 阅读 ( 139 )

github是什么,它的用途是什么?

...下去。 github中的“git” 相关:版本跟踪与颠覆(SVN)的初学者 要理解GitHub,首先必须了解Git。Git是一个开源版本控制系统,由Linux的创建者linustorvalds启动。Git类似于其他版本控制系统Subversion、CVS和Mercurial等。 所以,Git是一个...

  • 发布于 2021-04-09 04:55
  • 阅读 ( 163 )

使用dd wrt mod kit从家庭路由器释放更多能量

...主题,继续阅读。请记住,这本指南是一个多一点技术,初学者应该小心时,修改他们的路由器。 概述 本指南将提供如何使用“固件修改工具包”创建您自己的DD-WRT固件(包括修改和添加的固件)的详细说明。 固件修改工具...

  • 发布于 2021-04-13 00:19
  • 阅读 ( 207 )

在ubuntu上安装subversion with web access

本文将介绍如何使用apache模块安装subversion,以便可以从公共网络上的其他系统轻松访问它。如果您想要更安全的svn服务器,可以使用svnserve+ssh,这在本文中没有介绍。 要安装subversion,请打开终端并运行以下命令: sudo apt-get ins...

  • 发布于 2021-04-14 15:15
  • 阅读 ( 130 )

吉特(git)和水银的(mercurial)的区别

...,行业内的许多开发人员都在使用它,而Mercurial很简单,初学者和非技术社区都在使用它。 GIT和Mercurial是根据gnugplv2条款分发的两个版本控制系统。版本控制系统是一种允许开发人员协调工作和维护任务历史的软件。尽管对于小...

  • 发布于 2021-07-01 17:53
  • 阅读 ( 221 )

svn公司(svn)和乌龟(tortoisesvn)的区别

...控制或版本控制。有各种版本控制系统。简而言之,SVN(Subversion)就是其中之一,而TortoiseSVN是Subversion客户机。 覆盖的关键领域 1.什么是SVN-定义,功能2.什么是TortoiseSVN-定义,功能3.SVN和TortoiseSVN的区别-主要区别比较 关键术语 ...

  • 发布于 2021-07-01 21:22
  • 阅读 ( 197 )
lyehduuucx
lyehduuucx

0 篇文章

相关推荐