Svn 颠覆功能

Svn 颠覆功能,svn,version-control,Svn,Version Control,我刚刚成为一名纯粹的程序员/工程师(尽管多年来我与许多人一起工作,并执行了“按需”编码)。现在我发现自己需要设置一个版本控制环境。我熟悉SVN,但想知道它是否有“功能”,然后再设置它并确定要实现的文件结构 在一个项目中,我有几个文件经常更改,但我不想保留以前的版本,因为它们会很快占用磁盘空间。SVN是否具有一项功能,可以将存储库中的文件(或文件夹)的属性设置为仅保留文件的最新版本?(或者可能只是n个最新版本?) 如果SVN没有此功能,是否有其他版本控制系统具有此功能 提前感谢您考虑这个问题…SV

我刚刚成为一名纯粹的程序员/工程师(尽管多年来我与许多人一起工作,并执行了“按需”编码)。现在我发现自己需要设置一个版本控制环境。我熟悉SVN,但想知道它是否有“功能”,然后再设置它并确定要实现的文件结构

在一个项目中,我有几个文件经常更改,但我不想保留以前的版本,因为它们会很快占用磁盘空间。SVN是否具有一项功能,可以将存储库中的文件(或文件夹)的属性设置为仅保留文件的最新版本?(或者可能只是n个最新版本?)

如果SVN没有此功能,是否有其他版本控制系统具有此功能


提前感谢您考虑这个问题…

SVN跟踪更改集,而不是整个文件,不,您不能删除它们

额外建议: 如果我是你的话,我不会担心回购的磁盘空间,或者可能会花一些时间重新考虑为什么文件更改如此频繁,以至于整个磁盘空间都被填满了。这需要版本控制吗?如果是这样,你可能真的不想抹去历史

此外,我建议使用更现代的版本控制工具,如git或mercurial

以下是关于使用git清除磁盘空间的类似帖子:

正如下面的评论所指出的,如果你是一个版本控制新手,以上任何一种功夫都可能导致断腿;)

  • 我想您关心的文件根本不应该存储在版本控制系统中。使用Apache Subversion或任何其他源代码管理系统的常见方法是不存储从您自己的源文件(例如,自动生成的文件、大型二进制文件或磁盘映像)生成的文件。换句话说,如果您构建一个可执行文件,您应该存储它的源代码,而不是编译后的可执行文件

  • 现在还不清楚你关心的是哪种文件。文件类型和文件大小是多少

    • 如果文件是文本文件,那么您不必担心存储库的大小,请参阅@ElmoVanKielmo对您的问题的评论。Subversion非常有效地存储文本文件修订之间的增量

    • 如果文件是大的二进制文件,那么您仍然可以将其存储在Subversion存储库中,但是我不会将大于1GB的文件存储在存储库中

  • Apache Subversion没有自动从存储库历史记录中完全删除文件的功能。但是,您可以将大文件存储在专用的分支中,并随时使用

  • 请注意,断开连接/分布式版本控制在存储大型二进制文件方面有其缺点:

    使用Git,每个使用Git克隆的人都必须下载整个存储库以及所有版本的大型二进制文件,因此这可能会耗费时间和带宽。我认为Git比Subversion更不适合存储二进制文件


  • …在麻烦设置它并确定是什么之前 要实现的文件结构

    安装和配置Subversion服务器一点也不麻烦。您可以通过查看为您的平台获取一个。配置服务器以通过或协议公开存储库


    如果您使用的是Windows,您可能希望尝试在几次单击中安装和配置完整的服务器包,从而节省大量时间。

    您确实不需要它。SVN仅为特定版本保留差异,而不是整个文件。就我个人而言,我从未听说有人因为一个SVN存储库@ElmoVanKielmo而耗尽了磁盘空间。虽然我同意你的看法,但你现在很幸运地遇到了一个人,他因为过去使用不好而用SVN耗尽了空间。我已经后悔了,但是,很久以前在一个遥远的星系。。。我使用SVN来存储频繁变化的非文本资产,如图像、其他媒体和编译代码。从理论上讲,集中并制作简单的发布过程和delpoyment似乎是一个好主意(它做到了),但现实的锤子最终赶上了…我也建议一般来说,但是他们也没有提供这个问题的解决方案。@ErwinBolwidt看不到我更新的答案,git可能有帮助是或否-肯定不是初学者应该用
    git
    做的事情,因为它重写了历史,它需要与克隆了您正在以这种方式修改的存储库的所有人进行协调。@ErwinBolwidt真正的答案是我的第一句话——简单地说,没有SVN无法完成所需的任务。不管多么不明智,至少在git中,你有很多选择可以让你的脚飞起来。感谢大家迄今为止的反馈。我想我正试图用一个工具解决两个问题(备份和版本控制)。