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