我有一个关于如何将项目导入 Subversion 存储库的问题。我通过谷歌找到了很多答案,但我无法理解其背后的逻辑。
我理解的步骤是:
创建一个包含三个子目录的项目目录:branches、tags 和 trunk。
将所有代码放在 trunk 下。
运行命令:
svn import project_dir file:///repository_name/project -m "首次导入"
其中project_dir包含三个子目录。
此后,我需要再次将代码 checkout 到另一个目录:
svn checkout file:///repository_name/project/trunk new_project_dir
继续处理 new_project_dir。
在我看来,我们创建的project_dir只使用一次并忽略它。
我的问题是:
将代码 check out 到 new_project_dir 后,旧的 project_dir 是否仍然有用?或者只是简单地给SVN布局?
我们是否需要自己处理另外两个子目录:分支和标签(例如, checkout 其中的内容)?或者它只是供 SVN 内部使用?如果是供SVN内部使用,为什么SVN不能自动为我们创建呢?
最佳答案
如果你愿意的话,你可以直接在SVN中创建布局;在你的问题中使用步骤 3) 会使事情变得更容易,因为它允许一次性完成所有操作。如果您遵循它,导入后就不需要该初始文件夹。事实上,您从中进行导入的文件夹并未置于版本控制之下,因此在那里所做的更改不会使其返回到存储库
至于布局:这是惯例,但 SVN 没有施加限制:你可以按照你想要的方式组织你的项目。传统的逻辑是:
trunk
表示最新的已知工作副本branches
有子文件夹,表示各种开发工作(可能由不同的人完成)——例如对于特定的错误修复。您对其进行处理,不受主干或其他分支更改的影响,然后在准备好时将更改合并到主干。- 标签是主干的标记版本,用于表示特定时间/阶段的主干状态 - 例如,这是为了轻松定位属于同一版本的内容,而不必记住多个版本号
关于svn - 在SVN中导入项目的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194948/