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

标签 svn

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

我理解的步骤是:

  1. 创建一个包含三个子目录的项目目录:branches、tags 和 trunk。

  2. 将所有代码放在 trunk 下。

  3. 运行命令:

    svn import project_dir file:///repository_name/project -m "首次导入"

    其中project_dir包含三个子目录。

此后,我需要再次将代码 checkout 到另一个目录:

  1. svn checkout file:///repository_name/project/trunk new_project_dir

  2. 继续处理 new_project_dir。

在我看来,我们创建的project_dir只使用一次并忽略它。

我的问题是:

  1. 将代码 check out 到 new_project_dir 后,旧的 project_dir 是否仍然有用?或者只是简单地给SVN布局?

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

最佳答案

如果你愿意的话,你可以直接在SVN中创建布局;在你的问题中使用步骤 3) 会使事情变得更容易,因为它允许一次性完成所有操作。如果您遵循它,导入后就不需要该初始文件夹。事实上,您从中进行导入的文件夹并未置于版本控制之下,因此在那里所做的更改不会使其返回到存储库

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

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

关于svn - 在SVN中导入项目的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194948/

相关文章:

Eclipse SVN 不断询问 "Provide Authentication Information"

git - 从 Subversion 迁移到 git,克隆所有分支并通过 gitolite 推送?

svn - git svn clone --password pass 给出 “Unknown option: password”

svn - 使用中央存储库是否违背了 GIT 的目的?

svn - 始终排除在NetBeans的SVN中提交文件夹

svn - "svn: E195019: Redirect cycle detected for URL"的原因是什么?

apache - TortoiseSVN无法连接

java - 在java程序中获取SVN工作副本的当前修订号

Android Studio 使用 SVN 提交多个模块

本地删除文件后SVN提交错误