Subversion的隐藏修订文件

3
您知道Subversion如何在隐藏的.svn文件夹中存储它检出的每个文件的副本吗?我正在构建的网站非常庞大(有超过1G的PDF文件)。这些PDF文件在整个网站的存在期间很少更改。
我想知道是否有一种方法可以告诉Subversion不应该存储某些文件集(我的PDF文件)的本地修订副本,而只需在对这些文件进行任何更改时与服务器同步?
4个回答

4
Subversion使用.svn文件夹中的版本来对比新旧文件,并将差异发送到Subversion服务器。因此,没有办法不在.svn文件夹中存储文件,并仍然能够提交这些文件。

2
您可能希望考虑使用svn export来管理您网站的“实时”副本,而不是使用checkout。这将完全避免.svn文件夹中大型文件的问题。
您的工作流程可以如下:
1. 在本地编辑文件,在测试部署中进行测试 2. 将更改提交到存储库 3. 从存储库运行svn export到实时系统
这样做的缺点是,与此同时在实时系统上进行的任何更改都将被覆盖。但是,您可以安排工作流程以避免这种情况。
实际上,我想到了一个问题,我不知道您是否关心工作checkout中的这些隐藏PDF文件还是服务器部署中的这些文件。如果是在您的工作checkout中,那么我不知道是否有一种方法可以使用Subversion避免这些文件。但是,如果您使用带有git-svn的Git,则Git将管理自己的压缩历史记录,而无需所有文件的完整副本。

我的网站的完整部署通过 svn update 完成。从一个位于外部托管的 SVN 仓库导出超过一千兆字节的数据似乎不是一个好主意。无论如何,感谢您的回复。 - Luke

2
在不同的思路中有一个想法:如果您使用Bazaar + bzr-svn或Git + git-svn,它们会保留更高效的工作副本,并且您仍然可以直接从存储库更新。

目前对我来说不是一个选项。 - Luke

2

正如Greg所说,使用SVN导出--但是将SVN导出到本地目录,然后将该本地目录rsync到远程站点。

这样可以同时实现(a)没有.svn目录和(b)仅将本地系统的更改发送到远程系统。

如果失败,正如Greg和orip建议的那样,使用'git-svn'进行远程检出。它仍然会有一定量的开销超过svn导出所占用的空间,但比完整的svn工作副本要少。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接