【问题标题】:Setting up SVN (subvsersion) to manage our companies files, how to exclude large files from being versioned设置 SVN (subvsersion) 来管理我们的公司文件,如何排除大文件被版本控制
【发布时间】:2010-03-26 07:22:50
【问题描述】:

我和另外两个人最近创办了我们自己的网络开发公司。我们每个人都在家工作,并决定为所有文件保留一个中心位置。这些文件包括 Word 文档、电子表格、客户文件、设计......等与我们公司有关的任何内容。我有一个非常稳定的互联网连接和一个 Windows 2008 服务器盒子坐在家里,所以我设置了一个颠覆存储库。

我们的文件存储库将如下所示。

Clients
   Company A
       Design (photoshop files, wireframes, concepts)
       Documents ( logins, quotes, proposals etc)
       Site Backups
   Company B
       Design 
       Documents 
       Site Backups
Prospects
   Company C
   Company D
Our Company
   Our Website
   Documents (contract, operating procudres)

我的问题是关于设计文件的。我的设计师使用的 Photoshop 文件大小从 10mb 到 100mb 不等。我认为我们不需要保留这些文件的版本,因为这会非常快地占用空间。 我如何去控制哪些文件被版本化,以及哪些文件被存储。我的想法是所有文档都需要版本化,而除此之外的任何文件都不应该是。

任何帮助将不胜感激,谢谢!

编辑 我也很好奇这是否是要走的路。我只是喜欢这个系统,因为它同时保存了我所有文档的版本。此外,基本上我将在 3 个不同的位置(3 个本地副本)进行 3 个备份,因此无需备份。我不确定 svn 将如何作为纯粹的大型文件存储库执行。

【问题讨论】:

    标签: svn version-control


    【解决方案1】:

    使用svn:ignore 属性。这是解释它的引文:

    svn:ignore 属性包含一个 确定的文件模式列表 颠覆操作将被忽略。 也许是最常用的特殊 属性,它与 全局忽略运行时 配置选项(见第 称为“配置”)来过滤未版本化的 命令中的文件和目录 svn 状态、svn 添加和 svn 导入。

    svn:ignore 背后的基本原理 属性很容易解释。 Subversion 并不假设每个 工作副本中的文件或子目录 目录用于版本 控制。资源必须明确 置于 Subversion 的管理之下 使用 svn add 或 svn import 命令。结果,经常有 工作副本中的许多资源 没有版本。

    取自“颠覆之书”section on properties


    请注意,svn:ignore 属性可以通过文件名通配符设置(即*.exe)。您可以添加编程脚本(对编程语言使用钩子或 SVN 绑定)来指定其他规则 - 即忽略所有超过 100MB 的文件。但是,这可能有些危险。选择权在你。

    【讨论】:

    • 太棒了!这正是我正在寻找的。你认为使用颠覆来做我想做的事情合适吗?
    • @Roeland:SVN 非常适合各种文件。最好的方法是只在其中存储“源”文件,而不是存储工具(编译器、处理器等)从这些源生成的“产品”。只要你这样做,你就很好。
    • 如果它的“未版本化”仍将存储在存储库中。看起来忽略只是意味着它不会被存储..我是对的吗?我之所以这么说是因为我的设计师会在他家处理文件,然后将这些设计文件提交到 repo。我希望能够更新我的本地副本以查看这些设计文件。目前,当他有新设计时,他必须将其上传到 ftp.. 然后我必须手动下载它。我正在寻找这整件事来自动化这个过程。
    • @Roeland:忽略意味着它不会进入存储库,但 SVN 不会在沙箱中的本地副本问题上打扰您
    • @Roeland:请记住,删除它实际上不会从存储库中删除。 SVN 永远记住(否则它会如何为您恢复旧版本,该文件尚未删除)
    【解决方案2】:

    与您可能认为的相反,Subversion 实际上非常适合存储二进制文件,甚至可以在版本之间进行二进制差异。

    文件大小不应该是您决定是否对文件进行版本控制的问题。是否需要版本控制应该是关注点。其他任何事情都是在踢自己的脚。

    【讨论】:

    • 如果你在 eli 的回复中阅读了我的 cmets,你会看到我也在使用版本控制系统。
    • 不,我没有阅读您的 cmets,因为当我发布答案时它们还没有出现。此外,它不会改变任何东西。你不能使用 SVN 来“存储”一些没有版本控制的东西。这不是它的工作原理。不要将其用作简单的文件服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多