4

我已经阅读了相当多的 Red Bean Software SVN Book,以及一些关于 SO 的问题,但我想确保我第一次以正确的方式一步一步地解决这个问题我开始使用它。它是否正确?

  1. 安装SVN。
  2. 在 /usr/local/svn 创建 SVN 存储库。目录结构如下所示:

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- README.txt
    
  3. 通过命令行为存储库组织(包括项目和供应商)创建文件夹。

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- projects
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
    -- README.txt
    
  4. 将供应商代码签出到正确项目名称下的供应商文件夹中。

  5. 以正确的项目名称将供应商代码导出到主干(无需合并,因为我还没有项目主干文件)。
  6. 在 /svnroot/conf/passwd 和 /svnroot/conf/svnserve.conf 中创建用户/权限。
  7. 确保 svnserve 正在运行,并在我的本地 SVN 客户端 (TortoiseSVN) 上检查我需要的项目的主干。

我不需要通过公共 URL 提供此服务,因此我没有为 Apache 进行配置。服务器不在我们的网络中,而是我们租用的专用 CentOS 盒子。感谢您的任何想法和建议。

编辑:

我想我很困惑,因为我没有代码或项目开始,所以我从供应商的代码开始。我是否需要在服务器上的某处创建一个目录结构,其中包括我的 project_name w/ vendor、trunk、branches 和 tags 子文件夹,将其导入我的 repo,然后将供应商的代码导入 vendor 文件夹?我的想法是我可以从供应商那里获得更新,然后将这些更新与我对我的主干所做的任何更改合并。

4

2 回答 2

6

通过命令行为存储库组织(包括项目和供应商)创建文件夹。

您的意思是通过在 subversion intallation 目录中创建目录来创建存储库结构吗?这是非常错误的。

您必须通过svn mkdir命令而不是通过文件系统创建必要的文件夹。

/usr/local/svn您拥有 Subversion 存储库的物理实现中,您必须只能通过客户端访问它,并且永远不要“手动”触摸它。

例如,使用 file:// URL 方案

svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"
于 2008-11-03T19:17:06.207 回答
5

你似乎有正确的想法,但你的术语有点错误。这真的会让 SVN 的人感到困惑,因为您使用的词在 SVN 的上下文中具有特定含义。扩展Davide所说的:

2)通过执行类似的操作来创建您的存储库svnadmin create /usr/local/svn

3)创建你的文件夹。您不需要(或不想要)列表中不在下面的部分projects/。这些其他目录是 SVN 用来跟踪修订的,它们实际上并不在存储库中。如果您在系统的某处创建包含project_name/子树的目录层次结构,则可以svn import在其上运行任意多次,每个项目一次(每次为目标指定不同的名称)。这将创建您的目录结构。

4)我认为您的意思不是“结帐”,而是“导入”或“签入”(在SVN用语中通常称为“提交”,但可以理解“签入”)。导入会将供应商文件添加到存储库中。Checkout 的意思是“创建这个版本化目录的本地副本供我使用”,称为工作副本。团队中的每个开发人员都应该有自己的工作副本。在开发人员对其工作副本进行更改后,他们svn commit会将更改发送到存储库。团队中的其他开发人员将运行svn update以将这些更改从存储库中获取到他们自己的工作副本中。

5)我最近没看SVN的书,但我认为它指导你将供应商分支的版本复制到主干,而不是导出它。以 SVN 术语导出意味着取消目录树的版本,这显然不是您想要的。

如果您在第 2 步之后立即执行第 6 步和第 7 步,您可能会发现事情更容易,因为那时您可以使用svn://协议访问您的存储库以完成剩余的步骤,而不是file://Davide 建议的那样,后者仅适用于本地计算机。

于 2008-11-03T19:50:56.887 回答