在笔记本电脑上离线旅行Subversion存储库,然后在返回时与SVN服务器同步

时间:2011-08-18 18:21:06

标签: svn

我将在没有网络访问的情况下旅行(即无法访问我们数据中心的subversion服务器)。我已将最新版本的subversion存储库签出到我的笔记本电脑中,当我不在办公室时,我将处理该项目。我想:

  1. 在我旅行的时候,有一个subversion服务器来检查内容,恢复,有历史等。显然,这需要安装在笔记本电脑上。如有必要,我可以备份svn repos。

  2. 一旦我再次访问,请检查所有更改(以及希望历史记录)。

  3. 我很高兴在笔记本电脑上使用任何技术(svn,git,hg),但最终所有服务器都是颠覆性的。

    我已经阅读了其他一些(较旧的)帖子,包括以下内容,但不清楚历史/所有单个提交/版本是否可以添加回数据中心的服务器:

    source control when away from office

    Subversion Proxy for working offline?

    http://www.aidanf.net/archive/blog/2007/12/10/using-git-offline-commits-subversion-repository

3 个答案:

答案 0 :(得分:3)

我会选择GIT-SVN。您可以从远程SVN存储库同步代码,在一个或多个分支中本地使用它们,在分支之间本地合并,当您有连接时,您可以将选定的提交(按照您的需求)推送到SVN存储库。

缺点是你必须学习git,并且你必须选择要同步的内容,同步不是自动的。另一方面,你有一个本地的灵活性和力量,单凭svn无法获得。

答案 1 :(得分:0)

我认为您想要实现的目标是不可能的,因为如果许多人拥有存储库的本地副本,则每个副本都将根据自己的修改而发展。补丁/提交历史记录将有所不同。历史不一定是可以调和的,就像补丁有时会发生冲突一样。

我从未听说过允许在subversion存储库实例之间进行此类协调的工具。当然,您可以通过补丁保留每个更改的副本,并在您再次联机时应用它们。但这是乏味,乏味和痛苦的。

我对这些离线情况的解决方法是从服务器创建10个签出,并针对我正在解决的每个问题(或问题集)处理每个问题。然后,当我重新上线时,我会逐个检查它们并使用更新功能来“同步”它们。它并不完美,但我觉得这是一个很好的解决方法。

希望这有帮助。

答案 2 :(得分:0)

在笔记本电脑上安装本地svn服务器并将源保存在那里。它不会产生繁重的工作量。当您不在办公室时,将更改提交到本地服务器。当您联机时,获取本地存储库的转储并将其加载到您的服务器。然后,您可以将更改合并到主线中。

P.S。它不是太方便,但在服务器无法访问时会保留您的更改。