有SVN工作副本的本地版本控制经验?

时间:2009-03-02 08:19:56

标签: svn version-control versioning

在我的工作地点,我们使用SVN和TortoiseSVN(Windows XP)作为客户端。我有一个很长的通勤时间,并在此期间离线工作 现在,我希望在本地进行某种“扩展撤消”;即我想对我的SVN工作副本进行本地版本控制,以便敢于重构。例如 完全切换到例如由于公司使用SVN,git,mercurial等不是一种选择。

我想知道的是,是否有人有任何版本化本地SVN工作副本的经验,可能是通过运行本地git或类似的? 有任何潜在的缺点吗? (可能搞乱.svn文件夹或类似文件)

7 个答案:

答案 0 :(得分:3)

我使用Git作为本地Subversion客户端进行工作,效果很好。当您执行Subversion存储库的git svn clone时,您获得的结帐没有隐藏的.svn目录,而是一个完整的Git存储库。使用本地轻量级分支来组织自己的开发的能力对我来说是一个杀手级的功能。

我一直使用的其他功能包括git stash,暂存提交和git add -p

答案 1 :(得分:1)

您可以使用svn export创建工作快照,然后创建自己的subversion存储库,并使用工作存储库中的快照作为初始签入。

然后,您可以进行更改并使用subversion(您的本地存储库副本),直到完成为止。当然,您可以从主工作存储库中进行一些定期合并,以确保您的内容是最新的。最后,当你的refectoring完成后,只需执行本地存储库的svn导出快照并将其合并回主工作存储库。

这有点粗糙,但这是管理此类工作流程的唯一方法。

如果您有足够的工作时间。您可以创建内容的分支并专门从工作存储库中的分支上工作,并在需要扩展的撤消功能时使用本地存储库方法。此时使用本地版本控制系统不会限制你进行颠覆,所以请选择。

答案 2 :(得分:1)

我通常喜欢这样:

  1. 获取SVN存储库作为工作副本。
  2. 在此工作副本中初始化Git存储库。
  3. Hack hack hack;
  4. 承诺我的Git回购。
  5. 从SVN公司更新。
  6. 解决冲突。
  7. 承诺向SVN公司提供完整的功能。

答案 3 :(得分:1)

您可能想尝试基于subversion的分散式VCS SVK。它可用于镜像笔记本电脑上的官方存储库,并将您的提交与官方主干同步。

答案 4 :(得分:0)

上次检查SVN的状态时,本地签入支持仍然是一项长期功能计划。另一方面,Git绝对是一个选项,git-svn。也就是说,如果你的架构是Unix,AFAIK,那么Windows平台上还不支持git-svn。

答案 5 :(得分:0)

没有什么能阻止运行本地SVN服务器。我正是这样使用它。

答案 6 :(得分:0)

Git是一个很好的解决方案(因为你可以很容易地制作和合并很多分支)但是:

  • 将修改重新导入svn时,首先要清理你在git下创建的许多中间分支;
  • git-svn不适用于Git的Windows发行版,因此如果您正在使用Windows,则可能需要使用Linux虚拟映像
  • 如果你可以让git-svn运行,请使用git2svn和svn2git ruby​​脚本,如this question
  • 中所述