创建本地SVN分支

时间:2011-06-01 19:23:25

标签: svn version-control repository tortoisesvn

我正在开发SVN存储库,不想创建新的SVN分支。而不是那样,我想在我的机器上创建一个本地分支,这可以通过Git轻松完成。

但我目前正在使用SVN,需要从已修改的SVN版本中分支出来。从本质上讲,我想要关注:

  • svn_repo_version = 2259
  • working_copy = modified 2259
  • new_local_svn_branch =基于修改后的2259

最好的方法是什么?

2 个答案:

答案 0 :(得分:15)

Subversion是一个集中版本控制系统。集中式系统的一些优点是它迫使每个人都使用相同的代码库。你不能一次隐藏你的工作几个月,然后在重大发布前两天突然把它丢掉。糟糕的是,你不能真正拥有一个私人分支,也不会将它显示在存储库中。

没有理由不能创建自己的分支。事实上,我用它给我们的开发人员一个特殊的“私有”目录,他们可以在这里放置自己的代码,并进行私有分支。我有一个预提交脚本,只允许分支的所有者进行更改,虽然我已经设置了,所以任何人都可以看到它。

如果您担心您的私有分支可能会阻塞branches目录,请记住您可以在完成后从branches目录中删除分支。或者,您可以请求一个并行的private目录,您可以在其中放置您的内容。

如果你真的想创建一个真正的私有区域,你可以使用Subversion并签入代码而不会出现在主存储库中,你有两个我知道的选择:

  • SVK :这是一个在其后端使用Subversion的前端分布式版本控制系统。您可以创建自己的Subversion存储库,并在本地存储库和主存储库之间来回发布更改。

  • Git :Git附带了一个名为git-svn的工具,它允许您将数据从Subversion存储库中提取到本地Git存储库中。然后,您可以使用本地Git存储库进行分支,然后将更改后的内容推送到Subversion。甚至还有Tortoise的Git版本。

唯一需要注意的是,您必须使用这两种工具的命令行界面弄清楚。

答案 1 :(得分:2)

我担心你必须创建一个新的分支并继续将任何更改合并到其中。唯一的选择是简单地检查分支,不断更新,不提交(或在提交之前保持切换),直到完成为止。如果您需要处理原始分支/主干,则可以始终拥有两个工作副本。没有理想的,但这就是SVN的工作方式,鉴于当时的替代方案,这仍然非常好。

如果您通过我的IDE(Eclipse),那么我个人管理本地历史记录。