在本地计算机临时使用SVN脱机工作

Kar*_*ran 33 svn offline clone local repository

我正在研究SVN上的一个项目.然而,我将无法访问互联网几天,并将继续我的项目.

有没有办法在我的本地机器上克隆存储库,提交对它的更改,当我获得对互联网的访问时,将它们"推"到共享存储库中?在这里考虑Mercurial,是否值得完全迁移?!

eck*_*kes 55

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

  • 设置你的Git回购: git svn clone http://svn.example.com/project/trunk
  • 在线时,将您的更改提交给SVN
  • 在离线之前,做一个git svn rebase让你的Git repo与SVN repo同步
  • 在离线时,使用Git repo git commit
  • 当再次回到网上时,做一个git svn dcommit将你的更改推回到SVN回购

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

这样做有两个巨大的优势:

  • 您的完整SVN历史记录将在Git仓库以及从该仓库克隆的每个Git仓库中备份
  • 在离线时,您可以查看提交消息,签出其他分支等.

  • 如果我说SVN在本地检出副本怎么办?现在我无法访问服务器.现在我想要与上面相同的东西,并创建一个新的分支.可能吗? (5认同)
  • +1是,这正是* git-svn`的目标。由于这个确切的原因,我开始使用git,并且效果很好。 (2认同)

Pon*_*oni 8

可笑的答案是迁移到另一个版本控制工具,没有冒犯!

我有确切的问题.
在我的"真实"服务器上使用SVN,其中"真正的"存储库是.
当我带着我的笔记本电脑出门,没有互联网时,我只需复制这台笔记本电脑上的"真实"存储库(VisualSVN + TortoiseSVN),处理它,更改/提交任何内容,当回来时只需"同步"新的"修订版"文件到"真正的"存储库.

更清楚一点:拥有两台SVN服务器,一台在笔记本电脑本地(克隆),另一台在"真正的"服务器上(显然).只需在两者之间同步.

  • 这听起来像是危险的建议.你基本上(严重地)重新实现了Subversion的DVCS. (3认同)
  • 只要在任何时间点只有一台服务器接收新的变更集,此方法就起作用。如果在您脱机并将更改提交到克隆副本的同时有人将更改提交到原始存储库中的相同路径,则此方案会中断。 (2认同)
  • 如何同步两个svn克隆?正如@Rudi所说,如果其他人继续执行原始存储库怎么办? (2认同)

phi*_*hag 6

您可以使用mercurial访问svn存储库.

  • +1,根据我的经验,hgsubversion比hgsvn更好. (2认同)

Mar*_*ark 5

我在一个使用SVN的项目中使用git的原因与上面描述的相同.有些人习惯了git/mercurial,但过了一段时间我真的很喜欢这种新方法.此外,我从未遇到过使用git-svn的任何问题,从未尝试过mercurial和svn ..

如果您正在使用Mercurial,并且仍在寻找一个有两个笑声的好教程,请查看Joel Spolsky撰写的本教程.如前所述,肯定是开始使用DVCS的绝佳机会.