这是创建具有多个项目和供应商的SVN回购协议的正确步骤和组织方式吗?

这是创建具有多个项目和供应商的SVN回购协议的正确步骤和组织方式吗?,svn,repository,organization,Svn,Repository,Organization,我已经读了很多红豆软件SVN的书,以及这里的一些问题,但是我想确保在开始使用它之前,我第一次是以正确的方式一步一步地进行的。这是正确的吗 安装SVN 在/usr/local/SVN处创建SVN存储库。目录结构如下所示: -- conf -- db -- format -- hooks -- locks -- README.txt 通过命令行为存储库组织(包括项目和供应商)创建文件夹 将供应商代码签出到正确项目名称下的供应商文件夹中 以正确的项目名称将供应商代码导出到主干中(无需合并,因为我

我已经读了很多红豆软件SVN的书,以及这里的一些问题,但是我想确保在开始使用它之前,我第一次是以正确的方式一步一步地进行的。这是正确的吗

  • 安装SVN
  • 在/usr/local/SVN处创建SVN存储库。目录结构如下所示:

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

  • 将供应商代码签出到正确项目名称下的供应商文件夹中

  • 以正确的项目名称将供应商代码导出到主干中(无需合并,因为我还没有项目主干文件)
  • 在/svnroot/conf/passwd和/svnroot/conf/svnserve.conf中创建用户/权限
  • 确保svnserve正在运行,并且在我本地的SVN客户端(TortoiseSVN)上,签出我需要的项目的主干
  • 我不需要通过公共URL提供这一点,所以我没有为Apache进行配置。服务器不在我们的网络中,而是我们租用的专用CentOS机箱。谢谢你的想法和建议

    编辑:

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

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

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

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

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

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

    svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"
    

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

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

    3) 创建你的文件夹。您不需要(或想要)列表中不在
    projects/
    下面的部分。这些其他目录是SVN用来跟踪修订的,它们实际上不在存储库中。如果您在系统中的某个位置创建了一个包含
    project\u name/
    子树的目录层次结构,那么您可以根据需要在其上运行
    svn import
    ,每个项目一次(每次为目的地提供不同的名称)。这将创建目录结构

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

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


    如果您在第2步之后立即执行第6步和第7步,您可能会发现事情会变得更简单,因为这样您就可以使用
    svn://
    协议来访问剩余步骤的存储库,而不是像Davide建议的那样使用
    文件://
    ,它只在本地机器上工作。

    太棒了,这就是我为什么要问的原因,因为我知道我可能会错过一些东西:)
    svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"