关联本地project到server
前提:svn服务器仓库已创建,得到仓库URL。
配置IDE的忽略配置(初始关联和提交时IDE忽略配置,不是远程仓库的忽略配置)
PS:提前配置(所有的build.idea.gradle目录都需要忽略)
关联project到svn服务器(创建Project目录)
点击share project
配置服务器地址
这里我的仓库已经创建了branchs,tags,truck三个目录。所以这里之间关联到truck目录下的SVNTest目录。填写提交日志(创建project目录),点击share开始关联
选择SVN版本,我这里是1.8.点击OK。
开始关联:
关联完成
此时服务器生成SVNTest空目录
本地Project视图状态:绿色为新增,黄色为忽略。
配置服务器仓库的忽略属性
在Project视图选中SVNTest目录右键
配置服务器的忽略属性:
*.iml
.gradle
.idea
build
local.properties
.DS_Store
captures
记得打上update projecties recursively选项,递归配置子目录文件。
小技巧:新建或者导入module时重复此操作可以将生成的build目录自动加入忽略管理
(如果不配置这个步骤,其他人从服务器checkout下来代码以后,编译生成的这些无关文件,可以选择不添加到版本控制也可以。不加入版本控制,显示红色)
提交本地Project到服务器
这里由于是第一次提交所以全是新增文件。
另外一种:
加载中:
提交对话框:(红框选中的如果选中,点击完commit会发现没反应,需要你检查代码,初始提交可以去掉)
提交完成会在底部VersionControl视图弹出通知
PS:VersionControl视图可以查看文件状态,提交,
重新关联
如果由于某种原因想重新关联,可以将project目录下的.svn目录删除,然后在Setting—Version Control里将project的版本控制设置删除。然后重新执行关联操作。
从服务器Checkout代码到本地
Checkout入口
或者在Studio界面里
配置服务器地址与用户密码
会询问是否信任该地址,确定后,弹出用户名帐号,密码界面:
选择Checkout路径,输入正确后,双击地址加载出有权限访问的目录,选中对应的project,点击checout,会询问checout到那个路径下,选择即可。
Checkout选项,接着会询问你准备checout到所选路径的那个目录里,方便起见,选择第二个即可。
checkout的版本默认为最新版本,也可以选择特定版本。depth为检出深度,选择其他默认infinity全目录检出即可。
接下来同样选择svn版本。(建议团队使用相同版本)
checout完成:
打开Project
由于提交的时候忽略的.gradle目录和.idea目录(因为每个人的配置可能不一样),所以需要你配置gradle信息。根据个人情况配置即可。
点击OK,开始构建项目。
构建完成以后,编译运行一下。可以看到编译生成的文件已经变成黄色,自动被忽略。因为此时服务器的忽略配置也更新了下来。
文件状态
绿色:新增
红色:未加入版本控制
蓝色:被修改
白色:未改变
常规操作
提交
错误:如果本地version低于服务器,直接提交则会报错。此时需要先更新,再提交。
更新
更新整个project,或者某个目录右键subversion—update directory更新目录。
默认都不勾选则更新到最新版本,点击OK更新。
如果更新时本地代码与服务器有冲突则会弹出:
合并
点击Merge会有合并窗口,不同的改变会有不同的颜色。
合并以后保存,标记merge完成。本地version已经是最新。可以提交了。
如果提示merge的窗口关闭了,可以通过右键菜单再次发起处理冲突操作和标记已处理。
对比
在某个文件中右键可以:
查看文件version,与服务器相同version(改动前)进行对比,与服务器最新版本对比,与某个特定版本对比,与某个分支对比。
比如与服务器最新版本对比,差异会高亮显示,操作方式:
按下ctrl变成斜箭头
:代表服务器差异代码插入到本地代码中
注意事项:
勤更新,尽量保证本地version代码是最新版本。
提交前一定要找相关的人Review!一定要Review!一定要Review!
其他
1.修改服务器地址
2.清除帐号信息,重新登录
3.更多功能,静候大家去摸索。