一、Android Studio配置SVN
Android Studio关联配置SVN非常easy,在Settings里面。找到Version Control->Subversion。在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装文件夹,选到"\svn.exe"就可以;
在Use command line client以下另一个Use system default Subversion configuration directory,这个默认是勾选上上的,这个是svn相关配置信息的路径,保留默认路径即可,眼下没有发现须要改动什么东西;以上操作例如以下图:
二、Android Studio项目关联SVN资源库及加入忽略文件
在Android Studio中新创建一个Android项目,成功后我们先来加入要忽略的文件;在Android Studio中加入忽略文件同Eclipse有所不同。在Eclipse上我们什么时候加入忽略文件都能够。可是在Android Studio中仅仅有在未关联SVN之前加入忽略文件才有效(试了好多次才将忽略文件忽略成功啊!
)。Android Studio加入忽略文件相同是在Settings->Version Control(跟版本号控制有关的设置都在这个文件夹下)下的Ignored Files里,点击加号进行忽略文件的设置。Android
Studio默认给出了三种忽略方式,供开发人员进行选择:忽略指定的文件、忽略目录下全部文件和忽略符合匹配规则的文件;如图所看到的:
点击右側的“+”进行加入。“-”删除。Android Studio创建的Android项目一般须要忽略.idea目录、.gradle目录、全部的build目录、全部的.iml文件及local.properties文件。
忽略完文件后,我们进行项目同SVN的关联。选择VCS->Import into Version Control->Share Project(Subversion);这里说明一点,在Import into Version Control下有Import into Subversion和Share Project(Subversion)两个选项【在studio 1.3已经没有第二个选项了仅仅有Share Project on GitHup】:第一个是直接将项目导入到SVNserver上,可是这样做本地的项目同SVNserver没有建立起关联,在导入后项目全部的文件都会变成红色,并且在要提交到SVNserver时会提示项目不是SVN下的工作副本。第二个是将Android
Studio当前项目同SVNserver关联起来,可是并没有将项目导入到SVNserver上,须要在完毕建立连接后再次提交项目到SVNserver。两种方式都能够实现将本地代码提交到SVNserver的功能,可是步骤有所不同。先来完毕另外一种方式的项目同SVN的关联及代码提交。第一种貌似不正规。之后再说;下图既是另外一种方式将本地项目同SVN进行关联的:
之后会弹出选择要分享的SVN地址及其它选项,例如以下图:
在Define share target下选择第二个能够再trunk下创建你当前项目的目录,对应的第一个选项是直接将整个文件都放到trunk目录下,第三个在项目目录下有创建了一个trunk目录,因此建议使用第二中方式;选择完毕后点击Share就能够了,会弹出让你选择SVN工作副本的格式化版本号(jdk版本号)。例如以下图:
建议选择1.8format,我之前选择了其它的试了一下,发现项目总会报出一下错误,原因临时未发现,就先这样选择吧;点击OK等待一会就能创建本地项目同SVNserver的关联了;成功懊悔自己主动刷新本地的项目。待项目里的内容变成绿色的即表示已经成功了,例如以下图所看到的:
到眼下为止仅仅是将项目同SVNserver建立了联系。并没有将代码提交到SVNserver上去;怎样提交呢,事实上非常easy,仅仅需点击SVN相关操作button里的commit即可了(上图SVN相关操作button左起第二个button);
点击Commit后Android Studio会先对当前代码进代码分析,假设有错误或者警告会弹出例如以下的框。假设有错误冲突等须要解决后再提交,假设是警告能够忽略(同Eclipse同样)。第一次将整个代码提交到SVNserver时时间有可能非常长,请耐心等待,之后再创建项目时就不会这么慢了。
成功后我们就完毕了新建项目同SVN的关联及导入项目到SVNserver上了。
关于第一种方式。在将本地代码导入到SVNserver后将本地代码删除,然后从SVNserver上将之前提交的代码更新下来,这样一来也能够同SVN建立关联正常进行开发;第一种方式和另外一种方式的差别就在于:第一种是将代码先提交到SVNserver上,然后再从SVNserver上更新下来(本地项目同SVNserver建立联系)。另外一种是先同SVNserver监理联系。然后将代码提交到SVNserver上去。建议使用另外一种方式进行新项目的SVN关联。
在我的studio1.3版本号里面没有share project(subvision的)仅仅能选择直接导入项目到server:
加入server仓库:导入项目到server一路next就能够啦!
导入成功后本地项目就好和server关联起来:
略微改动下布局看看是否关联測试下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
到Commit Changes 这里有几个选项须要了解的:
Auto-update after commit :自己主动升级后提交
keep files locked
:把文件锁上,我想这应该就仅仅能你改动其它开发人不能改动不了的功能在你提交之前:before commit
Reformat code:又一次格式化代码
Rearrange code:又一次整理代码
Optimize imports:优化导入
Perform code analysis:运行代码分析[ 默认选择]
Check TODO(show all):检測须要改动的代码[显示全部默认选择]
clean up: 清除全部
Update copyright:更新版权
详细看情况选择功能点:比方不想其它人改动这些代码能够选择keep files locked
在Commit Message 加入改动信息
改动成功:
在commit button以下另一个是create patch这个选项试一下其作用:
应该明确是创建一个补丁文件基本的作用就是能够查看改动的地方:
三、Android Studio SVN代码冲突的解决
关于代码冲突解决的问题,首先要感谢一下知友ShinChven的回答建议。在使用SVN更新server上的代码时,有时会弹出代码冲突的对话框,问你是否进行合并。并提供了三种合并方案:accept yours(使用你的)、accept theirs(使用别人的)和merge(合并);
前两个都是进行的覆盖操作,就不多做解释了。当你选择merge合并时,会弹出代码合并对比窗体,一共同拥有三个屏,左右两側时你和server不同的代码并高亮显示不同的部分,带有箭头和叉号。通过点击箭头将两边冲突的代码加入到中间的合并区域中去,点击叉号则辨识放弃那一段代码。待全部冲突处理完毕后merge就成功了。
Checkout SVN上的项目
选择subversion
导入项目到SVNserver,
Import into 选择subversion
点击 加入服务地址比如
浏览SVNserver上的项目目录
SVN仓库会显示文件列表
其它说明
单文件 签入当文件,右键subversion Add
文件红色:表示文件没有加入到server
绿色:表示没有更新新的改动到server
普通黑色:表示和server同步
目录颜色说明
參考 :http://blog.csdn.net/niu_hao/article/details/6774471
黄色感叹号(有冲突): --这是有冲突了,冲突就是说你对某个文件进行了改动,别人也对这个文件进行了改动,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不 同意你提交,防止你的提交覆盖了别人的改动。要解决冲突,假设你确认你的改动是无效的。则用TSVN还原你的改动即可了;假设觉得你的改动是正确的。别人 的提交是无效的。那么用TSVN先标记为“解决冲突”,然后就能够提交了;假设你觉得你的改动和别人的改动都有一部分是有效的。那么你就把别人的改动手动 合并到你的改动中,然后使用TSVN标注为“解决冲突”。然后就能够提交了。
进入目录。寻找有黄色感叹号的文件,这些文件就是发生冲突的地方。依据实际
情况处理冲突 米字号(有本地改动代码): --这是说明你有未提交的本地代码。
问好(新增加的资源): --这说明该文件是项目中新增文件资源。新增资源能够是文件、图片、代码等。
红色感叹号(本地代码与库没有保持一致): --这说明本地代码跟库上没有保持一致。假设用户想修复,能够将带红色感叹号图标文件删除,直接update就可以。 灰色向右箭头(本地改动过) --本地代码没有及时上库。
蓝色向左箭头(SVN上改动过) --记得更新代码后改动。提交前跟svn对照习惯。
灰色向右且中间有个加号的箭头(本地比SVN上多出的文件) --改动完记得跟svn保持一致 蓝色向左且中间有个加号的箭头(SVN上比本地多出的文件) --删除该文件后。再次更新,将svn上文件所有更新下来。
灰色向右且中间有个减号的箭头(本地删除了,而SVN上未删除的文件)
--也就是说你删除确认后,一定要记得上库,跟svn保持一致 蓝色向左且中间有个减号的箭头(SVN上删除了,而本地未删除的文件) --比对svn库上代码。确定须要删除后,更新svn(删除无用代码)。 红色双向箭头(SVN上改动过,本地也改动过的文件 ) --这个表示本地和svn上都改动过,最好就是把本地改动合并到svn,改动代码前最后先更新。
文件状态说明:
单个文件签入签出操作:右键subversion
Add,加入到server
Commit:提交
Update:更新,获取新版本号
Integrate:合并
注意:SVN和VSS不同签入前假设文件被其它人改动须要比較版本号怎样其它改动有效须要合并签入
整个项目更新提交:Commit ,Update
不知道是啥原因假设刚刚開始选择share project(subvision)的话,好像在选择commit的时候非常慢,始终上传不了绿色的部分代码:
所以我直接在本地:commit到server里面的