SVN版本控制
一、简介、下载
SVN是版本管理工具。
服务端:VisualSVN-Server-3.4.2-win64
客户端:TortoiseSVN-1.9.2.26806-x64-svn-1.9.2
下载:https://pan.baidu.com/s/1YoMPblPJWif703-59JfpJQ
团队开发,从SVN服务端拉项目 使用TortoiseSVN 在桌面右击,SVN Checkout 选择存放路径
AndroiStudio配置忽略
.idea文件夹、
.gradle文件夹、
所有的build文件夹(Directory:build/和Directory:app/build/)、
所有的.iml文件(Mask:*.iml)
及local.properties文件。
android studio中断开SVN连接,并彻底清理项目中的.svn文件
打开我们的工程目录,定位到.idea目录下,找到vcs.xml使用记事本打开,
将VCS=“svn”改为VCS=“”即可
然后我们再使用android studio工具栏中得VCS工具即可重新share到subversion了。
然后,彻底清理项目中的 .svn 文件:
经过第一步处理以后,虽然使项目断开了SVN连接,但是项目中的 .svn文件并未
清理掉,这个可能会给项目再次上传到SVN造成严重问题。
步骤如下:
1、在桌面建立一个文本文件,取名为clean-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文件(注:双击注入时有些杀毒软件会报木马,忽略即可)。
2、然后找到你需要断开连接的文件夹,右键点击找到“Delete SVN Folders”的
选项,点击之后,既可以删除这个文件夹下所有的.svn文件了。即断开了和SVN服务
器的连接
二、SVN配置
1、步骤
新建Repository Create new repository
2、安卓Eclipse 添加SVN插件:(通过链接添加)
菜单栏Help -> Install New Software -> Work with
MyEclipse添加插件(通过链接添加)
方法一:Help -> Install from... site -> Work with -> Name
方法二:
步骤1: Windows -> 首选项 -> General -> Capabilities -> 勾选Classic Update -> 点应用、确定
步骤2:菜单栏Help -> 点击software那项 -> Work with -> Name
3、ADT插件
步骤1:在Eclipse安装目录dropins\添加ADT插件
步骤2:Window -> Customize Perspective -> Shortcuts -> 勾选Android Application Project
三、SVN常用操作
总述:Eclipse操作在Team下
文件夹操作在TortoiseSVN下,还有SVN Update、SVN CheckOut
1、上传项目 Share Project
2、忽略
1)一定要把bin和gen目录添加到SVN忽略列表中。
2)在Eclipse中设置build path让其忽略.svn文件夹
菜单栏Project -> Properties -> Java Build Path -> Source -> xxx/src-> Excluded,双击或点右边的编辑,在Exclusion patterns中加入“ **/.svn/** ”,忽略.svn目录。
3)每次上传最好清空bin和gen目录下所有文件
4)设置SVN忽略文件和目录(文件夹)
步骤1:window -> 首选项 -> Team -> Ignored Resources
(添加 .settings、.class、target、.DS_Store、*.iml、.idea)
点击 Add Pattern添加。
步骤2:选中尚未加入版本控制的文件或目录,右键 -> Team -> 添加至SVN:ignore
会出现一个子菜单,允许你仅选择该文件或者所有具有相同后缀的文件。
如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN从忽略列表删除。
3、Checkout检出
右击SVN Checkout设置URL of repository、Checkout directory、
Checkout Depth下Fully recursive、HEAD revision
4、把一个项目文件夹发布到SVN服务器上
右击项目 -> Team -> Share Project -> Select a repository type选SVN
-> 选择“创建新的资源库位置”或“使用已有资源库位置”-> “使用项目名称作为文件夹名”
5、添加文件或文件夹
操作1:文件夹下
添加 TortoiseSVN下add
提交 SVN Commit
还原 TortoiseSVN下Revert
更新 SVN Update
操作2:Eclipse下
直接添加 右键点击项目 -> Team -> 提交或进行还原、更新操作
文件夹下把一个项目文件夹发布到SVN服务器上
6、历史版本
操作2:Eclipse下 Team -> 显示资源历史记录
切换到其它版本 Switch to Revision
7、建立分支
操作1:文件夹下 TortoiseSVN下Branch/tag...
操作2:Eclipse下 Team -> 分支/标记
8、合并
操作1:文件夹下 TortoiseSVN下Merge
操作2:Eclipse下 Team -> 合并 -> 勾选Merage a range of revisions
-> Update -> Merge from(指定合并内容) -> Select
9、切换
操作1:文件夹下 TortoiseSVN下Switch
操作2:Eclipse下 Team -> 切换
10、冲突
两者修改相同,后者先更新再提交
修改不同,手动选择后提交。
11、备份 TortoiseSVN下Export 备份项目
12、锁定
锁定 TortoiseSVN下Get Clock
解除锁定 TortoiseSVN下Release Clock
问题
一、什么是版本控制,说出常见的版本控制系统及区别。
1、常见的版本控制系统:CVS 集中式、SVN 集中式、Git 分布式、Github 托管社区。
2、区别:
1)分布式不用联网提交。
2)SVN与CVS优缺点中速度的比较,CVS比较慢。
3)SVN与CVS优缺点分析中元数据比较。CVS只允许存储文件。
4)github与git优缺点 在客户端实现了GUI上的简单易上手 , web端上实现了社区交互。
二、SVN与Git异同。
1)SVN不是分布式的;Git是分布式的。
2)SVN把内容按按文件方式存储;Git把内容按元数据方式存储。
3)SVN有全局版本号;Git没有。
4)Git的内容完整性要优于SVN。
5)SVN下载后在离线状态能看不到所有的Log;Git可以。
6)SVN必须先刷新才能提交,忘记合并或出现错误;Git出现这种情况比较少。