是否有源控制系统(除了CVS)可以配置为不存储文件的本地副本?或者它可能只是不按设计进行?理想情况下,可以通过扩展名或文件大小配置此选项。
例如,如果我有时想在SVN中存储大型电影或图片,最终结果是客户端空间使用量增加一倍 - 而且无法绕过它。
我意识到一个解决方案就是不提交这样的文件,但我的问题是搜索其他解决方案。
为了记录,我只是尝试了Mercurial(Hg),它也占用了两倍的空间。我怀疑Git也会这样做。
P.S。我不明白为什么SVN无法实现对此的支持。它有多简单 - 如果一个文件没有存储在本地,远程获取它,就像CVS一样,我相信。如果网络目前不可用,则显示错误。液/排
答案 0 :(得分:3)
您可以将Bazaar与分支的轻量级结帐一起使用。工作目录只包含可编辑的源代码,bzr几乎可以对任何操作进行网络查找。但是你会发现,即使你使用常规分支,具有所有历史记录的分支的大小通常也小于工作树。
答案 1 :(得分:2)
SVN(以及所有其他现代VCS)旨在存储大量小文本文件,而不是大量的大型二进制文件。所有都保留了本地副本,因为它很便宜(大多数项目很少使用超过几兆字节),它几乎使所有操作更快(差异,状态,本地提交)。
所以你使用的是错误的工具。如果您需要管理图片,请尝试使用Picasa或类似内容。不幸的是,大多数图像数据库都不知道如何保留图像的编辑历史记录(这很可惜;我在bug against digikam年前打开了它并且它仍处于打开状态。
我的意思是,保留原始图像并保存所有编辑的选项以及当前的“最终”图像会更有效。中间的所有内容都可以从原始图像重新创建并再次应用操作。世界上没有VCS能够在效率方面超过这一点(“对比+ 10%”与比较两个JPG相比)。
因此,今天你最好的选择是专业的照片编辑工具( - >不是免费的),或者你必须复制和重命名你想要编辑的照片。
是的,它很糟糕。
如果你所知道的只是一把锤子,你就会把每一个问题当成一个钉子。
答案 2 :(得分:0)
我使用的唯一没有产生过多额外使用空间的是普遍讨厌的视觉源安全。
SoureSafe 6.0仅会导致源绑定的存储开销。
但是,我认为SourceSafe是一个源代码销毁系统,所以我根本不推荐它。
答案 3 :(得分:0)
ClearCase仅在您的工作区域中存储本地修改的文件(在命名约定中称为视图)。
答案 4 :(得分:0)
这可能听起来很愚蠢(也许是这样),但是一旦你提交了你的大文件,为什么你不只是删除磁盘上的文件?毕竟,VCS可以在您需要时精确地用于恢复文件。
我刚试过Bazaar:
> ls -al
total 7123
drwxrwxrwx 1 user group 0 Oct 5 11:42 .
drwxrwxrwx 1 user group 0 Oct 5 11:22 ..
-rw-rw-rw- 1 user group 2469224 Aug 29 2007 Charles_Darwin_01.jpg
-rwxrwxrwx 1 user group 4076719 Sep 25 15:35 FileZilla-3.2.7.1.exe
-rw-rw-rw- 1 user group 746477 Aug 24 18:35 floorplan2008.png
> du -bs
7292420 .
> bzr init
Created a standalone tree (format: 2a)
REM Adding by name to override my own ignore rules, a simple `bzr add` is enough otherwise
> bzr add Charles_Darwin_01.jpg FileZilla-3.2.7.1.exe floorplan2008.png
adding Charles_Darwin_01.jpg
adding FileZilla-3.2.7.1.exe
adding floorplan2008.png
> bzr commit -m "Storing big binary files in repository"
Committing to: E:/temp/TestsVCS/Big/
added Charles_Darwin_01.jpg
added FileZilla-3.2.7.1.exe
added floorplan2008.png
Committed revision 1.
> du -bs
14552798 .
> rm Charles_Darwin_01.jpg FileZilla-3.2.7.1.exe floorplan2008.png
> du -bs
7260378 .
> bzr add Bazaar-quick-start-summary.pdf
adding Bazaar-quick-start-summary.pdf
> bzr commit -m "Adding good reference" Bazaar-quick-start-summary.pdf
Committing to: E:/temp/TestsVCS/Big/
added Bazaar-quick-start-summary.pdf
Committed revision 2.
> rm Bazaar-quick-start-summary.pdf
> du -bs
7666520 .
REM I want to work on a file
> bzr revert Charles_Darwin_01.jpg
N Charles_Darwin_01.jpg
REM I edited the file
> ls -l Charles_Darwin_01.jpg
-rw-rw-rw- 1 user group 2419048 Oct 5 11:52 Charles_Darwin_01.jpg
> bzr st
removed:
Bazaar-quick-start-summary.pdf
FileZilla-3.2.7.1.exe
floorplan2008.png
modified:
Charles_Darwin_01.jpg
REM I commit by name to avoid to commit the deletions,
REM but actually they can be commited without problem
> bzr commit -m "Changed just some IPTC tags" Charles_Darwin_01.jpg
Committing to: E:/temp/TestsVCS/Big/
modified Charles_Darwin_01.jpg
Committed revision 3.
> du -bs
12505785 .
> rm Charles_Darwin_01.jpg
> du -bs
10086737 .
REM + size of image + around 1KB of metadata
注意:这是在Windows上但我使用UnxUtils命令,它们在命令行上很方便。
答案 5 :(得分:-1)
你的图片库有多大?这些天,我认为购买另一个80GB硬盘驱动器会更便宜 - 如果你能找到市场上那么小的硬盘驱动器 - 而不是购买具有磁盘空间节省功能的源代码控制软件包。