1.Subversion是架设一个SVN server 必要的工具,自己必须手动配置Subversion 脚本或者执行命令行命令.最后通过命令行输入访问svn server. 这是没有TortoiseSVN前的时代.
2.TortoiseSVN是Subversion一个客户端访问工具,灵活的运用TortoiseSVN 可以最大化的减少配置Subversion 烦琐的命令行 参数输入.
3.安装时Subversion版本要大于等于TortoiseSVN的版本。否则可能会出现导入时提示错误:期望文件系统格式在“1”到“3”之间;发现格式 “4"。
4.执行“diff with previous version”时,如果还没有前一个版本,会报“版本库位置不在版本8中”正常错误。
5./.svn/entries文件中记录了本项目文件在svn中存的位置,所以重装svn服务程序可以不用重新配置应用。
6.http://code.google.com
参考 http://ajava.org/course/manage/13141.html
项目托管步骤:
在www.google.com的更多里找到code,然后点Project Hosting(项目托管),点Project Hosting on Google Code或Eclipse Labs,点Sign in to create a project,登录后,点Sign in to create a project ,按照向导创建你的项目,要注意的是Project name,这一项是将来项目域名的一部分,不要有空格在字母或数字之间,并且它要求只能是小写字母。这样项目就创建好了,点击右上角的【profile】,这时创建的项目显示出来了。
上传前,把不要上传的文件名,或后缀在常规设置的忽略中添加,上传时选择项目文件夹上传。
上传时要认证,和google帐户的密码不同,登录名都是电子邮件地址。
然后,新建一个文件夹,进入文件夹,使用和上传时一样的地址,检出。
7.property/java build path/source/exluded/edit/exlusion patterns/add/ 增加**/.svn,增加**/.svn/** 以解决src下的.svn被编译到bin下的问题。
8.拷贝项目文件项,注意要删除掉其中的.svn文件,.svn文件可能是隐藏的。
9.svn服务器地址更改时,
把工程中的.svn文件夹全删除掉,然后在工程根目录内执行check out, 版本库地址为https://192.168.1.12:7000/svn/xx_android/trunk,检出至目录D:/e_workspace/xxAndroid
检出过程会,svn会执行对比操作,不会覆盖。
10.本地的svn D:/SvnRepository,svn地址使用file:///D:/SvnRepository/项目名
启动svn服务:svnserve -d -r D:\svnRepository
创建一个库:新建SvnRepository目录,进入,右键Create resository here。
11.TortoiseSVN是客户端,分为win32,x64版本。Subversion是服务端。
12.在xcode中报:scm error locked,Attempted to lock an already-locked dir 错误时,使命令行用“ svn cleanup /Users/x_workspace/工程目录” 解决
13.如果在同一个Repository内,即Repository未发生变化,只是版本库的内部路径变化了,使用Switch功能,切换到新的路径上。此时如果使用了Relocate功能,会报Relocate can only change the repository part of an URL。
如果Repository更名了,或者Repository被移动到了另一台服务器上,则要使用Relocate功能。
14. SVN简易使用手册
svn resolved
svn delete 本地filePathNameOrPath
http://blog.csdn.net/kceiw/article/details/2305748
http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn
http://blog.163.com/xue_huashan/blog/static/8044800420111114523154/解决Google Code Settings无法访问的问题
http://blog.163.com/xue_huashan/blog/static/8044800420111114523154/
15.提交数据,服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKACTIVITY” 的请求
使用http://开头的地址,能够正确的从googlecode上update。不过提交得用https://开头的地址。
若使用的是TortoiseSVN,在右键中Relocate中修改地址。
执行snv import也可能会出现405,可能因为服务器上已经存在了相同的上传的文件。
16.svn与gif
http://blog.sina.com.cn/s/blog_7c336a8301014gvs.html
gif比svn具有很多优越性,有一种情况,SVN具有的悲观锁的功能,能够实现一个用户在编辑时对文件进行锁定,阻止多人同时编辑 一个文件。这一悲观锁的功能是 Git所不具备的。对于以二进制文件 (Word文档、PPT演示稿) 为主的版本库,为避免多人同时编辑造成合并上的困难,建议使用SVN做版本控制。
17.嵌出指定版本的工程
svn checkout 工程http地址 -r 版本号
如: svn checkout http://.../project1 -r 8321
18. svn diff -r xxxx:xxxx
19.导入
例如:将本地目录myproj导入到版本库的trunk/misc,trunk/misc在导入之前不需要存在,svn import会递归的创建目录。
svn import -m "New import" myproj http://svn.red-bean.com/repos/trunk/misc
这样会把myproj目录下的文件导入到/trunk/misc下,不会创建myproj目录。
并且在导入数据之后,本地的myproj目录并没有纳入版本控制,为了开始工作,要运行svn checkout得到一个干净的目录树工作拷贝。
svn import -m "import libs" libs https://xxx.googlecode.com/svn/trunk/xxx/KxxxX/libs
svn import -m "import" controller https://xxx.googlecode.com/svn/trunk/re...../controller/
20.svn ls 列出当前目录下的文件
svn list httpPath
21.
命令行下,提示 "svn: Commit failed (details follow): svn: '/***/xxx.c' is scheduled for addition, but is missing"
用RabbitSVN,图形界面下提示 "/xxx/xxx.c is not a working copy"
原因:之前用SVN提交过的文件,被标记为"add"状态,等待被加入到仓库。若此时你把这个文件删除了,SVN提交的时候还是会尝试提交这个文件,虽然它的状态已经是 "missing"了。
解决:在命令行下用 "svn revert xxx.c",在图形界面下,右键--Revert,选中那个文件。这样就告诉SVN把这个文件退回到之前的状态 "unversioned",也就是不对这个文件做任何修改
22.查看某个文件内容
svn cat http://[email protected]:8080/svn/tianya_wireless/tianya_iphone_client/TianyaQing/Classes/controller/qing/WeiboDetailViewController.m --revision 8927
23.嵌出某版本
svn checkout http://[email protected]:8080/svn/tianya_wireless/tianya_iphone_client/tianyaClient --revision 9754
24.svn: Commit failed (details follow):
svn: Aborting commit: '/Users/gzty1/x_workspace/TianyaQingV2/TianyaQingV2/skin' remains in conflict
解决:svn resolved /Users/gzty1/x_workspace/TianyaQingV2/TianyaQingV2/skin
25:svn: Checksum mismatch for 'skin/day/Config.strings'; expected: '9c27473a8d51d9c539016f48b62ec9a5', actual: '7d9b541562af1efe325d58e4f80125c6'
可能要修改.svn中的entries,或者重新checkout
26.将静态库文件上传到svn
不用Xcode自带svn,用命令行
svn add libaaa.a
svn commit -m "add static lib libaaa.a"
27.对比文件修改内容
svn diff -r 12679:12680 MicroForumMainViewController.m
28.创建目录 svn mkdir
若要在工作副本中创建新目录,键入:
svn mkdir PATH
若要在项目存储库中创建新目录,键入:
svn mkdir URL
PATH 或 URL 的最后一部分决定目录名称。在立即提交时在存储库中创建目录,所以还需要一条提交信息
--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --force-log, --config-dir DIR
29.直接操作版本库
svn mkdir https://.../svn/trunk/A 创建A目录
svn copy https://.../svn/trunk/A https://.../svn/trunk/B -m "" 会在B下创建A目录
svn delete https://.../svn/trunk/A -m "" 删除A目录
30.