在SVN中导入项目的正确方法?

在SVN中导入项目的正确方法?,svn,Svn,我有一个关于如何将项目导入Subversion存储库的问题。我通过谷歌搜索找到了很多答案,但我无法理解背后的逻辑 我理解的步骤是: 创建一个包含三个子目录的项目目录:分支、标记和主干 将所有代码放在行李箱下 运行以下命令: svn导入项目\u目录file:///repository_name/project -m“首次导入” 其中project_dir包含三个子目录 在此之后,我需要再次将代码签出到另一个目录: svn签出file:///repository_name/project/trunk

我有一个关于如何将项目导入Subversion存储库的问题。我通过谷歌搜索找到了很多答案,但我无法理解背后的逻辑

我理解的步骤是:

  • 创建一个包含三个子目录的项目目录:分支、标记和主干

  • 将所有代码放在行李箱下

  • 运行以下命令:

    svn导入项目\u目录file:///repository_name/project -m“首次导入”

    其中project_dir包含三个子目录

  • 在此之后,我需要再次将代码签出到另一个目录:

  • svn签出file:///repository_name/project/trunk 新建项目目录

  • 继续处理新的项目

  • 在我看来,我们创建项目_dir只供使用一次,而忽略它

    我的问题是:

  • 在我将代码签出到新的项目目录中之后,旧的项目目录仍然有用吗?或者仅仅是为了给SVN一个布局

  • 我们是否需要自己处理另外两个子目录:分支和标记(例如,签出其中的内容)?或者只是供SVN内部使用?如果是供SVN内部使用,为什么SVN不能为我们自动创建它


  • 旧项目_dir只是给SVN布局。 代码被复制到存储库中,但SVN只读取该目录和文件,而不接触它们。因此,它不是“工作副本”

    在您签出到新位置后,它包含代码和svn元数据,这使神奇的事情发生


    看来主干、标记和分支只是一种命名约定。SVN不需要它们,您将来可能需要它们。如果不计划分支或标记,可以直接将文件导入根目录。

    如果需要,可以直接在SVN中创建布局;在你的问题中使用步骤3)会更容易,因为它允许一次完成所有任务。如果遵循此操作,则导入后不需要初始文件夹。事实上,从中进行导入的文件夹不受版本控制,因此在其中所做的更改不会使其返回到存储库

    至于布局:通常这样做,但SVN没有施加限制:您可以按照您想要的方式组织项目。传统的逻辑是:

    • trunk
      表示已知的最新工作副本
    • 分支机构
      有子文件夹,表示各种开发工作(可能由不同的人进行)——例如,针对特定的bug修复。您可以在不受主干或其他分支更改影响的情况下处理它,然后在准备就绪时将更改合并到主干
    • 标记是主干的标记版本,用于表示主干在特定时间/阶段的状态——例如,这允许轻松定位属于同一版本的内容,而不必记住多个版本号

    从SVN的角度来看,它们都只是目录。可以将分支合并到主干中,也可以将主干合并到分支中,SVN不在乎。你必须注意并清楚地命名目录,以便你理解。谢谢。我不能使用同一个文件夹,但总是要创建另一个文件夹,这很烦人