代码之家  ›  专栏  ›  技术社区  ›  Sedat Kapanoglu johnnywhoop

将本地Subversion更改转移到另一台机器上最不痛苦的方式是什么?

  •  3
  • Sedat Kapanoglu johnnywhoop  · 技术社区  · 15 年前

    我正在修改我的笔记本电脑。它还没有准备好提交到存储库,但我想继续在我的桌面上工作。我的更改集很大,不仅包含修改,还包含新文件和已删除文件。

    我可以将完整的本地工作副本复制到另一台机器上,并将更改落实到位。然而,这听起来像是一个肮脏的解决方案(因为我在另一台机器上污染元数据),而且我也在不必要地传输构建工件。

    我试着用TortoiseSVN传输.patch文件,但它总是抱怨“补丁属于旧版本”(不是真的,你为什么在意?)或“行不匹配”(是的,它们不匹配,因为我更改了它们)。我根本不喜欢“连续错误弹出窗口”的体验。

    我不想安装Cygwin,所以命令行补丁是不可能的。

    我猜最后一个选项是为这个特性分叉一个新的分支,并进入“签入/更新”循环。然而,这些在trac历史记录中显示,在那里造成了污染。

    还有更好的主意吗?或者我遗漏了什么?

    8 回复  |  直到 15 年前
        1
  •  7
  •   ng.    15 年前

    您是否尝试过创建一个新分支并使用 svn switch . 如果您从最初的工作修订版进行分支,它会将您转移到存储库的不同部分,并维护您的更改。

        2
  •  6
  •   Steve Scheffler    15 年前

    GIT 混合。GIT的分布式源代码控制模型允许您在台式机和笔记本电脑之间来回推送变更集。而且,由于GIT在本地文件系统上管理其变更集信息,因此您在任何一方进行的提交都不会出现在您的TRAC系统监视的流中。

        3
  •  5
  •   Shog9    15 年前

    分支是干净的解决方案。还有一个额外的优势,就是在您进行这一巨大变化的过程中为您提供备份。更不用说,机器之间未来更改的轻松同步。

    但是,您可能只需要压缩整个工作目录并将其转储到另一台机器上的某个位置就可以了。

        4
  •  1
  •   David Segonds    15 年前

    此外,看起来您是在间隔时间签入代码,并且有一个分支还可以防止硬盘崩溃时数据丢失。

        5
  •  1
  •   gimpf    15 年前

    您仍然可以通过将svn从工作副本复制到服务器上的分支目录来实现这一点,所以您不需要“签入/更新循环”,只需要 办理登机手续

    喜欢 svn复制我的工作复制svn://theserver/project/branches/features/my-feature-branch

        6
  •  1
  •   Franci Penov    15 年前

    如果您的桌面上只需要一个副本,我发现Live Sync非常适合这种情况。我将它设置为在笔记本电脑和两台台式机上复制我的结帐文件夹,这使我在三台机器上的状态完全相同。这一切都是在后台不断发生的。

    或者,您也可以选择分支机构,确保在移动到桌面之前不会忘记提交笔记本电脑上的任何更改。:-)

    编辑: 回应评论-是的,如果您在两台机器同步的过程中开始编辑文件,可能会遇到麻烦。可能发生的最坏情况是在其中一台机器上丢失一些编辑。实际上,发生这种情况的可能性很小。

        7
  •  0
  •   danielschemmel    15 年前

        8
  •  0
  •   Nitin Bhide    15 年前

    你可以试试 SVK . 从博客文章和SVK站点可以看出,典型的SVK使用场景是

    • 然后在机器上创建分支,
    • 在这些分支机构的本地工作,以及
    • 完成后,将它们合并回镜像主干中,
    • 最后一步将透明地更新远程存储库。

    http://www.bieberlabs.com/archives/2004/11/30/using-svk/

    SVKWin32 )然后,TortoiseSVN可以使用存储库的本地镜像进行更新/提交。