http://www.shengfang.org
http://wanyancan.spaces.live.com/blog/cns!3D9F3FEED30B0D51!137.entry
svn 命令行小册
熬夜也要把这记下来,免得又忘了。
知道后感觉简单,不知道则晕得摸不到脑袋。虽然网上有很多图片教程,但抄来抄去,都是教你怎么用乌龟svn,在linux你怎么办?这里是命令行方式,稍微强调一下而已。
首先,你要能在命令行能输入svn,否则装一个先。http://subversion.tigris.org/
其次:记得这个中文手册的镜像http://www.coollittlethings.com/subversion/。不知道为什么官方的(www.subversion.org.cn/)不能访问。
开始正题:
1. 把本地项目testsvn整个目录里的内容往备份站点塞, 这是最初的结构, 建立最初的rev 0
以后checkout回来同样是按该路径,把目录下的(不包括最后的目录名)文件取回
svn import testsvn svn://path/to/repos -m "最后的这个注释不能少"
2. 取回项目, 路径同上. 最后取出来的新目录名不给定就会用最后路径的最后一个目录名, 这里就是repos目录
svn checkout svn:///path/to/repos A_NewProjectName
3. 更新本地项目. 千万记得,通过第一步import后的那个目录并没有默认建立svn与远程的关系,需要手动从服务器checkout回服务器的版本到本地, 才算正式建立与远程的关系(什么关系? 复杂关系!). checkout回来的项目就可以时不时地执行:
svn update
4. 搅和取回来的项目一番后,察看动了什么(一下命令都要在项目目录下运行)
svn status
5. 你对目录结构的修改或添加删除文件等类操作不能自动commit, 需要根据svn status显示的提示将文件/目录 明确 告诉svn是add, delete, copy 还是move
svn add new_dir
svn delete new_dir
6. svn status仅仅显示最根本的信息,更多的改动变化通过这个获得:
svn diff
7. 提交你涂污后的大作:
svn commit
温馨提示: 你可以本地建一个服务器来玩玩,
svnadmin create g:/repos
记得把g:/repos/conf目录下的passwd和svnserve.conf里的注释去掉, svnserve.conf里要改为
[general]
password-db = passwd? # 这个表示我要用目录下的passwd文件当作访问密码设置
passwd里要加上用户名
[users]
thisis = userpwd
之后,你就可以通过file:///g:/repos来访问.
或者, 由svnserve -d -r g:/repos 建立本地svn协议服务器,然后通过svn://localhost/来访问
你总是可以通过svn list svn://localhost/来察看服务器该路径下的内容. 然后通过svn checkout 把路径目录下的内容(不包括最后路径目录) 取回到 "./最后路径名/"目录下.
我的subversion端口号是改过的,为2401,我就把svn.root=svn://localhost:2401/repos
但是启动TOMCAT,会出现
2007-02-12 14:10:57,919 ERROR [plugin.ext.subversion.SubversionManagerImpl] Conn
ection to Subversion repository svn://localhost:2401/repos failed: org.tmatesoft
.svn.core.SVNException: svn: Malformed network data
org.tmatesoft.svn.core.SVNException: svn: Malformed network data
??????? at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorMana
ger.java:43)
??????? at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readChar(SVNReader.j
的错误
得改为你现在工程的URL
svn.root=http://localhost:2401/svn/ocmsnc/truck
还有登陆SVN的帐号密码
svn.username=admin
svn.password=admin
要不会出现 2007-02-12 14:26:55,827 ERROR [plugin.ext.subversion.SubversionManagerImpl] Conn
ection to Subversion repository http://localhost:2401/svn/ocmsnc/truck failed: o
rg.tmatesoft.svn.core.SVNAuthenticationException: svn: Authentication required f
or /’
org.tmatesoft.svn.core.SVNAuthenticationException: svn: Authentication required
for /’
??????? at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorMana
ger.java:41)
??????? at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.findStartingProperties
ubversion 错误:
error while creating module:org.tigris.subversion.javahl.clientException:svn:malformed network data
解决办法,将SVN在Eclipse 下的配置改为JNI,而非纯Java
Subversive用了一个月然后扔了。感觉总是跟不上subversion的趟,subversion一更新它就爱出问题,有一次svn更新一个小版本subversive都出了个malformed network data的异常。
现在就subclipse了,一直狠和谐
subversive貌似加入eclipse foundation了吧?早先看的时候还在写proposal阶段。