最近评论

Windows下删除.svn文件夹的最简易方法

SVN是我认为目前最方便的版本管理体系。我最早一次接触版本管理是2004年,当时学校BBS的代码要求用CVS管理;第二次亲密接触是在2006年,当时公司的代码使用Eclipse+CVS管理;而第一次使用SVN则是在2007年的一个封闭开发项目。
我十分喜欢SVN的方便,无论是在Linux下的命令行操作还是在Windows下的资源管理器插件,都十分简易。而且 code.google.com也支持SVN来供我们发布、维护开源项目(例如我的WordPress主题TES)然而,久而久之,SVN文件夹下会有许多.svn的“meta数据”。这些数据久而久之会带来不少麻烦。尤其是基于资源管理器交互的Windows系统。
今天看了Jon Galloway的一个注册表脚本,十分方便,分享如下:
建立一个文本文件,取名为kill-svn-folders.reg(扩展名由txt改为reg),内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@=”Delete SVN Folders”
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@=”cmd.exe /c \”TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \”%1\” %%f IN (.svn) DO RD /s /q \”%%f\” \””
保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下下面所有的.svn文件了:

svn:Error * The VCC property was not found on the resource

人要犯傻起来,那真是挡都挡不住。最近新增一个svn repository,在我这边使用正常。在另一台上就是老提示Error * The VCC property was not found on the resource。用google搜索了该错误提示,很多,但没什么好的解决方法。最后不小心看到地址是以svn://开头的,而我居然一直以http://开头,难怪一直都访问不了。心里那个-_-!。

subversion冲突解决和winmerge使用手册

winmerge使用手册
http://winmerge.org/2.6/manual/index.html
解决版本冲突的命令。在冲突解决之后,需要使用svn resolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在Work Copy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。假设文件名是sandwich.txt,对应的文件名分别是:sandwich.txt.r1、sandwich.txt.r2、sandwich.txt.mine、sandwich.txt)。同时在目标文件中标记来自不同用户的更改。
解决冲突的办法:
- 手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行svn resolved filename来解除冲突,最后提交。
- 放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行svn resolved filename并提交。
- 放弃自己的更新,使用svn revert,然后提交。在这种方式下不需要使用svn resolved。
对于svn resolved命令需要非常小心,必须是非常确定冲突已经解决才能使用。否则,会导致Subversion以为冲突解决,而使代码库不正确。
解决冲突(合并别人的修改)
我们可以使用svn status -u来预测冲突,当你运行svn update一些有趣的事情发生了:
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.
U和G没必要关心,文件干净的接受了版本库的变化,文件标示为U表明本地没有修改,文件已经根据版本库更新。G标示合并,标示本地已经修改过,与版本库没有重迭的地方,已经合并。
但是C表示冲突,说明服务器上的改动同你的改动冲突了,你需要自己手工去解决。
当冲突发生了,有三件事可以帮助你注意到这种情况和解决问题:
Subversion打印C标记,并且标记这个文件已冲突。
如果Subversion认为这个文件是可合并的,它会置入冲突标记—特殊的横线分开冲突的“两面”—在文件里可视化的描述重叠的部分(Subversion使用svn:mime-type属性来决定一个文件是否可以使用上下文的,以行为基础合并,更多信息可以看“svn:mime-type”一节)。
对于每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝:
filename.mine
你更新前的文件,没有冲突标志,只是你最新更改的内容。(如果Subversion认为这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。)
filename.rOLDREV
这是你的做更新操作以前的BASE版本文件,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
这是你的Subversion客户端从服务器刚刚收到的版本,这个文件对应版本库的HEAD版本。
这里OLDREV是你的.svn目录中的修订版本号,NEWREV是版本库中HEAD的版本号。
举一个例子,Sally修改了sandwich.txt,Harry刚刚改变了他的本地拷贝中的这个文件并且提交到服务器,Sally在提交之前更新它的工作拷贝得到了冲突:
$ svn update
C sandwich.txt
Updated to revision 2.
$ ls -1
sandwich.txt
sandwich.txt.mine
sandwich.txt.r1
sandwich.txt.r2
在这种情况下,Subversion不会允许你提交sandwich.txt,直到你的三个临时文件被删掉。
$ svn commit –message “Add a few more things”
svn: Commit failed (details follow):
svn: Aborting commit: ‘/home/sally/svn-work/sandwich.txt’ remains in conflict
如果你遇到冲突,三件事你可以选择:
“手动”合并冲突文本(检查和修改文件中的冲突标志)。
用某一个临时文件覆盖你的工作文件。
运行svn revert 来放弃所有的修改。
一旦你解决了冲突,你需要通过命令svn resolved让Subversion知道,这样就会删除三个临时文件,Subversion就不会认为这个文件是在冲突状态了。[5]
$ svn resolved [...]

Error * 期望文件系统格式“2”;发现格式“3”

使用subversion过程中出现 Error * 期望文件系统格式“2”;发现格式“3”错误,这是服务器程序subversion和客户端程序TortoiseSVN版本号不一致的。删除subversion和原有的版本库,用相同的版本重新安装subversion和TortoiseSVN,问题即可解决。
subversion1.4使用说明:http://svndoc.iusesvn.com/svnbook/1.4/

svn-1.4.6 Windows binaries下载

Download svn-1.4.6 Windows binaries
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=74

Subversion快速入门教程

原文地址: http://www.subversion.org.cn/index.php?option=content&task=view&id=56
 
Subversion快速入门教程      
用户评分: / 90
差好
作者: Rock Sun     
2005-10-20  
如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入
基本客户端操作
1,软件下载
下载Subversion服务器程序。
到官方网站 的下载二进制安装文件,来到二进制包下载部分  ,找到 Windows NT, 2000, XP and 2003部分,然后选择”this directory”,这样我们可以看到许多下载的内容,目前可以下栽 svn-1.2.3-setup.exe。
下载Subversion的Windows客户端TortoiseSVN。
TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择Official version for Win2k/XP or higher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.4.4479-svn-1.2.3.msi。
2,服务器和客户端安装
服务器安装,直接运行svn-1.2.3-setup.exe,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
安装TortoiseSVN,同样直接运行TortoiseSVN-1.2.4.4479-svn-1.2.3.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
3,建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:\svndemo\repository
就会在目录E:\svndemo\repository下创建一个版本库。我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:\svndemo\repository下”右键->TortoiseSVN->Create Repository here…“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限
来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd

#anon-access = read
#auth-access = write
改为
anon-access = none
auth-access = write
把#realm =My First Repository
改为
realm =Your  Repository name
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally [...]