Subversion的隐藏修订文件

时间:2008-11-30 21:47:00

标签: svn revision

您知道Subversion如何在隐藏的.svn文件夹中存储已签出的每个文件的副本?我正在建设的网站相当大(有超过1Gig的PDF文件)。在整个网站存在的情况下,这些PDF文件很少会发生变化。

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

  1. 在本地编辑文件,在测试部署中测试
  2. 提交对存储库的更改
  3. 从存储库运行svn export到实时系统
  4. 这样做的缺点是,在此期间可能对实时系统进行的任何更改都将被覆盖。但您可以安排工作流程以避免这种情况。

    实际上,我不知道您是否在工作结账或服务器部署中担心这些隐藏的PDF文件。如果它在你的工作结账中,那么我不知道如何使用Subversion来避免这些文件。但是,如果您将Git与git-svn一起使用,那么Git将管理自己的压缩历史记录,而不会复制所有文件。

答案 3 :(得分:1)

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

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

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