学习如何使用 Subversion

Posted

技术标签:

【中文标题】学习如何使用 Subversion【英文标题】:Learning how to use Subversion 【发布时间】:2008-09-24 00:10:17 【问题描述】:

对于开发人员类型的人来说,这可能是一个非常愚蠢的新手问题,但我不知所措:(我一直在尝试 来保存我的代码历史,但我'我发现它很混乱。我阅读了 Subversion 附带的“书”,但我发现它并没有那么有用。我使用的是 Windows,我为它下载了 TortoiseSVN GUI。

我真正想知道的就是创建一个新项目,在其中放入一个文件(任何旧文件),然后更新该文件,这样我就可以看到它是如何工作的。我创建了一个“存储库”(在 svn_repository/test 中),如果有人能告诉我应该如何创建一个新文件/将一个文件放入其中,然后更新该文件,我会非常高兴: )知道我的运气,这将是“将文件拖放到目录中”这样简单的事情。抱歉问了这么愚蠢的问题!

另外,如果有人能告诉我如何让它与 Zend Studio 一起工作,那将是非常棒的点。谢谢!

【问题讨论】:

本书供其他观众svnbook.red-bean.com/en/1.4/index.html 【参考方案1】:

subversion repo 的推荐目录结构包含三个文件夹:“branches”、“tags”和“trunk”。因此,请在新文件夹中方便的地方创建这些文件夹。

右键单击这些文件夹的父文件夹,进入 TortoiseSVN 并选择 Import。输入您在此处创建的存储库的 url(即https://JUNK:8443/svn/Test/ 是我刚刚在本地计算机上创建的一个)。点击确定按钮,文件夹将被导入。

现在浏览到您希望存储库在本地计算机上的位置(我已转到 C:\workspace\test)。右键单击并转到 SVN Checkout。

现在,您想从存储库的主干中签出,因此更改存储库 URL 以反映这一点 (https://JUNK:8443/svn/Test/trunk/)。点击确定按钮。

在此目录中创建一个新文件。右键单击它并转到 TortoiseSVN,然后添加。点击确定,该文件现在被标记为 repo 的新文件。右键单击文件的父文件夹,您应该会看到 SVN Update 和 SVN Commit。 SVN 更新将使用存储库中的文件刷新本地文件。 SVN Commit 会将已更改的本地文件发送回存储库。

玩得开心:)

【讨论】:

【参考方案2】:

通常当我创建一个新项目时,我必须参考SVN Quickstart 指南。

它会带您完成创建新存储库、初始导入以及如何签出和签入文件(在命令行上)。

这本书很有帮助,但是在您使用版本控制一段时间并更好地理解这些概念之后,您会从中获得最大的价值。

(注意下面粗体字)

如果您使用的是 TortoiseSVN,则必须在启动时创建 存储库,然后导入 您的文件(如果有的话)。之后,您签出 项目 到一个工作文件夹,然后可以在工作文件夹中创建文件,然后添加 他们很容易。创建存储库后,您只能通过 Subversion 客户端通过它进行交互。

【讨论】:

【参考方案3】:

您要求一个单一文件的项目,所以就在这里。我对 Tortoise 不够熟悉,无法以这种方式运行您,但我将列出命令,希望您可以通过在文件资源管理器中右键单击来自己弄清楚如何执行每个步骤。实际上,您只需要做五件事:创建存储库、签出、“添加”文件以使其受版本控制、签入和登录。其余的将在稍后发布。

另外,以后有人可能会在不使用 Tortoise 的情况下搜索learing subversion,他们会找到这个问题。

# create an empty repository
svnadmin create myrepos

# check out a working copy of the empty repository
svn co file://full/path/to/myrepos workingcopy

# create an empty file in workingcopy (nothing to do with SVN - use 
# File > New > Text Document if you like)
cd workingcopy
touch mycode

# place it under version control, then tell the repository what you've done.
svn add mycode
svn ci -m "My first ever checkin comment! File created."

# Now we're developing. Go edit the file. Come back when you're done.

# Check it back in
svn ci -m "First version of project"

# Go edit it again

# Check it in again
svn ci -m "Made my project better"

# See what we've done so far
svn log mycode

就是这样。这是对单个文件进行版本控制的最低要求。现在重新阅读 SVN 书的开头,删除 myrepos,然后重新开始,因为您可能希望按照它告诉您的方式构建您的第一个适当的存储库。

【讨论】:

【参考方案4】:

看看这个question 它有一些关于从 svn 开始的好建议

【讨论】:

【参考方案5】:

我真的很喜欢将 AnkhSvn 与 Tortoise 结合使用。它适用于 Visual Studio。当我建立自己的存储库时,我使用了 VisualSVN,它需要 2 秒才能运行,并且不涉及任何 apache 或 LAMP 的东西。刚开箱即用。至于使用它,请尝试在线免费书籍以了解源代码控制的全部内容。然后访问一个网站,例如http://blog.taragana.com/index.php/archive/5-minutes-guide-to-subversion/,获取有关如何使用它的快速教程。

【讨论】:

【参考方案6】:

存储库是 Subversion 自己管理文件的地方 - 您不会直接访问存储库中的文件。如果您已经创建了一个存储库,那么下一步是从存储库到某个工作目录进行 Checkout。 (此工作目录不应是存储库的子目录。)

结帐后,将文件放入其中并右键单击以添加。从那时起,其他操作应该更有意义。

【讨论】:

【参考方案7】:

SVN Book 有一个名为“Subversion 快速入门指南”的附录,它可以快速介绍非常基础的内容。这是一个快速概述。

对于初始设置,我在 SVN 服务器上创建了一个临时文件夹,用于设置我的站点结构。这只是一个临时文件夹,我在完成初始设置后将其删除。我通常将其称为 C:\tmpRepository。然后我在那里为我的项目名称创建一个新文件夹。因此,假设您的项目名称是 test。我会创建 c:\tmpRepositories\test。在该文件夹中创建三个文件夹:分支、标签、主干。然后将您的项目文件复制到主干目录中。

现在打开命令提示符并键入以下内容以创建新存储库。 svnadmin 创建 c:\AppRepositories\test。我只是将所有源代码保存在 AppRepositories 文件夹中,然后使用新文件夹设置每个项目。

接下来,我们需要使用临时目录中的文件加载新存储库。因此,在命令提示符打开的情况下,我们运行: svn import c:\tmpRepositories\test file:///c:/AppRepositories/test -m "初始导入"

就是这样!然后在您的开发计算机上安装 TortoiseSVN。您需要在计算机上设置一个位置,用于存储文件的工作副本。我通常只是在 C: 驱动器上创建一个名为“WorkingCode”的文件夹。打开该文件夹,右键单击并选择 SVN Checkout。在存储库的 URL 下,输入 svn://servername/test。确保结帐目录正确。

砰!您现在应该在主干目录 (c:\workingcode\test\trunk) 中看到所有代码文件。

【讨论】:

【参考方案8】:

prags 写了一本关于使用 Subversion 的好书:http://www.pragprog.com/titles/svn2/pragmatic-version-control-using-subversion

【讨论】:

【参考方案9】:

我发现 TortoiseSVN 非常令人困惑,尤其是与 SVN Book 结合使用时。但话说回来,我不是一个非常注重 GUI 的人。

使用命令行 SVN 客户端通读本书,直到您了解基本概念。不要跳过任何章节!

然后你可以评估 GUI,如果你甚至需要一个。

【讨论】:

以上是关于学习如何使用 Subversion的主要内容,如果未能解决你的问题,请参考以下文章

从控制台使用 Subversion 时如何保存密码

如何结合使用 Subversion 和 Eclipse

SVN的使用——下载安装

如何在OSX上使用自制软件安装subversion

如何访问当前的 Subversion 内部版本号?

如何 git-svn 从 Subversion 存储库克隆最后 n 个修订?