如何将subversion树从v1.7降级到v1.6?

时间:2011-02-01 10:56:27

标签: svn

有没有办法将subversion工作副本从1.7版降级到1.6x版?

1.7版本使用单个.svn根文件夹和sqlite作为元数据,因此tigris.org的转换python脚本不起作用。

您是否知道一个解决方案不涉及在v1.6下进行干净的结账并复制已修改的文件?

5 个答案:

答案 0 :(得分:18)

script个工作副本降级。

但是,这不支持从1.7格式降级到1.6格式,也不会支持将来支持这种格式。脚本中的注释告诉我们为什么这是不可能的:

  # Downgrading from format 11 (1.7-dev) to format 10 is not possible,
  # because 11 does not use has-props and cachable-props (but 10 does).
  # Naively downgrading in that situation causes properties to disappear
  # from the wc.

答案 1 :(得分:14)

我找到了从1.7工作副本中删除.svn文件夹的最佳方法,然后检查它上面的1.6。它对我有用,它也可能适合你。 (使用tortoiseSvn 1.6.x客户端)

答案 2 :(得分:5)

我的脏解决方案是使用v1.6创建一个干净的结帐,然后使用一个小的bash脚本将.svn文件夹复制到现有的工作副本:

  #!/usr/bin/env bash
  target=/projects/working-copy-dir

  svn_dirs=`find . -type d -iname .svn`

  for svn_dir in $svn_dirs; do
      tosvn_dir=$target${svn_dir/\.\//}  # strip the extra './' path component
      cp -r $svn_dir $tosvn_dir
  done

这假设脚本是从干净的结帐目录运行的。 Target是修改后的工作副本。在运行脚本之前,应删除/重命名顶级v1.7 .svn目录。

PS。我暂时不会将此标记为答案,因为上面的解决方案是一种解决方法,实际上并没有将项目从1.7转换为1.6。所以问题仍然存在。

答案 3 :(得分:2)

(假设服务器上的文件正确) 到目前为止我找到的最佳方式:

  1. 关闭您的IDE
  2. 删除本地文件
  3. 删除svn 1.7
  4. 安装svn 1.6
  5. 结帐文件

答案 4 :(得分:0)

此方法使用synaptic包管理器,因此请确保已安装。

  1. 将以下行附加到/etc/apt/sources.list

    deb http://us.archive.ubuntu.com/ubuntu precise main
    

    这将确保您至少有两个版本可供选择,即1.7和1.6。

  2. 运行

    sudo apt-get update
    
  3. 转到包管理器,搜索subversion并选择它。

  4. 从菜单选择包 - > force-version 选择 1.6 右键单击 - > 属性 - >版本选择 1.6

  5. 安装包

  6. 再次选择包,然后 menu - > 锁定版本

    这是为了防止自动更新更高版本。

  7. 就是这样。祝你好运。

相关问题