3

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

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

4

7 回答 7

3

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

我一直使用的其他功能是git stash、分阶段提交和git add -p.

于 2009-03-02T08:27:00.287 回答
1

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

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

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

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

于 2009-03-02T08:28:41.047 回答
1

我通常这样做:

  1. 获取 SVN 存储库作为工作副本。
  2. 在此工作副本中初始化 Git 存储库。
  3. 骇客骇客;
  4. 提交到我的 Git 存储库。
  5. 来自公司 SVN 的更新。
  6. 解决冲突。
  7. 向公司 SVN repo 提交完整的功能。
于 2009-03-02T09:02:14.477 回答
1

您可能想尝试SVK,它是一个基于颠覆的去中心化 VCS。它可用于镜像笔记本电脑上的官方存储库,并将您的提交与官方主干同步。

于 2009-03-02T09:59:03.340 回答
0

上次查看 SVN 的状态时,本地签入支持仍然是一个长期的功能计划。另一方面,使用 git-svn,Git 绝对是一种选择。也就是说,如果您的架构是 Unix,AFAIK,Windows 平台上尚不支持 git-svn。

于 2009-03-02T08:28:07.630 回答
0

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

于 2009-03-02T08:28:52.730 回答
0

Git 将是一个很好的解决方案(因为您可以非常轻松地创建和合并许多分支)但是:

  • 将修改重新导入 svn 时,应首先清理在 git 下创建的许多中间分支;
  • git-svn 不适用于 Git 的 Windows 发行版,因此如果您在 Windows 上工作,您可能需要使用 Linux 虚拟映像
  • 如果您可以使 git-svn 运行,请使用 git2svn et svn2git ruby​​ 脚本,如本问题所述
于 2009-03-02T08:29:07.410 回答