SVN;在初始提交时使用现有版本(分支)的惰性副本

时间:2010-08-03 11:32:09

标签: svn

嘿伙计们,我正在颠覆。

我有两个基于相同代码库的不同网站,差异很大(它们相差约15%)。网站都有> 10K文件。当我为'A'开发某些东西时,我有时会将'B'与变化同步,或者变化可能特定于'A',反之亦然。

所以我认为将它们作为同一个仓库中的两个分支是合乎逻辑的,现在主干可能是空的。

我知道类似的压缩无论如何都适用于svn文件系统,但如果我最初将它们作为两个分支提交,它会完全没问题吗?或者我应该;

  • 创造&提交默认文件夹结构,
  • 将'A'作为第一个分支,
  • 将第一个分支复制为第二个分支
  • 更新工作副本
  • 删除工作副本中的第二个分支
  • 将“B”网站复制到工作副本中的第二个分支
  • 提交

所以服务器会知道(或不知道)分支之间未更改的文件,并将它们保存为惰性副本吗?

顺便说一句,有些文件日期可能会有所不同,尽管它们的内容与往常一样。

2 个答案:

答案 0 :(得分:0)

我认为您正走在正确的轨道上,以尽量减少SVN中的存储量。

我推荐以下技巧:

  • 将“A”提交为repo中的分支
  • 远程复制(又名分支)“A”进入新分支“B” - A和B现在完全相同
  • 签出“B”作为新项目/文件夹(在“A”工作目录之外)
  • 将更改后的文件添加到“B”中(我很确定修改日期不会算作差异)
  • 提交“B”
祝你好运!

答案 1 :(得分:0)

有些过期。好吧,结果是SVN总是保留一个内容的单个副本,无论具有相同内容的文件是在同一版本中提交,在不同的版本中提交,还是从另一个文件分支。它们都引用了一个哈希,并从第一次提交中获取内容。

因此,在大小方面,所有分支的初始提交都是完全正确的,甚至由于修订较少而导致回购规模略小。

使用“分支”路径将分支信息添加到修订版中。但是,它仅对人类可读的引用有用,并且我认为在初始提交中不重要甚至没有意义。如果需要,也可以将其写入提交描述。