将本地 Subversion 更改传输到另一台计算机的最简单的方法是什么?

StackOverflow https://stackoverflow.com/questions/573849

  •  05-09-2019
  •  | 
  •  

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

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

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

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

我想最后一个选项是为此功能分叉一个新分支并进入“签入/更新”循环。然而,这些在历史记录中显示,它们造成了污染。

还有更好的想法吗?或者我缺少什么?

有帮助吗?

解决方案

分支是清洁溶液。并具有给你一个备份,当你在这个巨大的变化工作的额外优势。更不用说,的机器之间的未来变化容易同步。

不过,你也许可以逃脱刚刚拉上了整个工作目录,并在另一台机器上的某个地方倾倒。

其他提示

你有没有尝试创建一个新的分支,并使用 SVN切换 。将你传送到仓库的不同部分,如果你从你最初的工作版本分支保持您的更改。

至于替代方法,您可以添加 胃肠道 混合。GIT 的分布式源代码控制模型将允许您在台式机和笔记本电脑之间来回推送变更集。由于 GIT 在本地文件系统上管理其变更集信息,因此您在任一方所做的提交都不会出现在 TRAC 系统正在监视的流中。

因此,您基本上可以“通过颠覆离线”并使用 GIT 提交完成您的工作。完成后,将整个工具包和 kaboodle 签入您的 subversion 主干。

Subversion 中的功能分支是轻量级的,非常适合隔离此类特定功能的工作。如果您使用的是 Subversion 1.5 或更高版本,那么整个同步和合并过程比使用 1.4 容易得多。

我会创建用于此目的的临时分支。通过这种方式,你只使用SVN工具,在您的处置,你是不是污染元元或复制文物。

此外,它看起来像你在你的代码以隔开间隔检查和具有分支也可以防止数据丢失的情况下,硬盘驱动器崩溃。

不是最后的选择,第一:你应该创建一个功能分支已经很久以前,如果真的有这么多的变化

您可以通过从工作拷贝做一个svn拷贝到分支目录服务器上,这样你就不会需要一个“登入/更新的循环”这样做了,就的一个的签,只是一个更新/开关,真的。

像     SVN复制MyWorkingCopy的svn:// theserver /项目/分支机构/功能/我的特征分支

如果你只需要在桌面上的翻版,我发现,Live同步完全适用于该场景。我把它设置为复制我的笔记本电脑和两款台式机,这给了我完全相同的状态在三台机器我结账的文件夹。而这一切都连续地发生在背景中。

或者你可以去一个分支,并确保你不要忘记你移动到桌面之前提交在笔记本电脑上的任何变化。 : - )

编辑:在效应初探到注释 - 是的,有可能惹上麻烦,如果你开始编辑文件,而两个机都在同步的过程。可能发生的最糟糕的是松散的机器之一进行一些编辑。在实践中,要做到这一点的可能性是相当小的。

那么,大多数人会认为,如果你的“变更集是相当大的”你一定要检查的变化(在必要的一个分支)!

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

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

我没有任何使用 SVK 的实践经验。但我认为这符合你的场景。这篇博文更详细地描述了它 http://www.bieberlabs.com/archives/2004/11/30/using-svk/

我认为 SVK 的 Windows 版本可用(SVKWin32)然后 TortoiseSVN 可以使用存储库的本地镜像进行更新/提交。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top