免费的svn空间

一直想找一个免费的CVS或者SVN空间可以把自己业余的东东传上去。毕竟放在自己机器上不够稳妥,放在公司服务器又不方便。
直到遇见了
http://unfuddle.com/home
恩,先声名这篇blog没有广告的意思/

正如网页所说
Unfuddleis a secure, hosted software development environment and projectmanagement solution for small software development teams.

它集成了subversion代码管理,进度管理,协同工作,BUG管理……免费版本有15M空间,对于个人的小项目还是足够。至少BlindBoy已经完全传上去拉……
GoogleCode Sourceforge
  提起Google Code,我需要很惭愧地承认一点,我一开始的时候“把它看扁了”。初接触GoogleCode的时候,我简单地认为,GoogleCode只是一个半成 品,从各方面的功能来讲,似乎远不能够与Sourceforge的完备相比。但是,随着对GoogleCode了解的深入,我不能不承认我错 了,GoogleCode再一次证明“简单是美”的法则:Google的服务似乎永远是看似简单(甚至让你觉得不够用),而实则非常完备。
  如果你有开源的计划,或者已经开源,或者你有私人的项目希望有个完备的平台去管理它,那么本文值得你一读,因为这是我在这方面的一些心得。到目前为 止,我开源了WINX和DocX已经4个月多了,和Google Code、Sourceforge均有了较长时间的接触,希望借机会和大家交流下。
  选择Google Code,还是Sourceforge?总体来讲,两者各有各的优势。从进入的门槛来讲,使用Google Code会比Sourceforge容易很多。
  Google Code的优势与劣势
  Google Code的优势
  速度第一。Google的服务以快速著称,Google Code亦不例外。当你上传新的Release时,你会特别感受到这一点。
  操作简洁。如果Sourceforge和Google Code提供了同样的功能,那么我可以毫不思索的讲,Google Code比Sourceforge快捷易用。我们后文将详细比较各个功能。
  Google Code的劣势
  容易被盾。以我的经验,GoogleCode被盾比较频繁。这导致我有时无法浏览Bug列表,发布新的Release等等。所幸的 是,GoogleCode的SVN连接从来没有出现访问障碍。因此这不算太大的问题。另外,按GoogleCode的说法,有些功能可以在命令行进行,而 不需要到Web上,但是我本人尚未进行详细的验证。
  100M的容量限制。GoogleCode限制每个项目的SVN空间大小不能超过100M,发布的所有Release亦不能超过100M。由于目前我 的项目刚刚开始,这一点还不是一个障碍。但是这是一个比较容易到达的数字。可以预见,你的项目要面临搬家的风险。我试图寻找办法来清除一部分SVN历史版 本数据、删除一些历史Release版本,未果。
  无数据统计功能。你无法得知你的Release被下载的情况(下载总数以及趋势)。
  Sourceforge的优势与劣势
  Sourceforge的优势
  更多的受众,已经形成第一开源社区。简单统计结果表明,Sourceforge上大约每5分钟就有一个新的Release。也就是说,一天大约有300个新的发布(这不是精确的统计,只是简单估算)。
  功能更加完备。目前来看,Google Code在功能上并不比Sourceforge成熟。如果Google Code是一个完整、快捷、功能足够的平台,那么Sourceforge则是一个方方面面均已经相当完备的开发平台。
  Sourceforge的劣势
  操作繁复,速度较慢。
  详细功能对比
  下面我们展开来对比一下两者的功能:
  建立帐号。Google Code只要你有Gmail帐号即可。Sourceforge要求你进行注册。而且你发现,Sourceforge的注册流程十分罗嗦。
  建立项目。GoogleCode只要你简单填写一下项目的相关信息(http://code.google.com/hosting/createProject ), 仅一个页面即可完成申请。而Sourceforge的新Project申请流程是繁复的,有很多的下一步,并需要你阅读一些英文细节。另外,你的项目并不 马上生效,而是需要进过审批。不出意外的话,在申请之后的第二天再上Sourceforge,你的项目应该通过审批了。
  代码管理。Google Code仅支持SVN库,Sourceforge支持SVN和CVS。Google SVN限制在100M内,Sourceforge则尚未见到明确的容量限制。
  代码库的权限管理。GoogleCode的代码库权限管理非常简单,在你登陆后,http://code.google.com/hosting/settings 将显示GoogleCode为你自动生成的随机密码。通过你的用户名和这个随机密码,你就可以访问SVN代码库,对其进行修改。sourceforge推荐使用putty套件,详细参考sourceforge上的说明,总的来说,相当繁复。
  发布版本。Google Code限制所有Release包不能超过100M,单个Release不能超过10M。Sourceforge尚未见到明确的限制。
  GoogleCode发布一个新的Release流程,仍然只需要一个页面即可完成。你只需要选择上传的文件,并为该文件加一些预定义的标签(用于告 诉别人你的Release支持的平台或其他信息,这些标签GoogleCode已经预定义部分,项目管理人员亦可以定义),确认即开始上传。特别地,如果 一个Release被打上 Featured标签,那么它将出现在项目首页。
  Sourceforge的流程则比较复杂:
  通过ftp上传你要发布的文件。上传地址:ftp://upload.sourceforge.net/incoming ,这个过程匿名进行。上传的文件在你后续的步骤中进行“认领”,如果某个包长时间没人认领,Sourceforge将清理之。
  进入Sourceforge。用你的Sourceforge帐号登陆。
  进入项目主页,进入Admin -> FileReleases。
  选择已有的Package或者新建Package,向该Package中添加一个Release。在你的项目发布的文件比较多(不是发布的历史版本多,而是一次发布的文件多,你可能希望对他们进行归类)时,Package可以更加有条理地管理这些文件。
  为该Release添加ReleaseNote和ChangeLog。确认。
  认领你上传到ftp上的文件。打上勾,确认即可。
  为你发布的文件添加说明(支持的平台、包的格式及其他规格)。
  如果有人关注这个项目的Release,最后一步,你可以向这些人发送信息,告诉他们发布了新的Release。这一步很有意思,是Google Code不能做到的。
  Bug报告。Google Code中的issues,Sourceforge的tracker。由于用的还不算多,暂时不做详细比较。
  论坛。Google Code中并不直接提供论坛功能,当然,这是因为它推荐你使用强大的GoogleGroups。Sourceforge则除了提供给用户的论坛(并把用户 论坛分为两个,一个讨论产品功能的,一个属于头脑风暴型的开放式讨论),也提供开发者专用的论坛(对非项目成员不可见)。
  Project Web。Google Code中没有提供项目主页,而是颇具创意的提供了一个WikiPages。Sourceforge提供了项目主页,项目主页的地址是:"项目 名.sourceforge.net"。你可以利用这个网址来宣传项目、提供项目信息。这个空间是是php+mysql的,并且你可以通过远程Shell 控制,极其灵活。
  团队成员管理。Google Code你可以通过添加其他Gmail帐号为项目成员(Members)或管理员(Administers),但似乎还不能进行更加详细的权限管理。Sourceforge提供了非常精细的项目成员的权限管理。
  下载与访问统计。Google Code无此功能。Sourceforge提供了最近7日、最近2个月、年、全部访问/下载统计。非常详细。
  软件截图(ScreenShots)。可以让用户迅速获得项目的第一印象,吸引眼球。Google Code无此功能。

文章来自[SVN中文技术网]转发请保留本站地址:http://www.svn8.com/SVNzixun/20081026/1264.html

<think>我们正在处理用户的问题:关于SVN清理空间的解决方案或方法。根据引用内容,我们可以提取以下相关信息:1.引用[1]和[2]提到,当SVN工作副本被锁定时,可以使用`svncleanup`命令来清除锁定。这虽然不直接是清理磁盘空间,但清理锁定是维护工作副本的一部分。2.引用[3]介绍了SVN的基本概念,但未直接涉及空间清理。3.引用[4]提到,SVN加锁会在隐藏的.svn目录中生成lock文件,手工删除这些文件以及可能无法访问的.base文件,然后重新更新(UPDATE)。但是,用户的问题明确是“清理SVN空间”,这通常是指减少SVN工作副本或仓库占用的磁盘空间。我们可以从以下几个方面考虑:-清理工作副本:删除工作副本中不再需要的文件,然后执行`svncleanup`来清理锁定和临时文件。-清理仓库:这通常需要管理员权限,涉及到删除仓库中不再需要的项目或版本,但一般用户无法直接操作仓库,除非是管理员。对于普通用户,我们关注工作副本的清理:1.使用`svncleanup`:这个命令用于恢复中断的操作,清理工作副本中的锁定和临时文件。它不会减少工作副本占用的空间,但可以解决一些导致无法更新或提交的问题,从而避免因操作中断而遗留的垃圾文件。2.删除工作副本中未版本控制的文件:使用`svnstatus`可以查看未版本控制的文件(状态为?的文件),然后手动删除这些文件。3.导出干净的工作副本:如果工作副本很,且包含很历史信息(每个目录下的.svn文件夹),可以考虑导出一个干净的工作副本(不含.svn文件夹),但这会失去版本控制功能。使用`svnexport`命令可以将一个版本导出到新目录,不包含.svn目录,从而节省空间(因为.svn目录保存了工作副本的元数据,可能会占用不少空间)。4.重新检出:如果工作副本已经混乱,也可以考虑删除整个工作副本,然后重新检出(checkout)一个干净的副本。但这样会重新下载所有文件,如果网络慢或者仓库,可能不是最佳选择。另外,引用[4]中提到的手工删除.svn目录下的lock文件和.base文件,也是解决锁定问题的方法,但同样不能显著减少磁盘占用。对于仓库级别的清理,需要SVN管理员操作:1.使用`svnadmin`工具:管理员可以使用`svnadmindump`和`svnadminload`进行仓库的转储和加载,结合过滤来删除不需要的版本或路径。2.使用`svnadmindeltify`:这个命令已经不再推荐使用,现代SVN版本不再需要。3.清理未引用的文件:在仓库中,有时会有一些未引用的文件(如日志文件等),可以通过`svnadminpack`(SVN1.10及以上)来打包仓库,减少磁盘占用。4.版本控制下的文件删除:如果仓库中有文件被误提交,即使删除,历史记录中仍然存在,会占用空间。这时需要使用`svndumpfilter`来过滤掉这些文件,然后重新加载仓库。但这个过程复杂且需要停机。由于用户问题没有明确是工作副本还是仓库,我们给出两方面的建议,但普通用户通常只能操作工作副本。因此,回答如下:</think>### SVN 清理空间的方法与解决方案 清理 SVN 空间主要涉及**工作副本(Working Copy)**和**仓库(Repository)**两个层面。以下是具体方法: --- ### 一、工作副本清理(普通用户操作) 1. **`svn cleanup` 命令** 用于解除锁定并清理临时文件,解决因操作中断导致的残留文件: ```bash svn cleanup /path/to/working_copy ``` - 效果:删除锁文件(`.svn/lock`)和临时文件[^2][^4] - 适用场景:更新/提交失败时提示锁定错误(`svn: E200033`) 2. **删除未版本控制的文件** - 查看未跟踪文件: ```bash svn status | grep '^?' ``` - 删除无用文件(如编译产物、日志等): ```bash svn status | grep '^?' | awk '{print $2}' | xargs rm -rf ``` 3. **导出干净副本(节省空间)** 用 `svn export` 创建不含 `.svn` 元数据的副本,适用于发布版本: ```bash svn export /path/to/working_copy /new/clean_directory ``` - 优点:移除所有 `.svn` 目录(可节省 10%-30% 空间) --- ### 二、仓库级清理(需管理员权限) 1. **删除废弃版本** 使用 `svnadmin dump/load` 过滤历史版本(需停服): ```bash svnadmin dump repo > dumpfile # 导出仓库 svndumpfilter exclude /trunk/bigfile < dumpfile > filtered_dump # 过滤文件 svnadmin create new_repo # 新建仓库 svnadmin load new_repo < filtered_dump # 导入 ``` 2. **清理未引用文件** 运行仓库回收(SVN 1.10+): ```bash svnadmin pack /path/to/repository ``` - 效果:压缩碎片文件,释放磁盘空间[^3] 3. **配置钩子脚本预防** 添加 `pre-commit` 钩子限制文件小: ```bash #!/bin/sh MAX_SIZE=10485760 # 10MB svnlook changed -t "$TXN" "$REPO" | awk '$1 != "D" {print $2}' | xargs -I file svnlook filesize -t "$TXN" "$REPO" file | awk -v max="$MAX_SIZE" '$1 > max {exit 1}' ``` --- ### 三、常见问题解决 - **清理后仍提示锁定** 手动删除残留文件: ```bash cd /working_copy/.svn rm lock *.tmp *.base ``` - **空间未释放** 检查仓库的 `db/revs` 和 `db/revprops` 目录,清理日志(需 `svnadmin` 权限)。 > **提示**:定期维护可显著减少空间占用。工作副本清理建议每周一次,仓库级清理每季度一次[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值