3

您知道 Subversion 是如何在隐藏的 .svn 文件夹中存储它检出的每个文件的副本的吗?我正在建立的网站非常大(有超过 1Gig 的 PDF 文件)。这些 PDF 文件在网站存在期间很少会更改。

我想知道是否有办法告诉 Subversion 它不应该存储特定文件集(我的 PDF 文件)的本地修订副本,而只要对这些文件中的任何一个进行更改就与服务器同步?

4

4 回答 4

3

Subversion 使用 .svn 文件夹中的版本来区分新文件和旧文件,并将差异发送到 subversion 服务器。

所以不,没有办法在 .svn 文件夹中没有文件,这仍然允许您提交这些文件

于 2008-11-30T23:11:17.030 回答
2

一个不同的想法:如果您使用 Bazaar+bzr-svn 或 Git+git-svn,它们会保留更节省空间的工作副本,您仍然可以直接从存储库进行更新。

于 2008-11-30T22:00:22.557 回答
1

您可能需要考虑使用svn export而不是结帐来管理您网站的“实时”副本。这将完全避免 .svn 文件夹中的大文件问题。

您的工作流程可能是这样的:

  1. 在本地编辑文件,在测试部署中测试
  2. 提交对存储库的更改
  3. 从存储库运行svn export到实时系统

这样做的缺点是,在此期间可能对实时系统所做的任何更改都将被覆盖。但是您可以安排您的工作流程来避免这种情况。

实际上,我突然想到,我不知道您是在工作结帐中还是在服务器部署中担心这些隐藏的 PDF 文件。如果它在您的工作结帐中,那么我不知道使用 Subversion 避免这些文件的方法。但是,如果您将 Git 与 一起使用git-svn,那么 Git 将管理自己的压缩历史记录,而不需要所有文件的完整副本。

于 2008-11-30T21:50:48.253 回答
1

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

这为您提供了 (a) 没有 .svn 目录和 (b) 仅将更改从本地系统发送到远程的组合。

如果不这样做,正如 Greg 和 orip 所建议的那样,请使用“git-svn”进行远程结帐。在 svn 导出所消耗的空间上,它仍然有一些开销,但它会小于完整的 svn 工作副本。

于 2008-12-01T00:02:52.620 回答