代码之家  ›  专栏  ›  技术社区  ›  Mr. Boy

非版本化SVN目录?

  •  5
  • Mr. Boy  · 技术社区  · 15 年前

    我们面临的问题是,客户向我们提供了要包含在发行版中的内容,其中包括许多视频文件。它们的内容通常是以SVN的形式出现的,但是由于它们没有访问权,对这些大型二进制文件进行版本控制似乎并不适合SVN。我们的测试不需要这些文件(我们只需要测试,如果找到了就可以启动视频),我们不负责检查/测试客户提供的内容。

    所以我想知道是否有可能有一个SVN目录,它不是版本化的,只是一个常规目录,在更新/签出时仍然可以提取它? 或者SVN可能有一种从非SVN源提取文件的方法,有点像SVN:外部的,但不查看另一个repo?

    是否有一个SVN解决方案来解决这个问题,或者如果我们想避免对文件进行版本控制,我们应该简单地将它们放在另一个存储中,并配置一个构建/部署脚本来单独地提取它们吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Jean-Bernard Jansen    15 年前

    问题是客户机和SVN报告之间的桥梁,还是二进制文件的版本控制?

    对于第二个,我认为没什么大不了的。从这里读: http://help.collab.net/index.jsp?topic=/faq/svnbinary.html

    注意文件是否 二进制不影响 用于存储更改的存储库空间 也不会影响到 客户端和之间的通信量 服务器。用于存储和传输 目的,颠覆使用差异 同样适用的方法 二进制和文本文件;这是 完全与差异无关 svn diff命令使用的方法。

    由于在更新/提交小的更改时,对大文件的版本控制可能会对开发人员很粗鲁,因此您可以使用一系列专用的分支。

        2
  •  4
  •   gbjbaanb    15 年前

    唉,不,Subversion存储了提交给它的所有版本——没有设置任何标志来告诉它只保留最后一个版本。也许有一天,涂鸦被实施,但不要屏住呼吸等待它:)

    基本上,没有SVN解决方案可以解决这个问题,所以您需要查看一个文档管理服务器,或者只是一个单独的文件存储。

    不过,有一个选项可能对您有用,如果您使用Tortoissesvn,则可以使用它 client-side hooks 自动将视频文件从文件存储区拉到本地系统。

    全颠覆解决方案的另一个选择是正常地在其中存储视频文件,但随后定期转储/过滤/加载存储库以清除旧版本。如果视频文件非常大,这可能需要一些时间,因此我不确定是否推荐,但如果您将它们存储在自己的repo中,您可以简单地获取最新版本,删除整个repo,然后重新导入文件,您只需用1个版本重新初始化repo。节省空间,并且可以编写脚本,但可能不值得麻烦地告诉每个人“把你的视频文件从\服务器\视频中删除”。

        3
  •  0
  •   8DH    15 年前

    我不知道是否正确,但据我所知,您是在隔离代码和客户的大型二进制文件之后。

    这个怎么样? 为大型文件设置单独的专用SVN存储库。 只允许客户访问该存储库。 使用svn:externals将这些文件拖到代码树中。

    SVN可以很好地处理大型二进制文件,如果将它们放在单独的repo中,它们不会污染代码repo。