代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

是否有任何版本控制系统,如SVN、Git或Mercurial允许您“保留最新版本”,但不允许您保留修订版(例如二进制文件)

  •  10
  • nonopolarity  · 技术社区  · 14 年前

    在我们的项目文件中,如果存在二进制文件,如.doc、.xls、.jpg,并且我们选择不保留它们以前的修订(只保留最新版本是可以的),有没有方法告诉SVN、Git、Mercurial或其他工具跳过这些文件或特定文件夹的修订?

    10 回复  |  直到 14 年前
        1
  •  4
  •   gbjbaanb    14 年前

    我知道有人会这么做,但你不会喜欢这个答案的。

    它的视觉资源是安全的。选中文件上的标志“仅存储最新版本”,它将停止保留历史记录。

        2
  •  17
  •   Lasse V. Karlsen    14 年前

    请注意,这并不是一个很好的答案。

    版本控制系统通常不会在每个新版本上存储整个文件,而是存储更改。根据系统的不同,您可能偶尔会有一个文件的完整副本,但大多数变更集都只是变更。

    例如,在Mercurial中,我尝试了以下方法:首先,我从以下url下载了C#3.0语言规范作为word文件: http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/CSharp%20Language%20Specification.doc

    然后我打开文件,更改了 3.0 具有 4.0 (不带引号),以及 C# 具有 VB

    如果我现在再次打开文件,只将标题页VB更改回C#,保存并再次提交,存储库的大小将增加276KB,最多3.780.608字节。

    正如您所看到的,更改不会提交文件的整个副本,但是可以肯定的是,差异也不在“10KB”范围内。

    这不是很多

    我的建议如下:

        3
  •  4
  •   Craig Trader    14 年前

        4
  •  3
  •   takeshin    14 年前

    然而,如果你真的需要这样的“特性”,你可以使用 钩子

        5
  •  2
  •   VonC    14 年前

    为了满足您的特殊需要,您可以随时删除过去的版本,VCS(a) Version Control System ,制作于 失去一个版本)不太适合。

    A (这是一个比文件系统上的简单共享路径更高级的解决方案)是您所需要的。
    (例如 Nexus Sonatype

        6
  •  2
  •   Vitaliy    11 年前

    我可以帮你。

    Check file types:

    仅存储头部修订 旧版本在提交新版本时从仓库中清除。对可执行文件或.obj文件有用。

    +序号 只存储最近的n个修订,其中n是1到10或16、32、64、128、256或512之间的数字。 提交n个以上的新修订,或者将现有+Sn文件的n更改为小于其当前值的数字时,旧修订将从仓库中清除。有关详细信息,请参见命令参考。

        7
  •  1
  •   jfs    14 年前

        8
  •  1
  •   Andrew Aylett    14 年前

        9
  •  1
  •   Michel    13 年前

    为什么不对二进制文件使用SVN,对所有源文件使用DVCSS呢?这样,您就可以在服务器端保留所有修订,但在客户端只保留一个副本。。而对于其他来源,你得到的好处是有一个真正的风投。

    我知道我们想把一个二进制文件的所有修订都保存在某个地方,但不想为每个开发人员在他们拥有的每个克隆上所做的每一次“拉”付出代价。。那可能是虐待。。

        10
  •  0
  •   Jaanus    14 年前

    如果您只想跨计算机同步文件,请使用 Dropbox

    如果您使用的是版本控制,那么请参阅lassev。卡尔森写道,磁盘空间很便宜。