近三年没有使用过SVN,只因换工作需要维护老项目,故在此记录
持续补全
首次配置
查看项目的SVN对应地址与项目结构目录
关于查看项目的svn地址方式有俩种场景,一种是本地未有与SVN绑定的项目,一种为本地已有与SVN绑定的项目
场景1:本地未有与SVN绑定的项目
目标文件夹 - 右键 - TortoiseSVN - Repo-browser
(当然项目远端地址需要和对应人员要一下,但是如果目标磁盘有绑定过svn项目会自动提示输入的,可以搭个顺风车)
场景2:本地已有与SVN绑定的项目
目标文件 - 右键 - Subversion(有当前文件的svn 服务器地址)
SVN的整体项目结构
本地导入远端SVN项目
步骤1:目标磁盘 - 右键 - SVN Checkout
步骤2:将已知的项目的svn地址输入后,本地新建接收的文件夹即可
AndroidStudio - 查看项目的svn地址 以及修改 svn版本号
操作方式:File > Setting > Version Control > Subversion Working Copies Information
分支
新建分支
新建分支的过程就是从主分支copy一份代码到新的分支中 ~
步骤1:右键项目 - TortoiesSVN - Branch/tag
步骤2:选取被分支的项目;新分支的项目地址与名称 ~
注:新分支名不需提前在远端建立!否则会出现 “path”already exists 错误
步骤3:齐活完事儿,可以看下面的切换分支部分了
分支切换
步骤1:右键项目 - TortoiesSVN - Switch
步骤2:根据操作切换对应分支即可,切换完成后,打开项目及为新分支的代码
注:分支切换成功以后,虽然项目名称没有改变,但是查看属性,url已经变更
分之合并
步骤1:项目文件内右键 - TortoiseSVN - Merge…
步骤2:默认选取 - 直接Next即可 ~
步骤3:选取需要合并的分支和分支版本,也可以选取全部版本(生效内容会与所选版本挂钩)
步骤4:此处主要测试俩边分支合并后,更新和冲突部分 ~
步骤5:分支合并测试结果,有更新和冲突部分,同时提示有多处冲突警告 ~
课外补习
合并中如有冲突的话,会自动生成一些类似下方文件,具体示意如下:
file.py.merge-left.rxxx
显示了冲突左侧的合并结果file.py.merge-right.ryyy
显示采取冲突右侧的合并结果file.py.working
显示你的工作副本不变file.py
显示SVN试图合并两者
常见场景
回退到某个版本
方法一
步骤1:项目右键 → TortoiseSVN → Update to revision
步骤2:知道版本号的情况下直接选取Revision填写版本号, 反正我是从不记> < 所以直接Show log 走起~
步骤3:选取对应版本版本,点击右下角 ok ,然后版本就回去咯 - -
慎重 → 可以提前压缩一个当前项目的包,以备不时之需
方法二
步骤1:项目右键 - TortoiseSVN - Show log
步骤2:选取对应得版本号 - 右键 - Revcer to this version
步骤3:Revert
回退版本后,无法更新到最新版本
- Update to reversion - 最新版本 (如无效,下一步)
- Revert 重新拉取一下
服务器地址变更,客户端更改服务器地址
步骤1:(已绑SVN仓库的项目)右键 → TortoiseSVN → Relocation
步骤2:输入变更后的服务器地址
设置忽略文件,防止意外提交
方式一
步骤1:项目右键 - TortoiseSVN - Settings
步骤2:可先行常识修改红框内容为忽略文件,如果有效则无需看步骤3
步骤3:更改标红内的忽略文件,同时解开前方#注释
方式二
步骤1:项目右键 - TortoiseSVN - Properties
步骤2:选取New - Other
步骤3:选取global-ignores
步骤4:记录所需隐藏的文件或目录
- 常规
target
.idea
.settings
.project
*.iml
*.log
.classpath
*.class
- AndroidStudio
target
.idea
.settings
.project
*.iml
*.log
.classpath
*.class
.gradle
.idea
build
步骤5:设置好之后保存一即可
检验效果
因为选了全局忽略,所有子目录会继承忽略配置;进入子目录点击右键菜单TortoiseSVN->Properties
可以看到置灰的配置
课外补习
补习此项,主要源于我用过上方的俩种忽略方式,故此解决俩者区别的疑惑 ~
svn:ignore、global-ignores区别
区别 | ignore | global-ignores |
---|---|---|
定义 | 是 Subversion的属性,作用是忽略未版本控制的条目,要注意是“未加入版本控制的版本条目”,我们主要就是用它来忽略一些我们不想上传到版本服务器的文件或者目录 | 忽略未版本控制的条目,全局参数 |
使用方式 | 上面的方式一 | 上方的方式二 |
生效范围 | 只对当前目录有效 | 是全局有效,就是所有目前都有效 |
便捷性 | 必须每个工作目录都要设置,个性化配置 | 只需要配置一次,使用方便 |
更改已提交版本的备注信息
步骤1:项目文件夹内 TortoiseSVN → Show log
步骤2:选取对应 Revision 右键 Edit log message
步骤3:修改备注信息之后OK即可 ~