2011-02-08 56 views
28

我正在使用SVN上的项目。然而我几天没有访问互联网,并且将在我的项目上工作。在本地机器上临时使用SVN离线工作

有没有什么办法,使资料库的克隆我的本地机器上,提交更改它,当我访问互联网“推”到他们的共享资源库?在这里从Mercurial的角度思考,是否值得完全迁移?!

+7

因为他想要做的改变离线提交,而不是一个大的变更全都在结尾处进行处理。 – 2011-02-08 14:35:23

+0

,因为我承诺进行小的更改,因此需要在旅行时在我的存储库上提交...因此需要本地存储库(可能是克隆的)来提交。 – Karan 2011-02-08 14:37:17

回答

49

你的问题听起来好像git-svn用例:

  • 设置你的Git回购:git svn clone http://svn.example.com/project/trunk
  • ,同时在线,之后再脱机,提交更改到SVN
  • ,做一个git svn rebase让你的Git回购与SVN回购同步
  • 当离线时,承诺使用git commit
  • 恢复联网时再,做一个git svn dcommit把你的修改到SVN回购

我每天使用这个工作流程!

你得到两个巨大的优势,这样做:

  • 您的完整SVN历史记录中的Git回购和在会从一个
  • 在离线状态下克隆的每一个混帐回购备份,您可以查看提交消息,检出其他分支等。
0

呵呵呵,一个很好的时间让你发现自己mercurialgit

+1

让我对mercurial感到困扰的事情之一就是你不能改变提交摘要。我觉得这很重要,因为它更容易跟踪哪些提交是哪个任务的一部分。 Mercurial有没有更好的修订/任务控制方法? – Karan 2011-02-08 14:40:08

+0

@Newton抱歉提问,但是提交摘要究竟是什么?我只知道文本提交消息,这是支持,因为它在svn – phihag 2011-02-08 23:00:27

1

总是有SVK为好。尽管如此,我还没有使用它,所以我不确定它的效果如何。

+0

SVK已停产。 – 2013-07-11 10:28:17

7

荒谬的答案是迁移到另一个版本工具,没有冒犯!

我有确切的问题。
在我的“真实”存储库所在的“真实”服务器上使用SVN。
当我走出我的笔记本电脑,没有互联网我会简单地复制这台笔记本电脑(的VisualSVN + TortoiseSVN的)的“真实”信息库,它的工作,改变/提交任何别的东西,回来的时候简单的“同步”的新“修改'文件到“真实”存储库。

要更清楚一点:有两台SVN服务器,一台在您的笔记本本地(克隆),另一台在您的“真实”服务器(显然)。只需在两者之间同步即可。

5

我一直在使用上使用SVN为你上面描述相同的原因项目饭桶。有一些习惯了git/mercurial,但过了一段时间,我真的很喜欢这种新方法。进一步,我从来没有任何问题与使用git-svn,从未尝试过mercurial和svn。

如果你到了Mercurial,并仍然在寻找一个好的教程与之间的一个或两个笑之间检查出这tutorial写Joel Spolsky。如前所述,肯定是开始使用DVCS的绝好机会。

1

声明:我是SOS(SVN Offline Support)的作者。

我写了这个易于使用的命令行工具来准确地解决SVN脱机工作的问题,但它的作品不仅在SVN检出,但对于任何VCS工作拷贝(如集市,Git的,化石),或即使在未跟踪的文件树中。 SOS允许简单的提交,分支,切换/更新操作,而没有传统VCS所需的复杂语义背景知识。 联机后,您可以将所有更改集成回基础VCS。

Website

安装需要一个Python 3,并通过pip install -U sos-vcs

相关问题