目前的公司居然用的 SVN, 好吧, 以前在 Windows 上用过, 找找怎么在 Mac 上用 😂😂😂
如果安装了 Xcode 就默认安装了 svn 直接使用吧
checkout到本地目录
checkout 简写为 co
1 | svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 |
添加新的文件
1 | svn add filename.xxx |
问题 E200009
1 | bogon:ARdemo syc$ svn add . |
添加 force
svn add . --force
忽略文件
全局
配置忽略文件 vi ~/.subversion/config
如果 .subversion
目录不存在,请运行 svn status
命令,虽然此命令会失败,但是会为你创建所需要的文件。
找到 global-ignores
一行,去掉注释,并编辑
单个文件
设置编辑方式 export SVN_EDITOR=vim
终端输入 svn propedit svn:ignore filename
使用 vim 打开一个文件,编辑保存
我操作失败 😂😂😂
bogon:RigourWechat syc$ svn propedit svn:ignore project.config.json
No changes to property ‘svn:ignore’ on ‘project.config.json’
bogon:RigourWechat syc$ svn propedit svn:ignore project.config.json
svn: E200009: Cannot set ‘svn:ignore’ on a file (‘/Users/syc/Documents/svn/01源代码/RigourWechat/project.config.json’)
提交
commit 简写为 cisvn commit -m "注释" filename.xxx
如果选择了保持锁,就使用 -–no-unlock
开关
*
表示全部文件
1 | svn commit -m “提交当前目录下的全部在版本控制下的文件“ |
还原本地修改
svn revert [-R] filepath
恢复原始未改变的工作副本文件 filepath可以是准备回滚的文件、目录,如果想把某个目录下的所有文件包括子目录都回滚,加上 -R
选项。
更新
svn update
删除
先本地删除,后提交
svn delete file.xxx
svn ci -m "delete file"
查看状态
svn status [path]
lock
1 | svn lock -m “加锁备注信息文本“ [--force] 文件名 |
日志
svn log file.xxx
文件信息
svn info file.xxx
比较
svn diff file.xxx
将修改的文件与基础版本比较svn diff -r 200:201 file.xxx
(对版本200和版本201比较差异)
解决冲突
更新文件冲突
bogon:01 syc$ svn update
Updating ‘.’:
U xxx/xxx.xx
C aa/aa.json
Updated to revision 18403.
Summary of conflicts:
Text conflicts: 1
Conflict discovered in file ‘RigourWechat/app.json’.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
(mc) my side of conflict, (tc) their side of conflict,
(s) show all options: p
Summary of conflicts:
Text conflicts: 1
1 | 输入p:稍后解决,新增3个文件(.mine / .rxxx / .rxxx) |
如果忘记有哪些冲突,使用 svn resolve
查看
解决冲突后执行 svn resolved file.xxx
移除工作副本的目录或文件的“冲突”状态. 再次提交.
合并
svn merge -r 200:205 file.xxx
将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下
参考