首页 > 解决方案 > 使现有存储库适应颠覆主干/分支结构

问题描述

我已经开始研究一个使用 Subversion 进行版本控制的现有项目。我以前只使用过 Git,所以我一直在学习各种 svn 教程。几乎所有的项目都使用主干/分支/标签文件结构。我也想做同样的事情,因为我既要编辑项目(结果推送到主控),​​又要自己做定制的事情(结果保持在本地)。但是,该项目没有这种格式;它.svn只是位于其根文件夹中。

如何为以这种方式组织的项目创建分支?我尝试svnadmin create使用 trunk/branch/tag 结构创建自己的存储库 (),然后将项目签出到主干中,但我不知道如何使我的根项目目录成为工作副本。(svn relocate要求我尝试重新定位到的位置本身就是一个工作副本。)即使使用svnadmin似乎也是错误的,因为这会创建一个存储库,其成员也是一个存储库,并且这样做并没有将 a 添加.svn到该根文件夹。

如果我想做什么不清楚,或者我应该包含关于文件结构、结帐过程等的任何有用的细节,请告诉我。我真的很难准确地描述我做了什么以及我考虑过什么。

编辑:我发现Subversion 分支没有规范的目录结构。这有一些相同的元素。但是,由于我不是管理员或项目负责人,我希望能够将远程更新拉到trunk. 在其文件夹中移动.svn似乎不正确。

标签: svn

解决方案


好的....我写的东西完全是对另一个问题的回应,对此感到抱歉....所以让我尝试获得:

就像我之前的回复一样,根本问题仍然是一样的:你想用 git 的心态来解决 svn ......这是不可能的。所以....

您如何创建将保持本地的分支和东西:您不能....使用 svn。与 git 不同,在 svn 上,所有东西都保存在一个仓库中(不同开发人员的工作副本除外)。所有分支、标签、修订等,它们都在那里,在一个地方......工作副本上保存的东西不多......在中央回购之外没有任何分支。

但是……诀窍是我用 svn说的。如果您使用 git,则可以利用 git 插件,该插件可用于在 git 和 svn 之间进行交叉。它将允许您与 svn repo 同步,就像它是一个 git 远程一样,您可以利用 git 的好处,如本地分支。

我并不是说处理它是微不足道的,但是通过一些练习,它可以让你使用比使用普通 svn 工作更多的灵活性。希望这足以让您能够实现自己的目标。

https://git-scm.com/docs/git-svn


推荐阅读