我公司的SVN代码仓库在下载时大约为250MB。随着多年来的更改,它可能非常庞大(4倍于此大小)。如果我们将所有这些内容转移到GitHub,每个用户是需要下载250MB还是需要下载1GB或更多才能获取完整的仓库历史记录呢?
我公司的SVN代码仓库在下载时大约为250MB。随着多年来的更改,它可能非常庞大(4倍于此大小)。如果我们将所有这些内容转移到GitHub,每个用户是需要下载250MB还是需要下载1GB或更多才能获取完整的仓库历史记录呢?
您可以克隆不带历史记录的仓库:git clone --depth 1 your_repo_url(参见https://git.wiki.kernel.org/index.php/GitFaq#How_do_I_do_a_quick_clone_without_history_revisions.3F)
如果有大量的文件版本,您的对象数据库随着时间的推移将变得越来越大。
默认情况下,Git使用zlib压缩算法存储单个blob。但是,可以告诉Git将多个对象合并为一个pack文件,该文件还使用增量压缩方法以节省空间。您的整个历史记录仍然存在,只是需要比执行基于先前状态的命令(例如,检出旧版本)需要更长时间来解包。但我需要强调这一点非常小。老实说,增加不到一秒的时间。
更多关于packfiles的信息请参考Pro Git书籍:http://git-scm.com/book/zh/v2/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-Packfile