您知道Subversion如何在隐藏的.svn文件夹中存储已签出的每个文件的副本?我正在建设的网站相当大(有超过1Gig的PDF文件)。在整个网站存在的情况下,这些PDF文件很少会发生变化。
我想知道是否有办法告诉Subversion它不应该存储某组文件的本地修订版本(我的PDF文件),但只要对这些文件中的任何一个进行更改就与服务器同步文件?
答案 0 :(得分:3)
Subversion使用.svn文件夹中的版本能够针对旧文件区分新文件,并仅将差异发送到subversion服务器。
所以不,没有办法没有.svn文件夹中的文件,仍允许你提交这些文件
答案 1 :(得分:2)
一个不同的想法:如果您使用Bazaar + bzr-svn或Git + git-svn,它们可以保留更节省空间的工作副本,您仍然可以直接从存储库进行更新。
答案 2 :(得分:1)
您可能需要考虑使用svn export
而不是结帐来管理网站的“实时”副本。这样可以完全避免.svn文件夹中的大文件问题。
您的工作流程可能是这样的:
svn export
到实时系统这样做的缺点是,在此期间可能对实时系统进行的任何更改都将被覆盖。但您可以安排工作流程以避免这种情况。
实际上,我不知道您是否在工作结账或服务器部署中担心这些隐藏的PDF文件。如果它在你的工作结账中,那么我不知道如何使用Subversion来避免这些文件。但是,如果您将Git与git-svn
一起使用,那么Git将管理自己的压缩历史记录,而不会复制所有文件。
答案 3 :(得分:1)
正如Greg所说,使用SVN导出 - 但是将SVN导出到本地目录,然后将该本地目录rsync到远程站点。
这将使您获得(a)没有.svn目录和(b)仅将更改从本地系统发送到远程的组合。
正如Greg和orip所建议的那样,如果不这样做,请使用'git-svn'进行远程结账。它仍然在svn导出所消耗的空间上有一些开销,但它将小于完整的svn工作副本。