了解SVN存储库,工作副本和软件版本

时间:2014-03-07 14:47:39

标签: svn tortoisesvn

我有一个最初使用SVN 1.6创建的SVN存储库。据我所知,回购仍然是1.6 - 我没有升级它或要求托管服务提供商这样做(虽然我知道他们这些天运行SVN 1.8。)

我在Windows(使用TortoiseSVN)和OSX(使用XCode命令行工具)上拥有此repo的工作副本。

我刚刚更新到XCode5,现在我的Mac上有SVN客户端1.7,它告诉我必须升级我的工作副本。但这让我很困惑 - 我可以在这台机器上安装1.7 WC,在另一台机器上安装1.6 WC吗?

我的WC是1.6.x的事实是否意味着这是回购版本?

我担心如果我更新我的repo最新版本(1.8),我将无法使用1.7客户端。另外,如果我将TortoiseSVN更新到更新的版本,它只会让我使用1.8的repos ...我不想升级错误的东西或错误的顺序并打破一些东西。

要求澄清不同的东西如何组合在一起以及向后兼容的东西。

2 个答案:

答案 0 :(得分:3)

目前,您可以对任何服务器版本的Subversion使用几乎任何客户端版本的Subversion。您的服务器可以是1.6版本,客户端可以是1.8,反之亦然。没关系。

但是,您不应该使用由一个Subversion客户端创建的工作目录和第二个Subversion客户端,因为无法保证这两个客户端将理解工作目录的布局。

在Subversion的大部分历史中,这条规则被忽略了。标准的Subversion库创建了一个标准的工作目录布局,大多数客户只是使用它。我甚至看到人们将他们的工作目录放在Dropbox中并在Mac,Linux,Windows和Cygwin客户端之间共享。

当Subversion 1.7问世时,这种懒散的方式破灭了。在1.7之前,.svn目录分散在整个工作副本中 - 每个目录一个。在Subversion 1.7中,情况不再如此。 .svn目录仅位于工作目录的根目录中。这意味着Subversion 1.6客户端无法与Subversion 1.7客户端共享工作目录。

当Subversion 1.8问世时,标准格式再次发生变化,Subversion 1.7客户端检出的工作目录无法再对1.8客户端起作用。

理论上,访问工作目录时仍然不应使用不同的客户端,但大多数客户端仍使用类似的格式。你绝对不能做的就是使用具有相同工作目录的不同版本的Subversion客户端。

在客户端Subversion 1.6和Subversion 1.7之间,有一种更新工作副本的方法,但我通常建议只在结帐时检查新副本。即使您确实升级了工作副本,我建议您在完成工作后签出一个干净的版本。


小结

  • 您使用的Subversion客户端版本几乎可以在任何版本的Subversion存储库中使用。
  • 您不能再在同一工作目录中使用不同版本的Subversion客户端。我建议尽可能使用svn upgrade进行清新干净的结账。即使您使用svn upgrade,我也建议您在完成所有工作后签出一份干净的副本。

答案 1 :(得分:1)

  • 我的WC是1.6.x是否意味着这是回购版本?

  • 我可以在这台机器上安装1.7 WC,在另一台机器上安装1.6 WC吗? 是的,你可以。