Svn 在计算机之间共享源代码

Svn 在计算机之间共享源代码,svn,language-agnostic,version-control,Svn,Language Agnostic,Version Control,跨本地计算机共享源的最佳方式是什么 我正在使用svn存储库进行一个跨平台项目。我在一个平台(可能是osx)上执行签出,并进行更改。在签入之前,我必须在其他平台(xp、vista等)上测试修改后的代码。在机器之间手动复制文件或从网络驱动器运行任何东西都是一件痛苦的事情……我有什么更好的选择?为什么不继续使用svn。。在切换到其他平台之前,请签入并标记当前版本。在其他平台上对其进行检查和测试。如果失败,只需将其还原。您还可以在SVN中为自己创建一个分支。然后您可以签入您的分支,检查所有测试机器上的分

跨本地计算机共享源的最佳方式是什么


我正在使用svn存储库进行一个跨平台项目。我在一个平台(可能是osx)上执行签出,并进行更改。在签入之前,我必须在其他平台(xp、vista等)上测试修改后的代码。在机器之间手动复制文件或从网络驱动器运行任何东西都是一件痛苦的事情……我有什么更好的选择?

为什么不继续使用svn。。在切换到其他平台之前,请签入并标记当前版本。在其他平台上对其进行检查和测试。如果失败,只需将其还原。

您还可以在SVN中为自己创建一个分支。然后您可以签入您的分支,检查所有测试机器上的分支代码,当您满意时,使用SVN的分支合并工具将保存在分支中的所有更改合并回主干。

研究独立于平台的网络磁盘装载–类似于sshfs。检查一台计算机上的源,然后通过网络将该位置装载到另一台计算机上


或者,在同一台计算机上的虚拟机上运行一个操作系统,并以这种方式共享文件。像VirtualBox这样的虚拟机以类似的方式通过网络挂载让您可以访问主机的文件系统。

您可以尝试在存储库中创建一个分支,只用于您自己的更改。对分支进行更改,提交更改,然后在其他平台上签出分支并对其进行测试。如果一切正常,将分支与主干合并

我认为最好也是最容易管理的(一旦启动并运行,就是有一个自动部署到测试环境的开发分支,然后当您高兴时,可以合并到一个发布分支。这需要一段时间来设置,但从长远来看会为您节省大量时间

它还允许您在处理其他项目时进行测试


如果您不想遵循这一点,那么一个简单的shell脚本就足够了,您需要在部署时运行它。

我认为您在这里犯了一个基本错误。SVN(以及其他适当的VC系统)的规则是“尽早并经常签入,就像投票一样。”正如@Koray所说,签入代码,从其他机器上签出并重新生成。否则,您将冒着在其他机器上可能发生的更改无法恢复的风险,或者需要合并不同的更改集


诀窍是为最新的测试版本创建一个标记,这样,如果遇到问题,您可以恢复到特定的快照。

我将使用诸如Ant之类的工具创建一个构建脚本,通过网络共享将签出的源复制到我的一组不同的测试机器上。然后,我将在每台机器上进行测试,但只进行更改在我签出的源代码上-所有更改都使用构建脚本分发到我的测试机器


一旦我满意了,我会从我正在构建的同一台机器上提交我的更改。

您可以尝试Git或其他DVC,它允许您在每次共享内容时不包括中央服务器


Git允许您推/拉(也称为提交/更新)与SVN服务器之间的通信,但也给了您更多的灵活性。

基本问题是在签入之前进行测试。这正是问题所在。签入代码然后进行测试没有什么错。使用源代码管理的目的是允许在某些操作不起作用时回滚

我还从你的帖子中假设,你单独处理项目,因此问题更小。如果你在团队中工作,那么创建一个单独的SVN分支来进行开发,然后在测试和开发完成后与主干合并


另一种选择是使用虚拟机。

这正是Ryan所说的。不过,我假设其他人正在当前分支中工作,这可能会导致竞争条件-有人可能会尝试在其未经测试的代码上签入更新。@Jonathan,请创建另一个分支。