-
Notifications
You must be signed in to change notification settings - Fork 20
Svn
目录 start
目录 end|2020-04-27 23:42|
传统的中心化版本控制工具,能够精确控制每个目录的权限, Apache顶级项目
SVN 官网 | SVN中文网 Subversion 与版本控制 书籍
svn 不能提交单个文件里的部分提交, 要么就整个文件提交, 要么不提交, git则可以
安装 svnadmin
参考 建立一个仓库
svnadmin create /yc/svn/rep-ops
- 备份 svndump /svn/repos > a.dump
- 恢复 svnadmin load /svn/repos < a.dump
- 增量备份
svnrdump dump http://192.168.10.200/svn/test/ --username kuangchengping --password 123456 -r 3:4 --incremental > b4.dump
- 恢复
svnrdump load http://192.168.10.200/svn/test/ --username kuangchengping --password 123456 < b4.dump
Ubuntu
sudo apt install subversion
安装后可使用的命令就是svn
-
下拉代码
svn co URL
-
svn add filename
, 或者*.java
是添加当前目录下java文件, - 或者 文件夹, 一般使用文件夹好点,也就是src目录
- 强制添加所有文件
svn add * --force
- 将改动的文件提交到版本库
svn ci -m "update"
- 因为是中心化的仓库, 所以提交就是推送到总仓库了, 不像Git那样先提到到本地仓库, 然后推送至远程仓库
-
更新本地代码
svn up
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
-
删除文件
svn remove|rm path
svn:ignore 和 svn:global-ignores
- 作用范围
- svn:ignore:只对当前目录有效;
- global-ignores:是全局有效,就是所有目前都有效;
- 配置方式
- svn:ignore:必须在项目的每个工作目录都要设置;相同配置时,优先级高于全局的
- global-ignores:只需要配置一次;
-
svn propedit svn:ignore 项目文件夹
会打开默认配置, 和gitignore一样的配置, 然后保存即可- 文件夹就是项目, 所以要在项目根目录的上级目录执行这条命令
- 如果上面没有调起编辑器, 就要在 .bashrc 中
export SVN_EDITOR=vim
-
然后提交到仓库( svn co -m "xxx" ), 即可完成 忽略文件的配置, 为了可见性, 一般和.gitignore一样的配置即可
- 导入忽略文件
svn propset -F .svnignore .
- 导入忽略文件
部分提交 参考
- 提交指定文件以及目录
svn ci readme.md src/* -m "1.update readme 2.add src change"
-
svn ci -m "msg"
提交所有已添加到版本库的操作(新建, 修改, 删除)
-
svn log | less
这样能更为方便和干净 -
svn cat -r 版本号 文件
输出某个版本的某文件(文件必须在本地存在) -
svn diff -r 版本号:版本号 文件
对比两个版本的某文件
svn st
冲突的产生: 因为多个开发人员进行修改了同一个文件夹(修改,删除文件夹), 同一个文件.
多个开发人员修改了同一个文件夹, 并且一方修改, 一方做了删除
- 标记冲突已解决(使用本地的状态, 本地该文件的状态是Delete, 提交后服务端对应的文件就会被删除)
svn resolve --accept=working file/dir
svn update
svn merge -r 100:99 .
svn ci -m "rolled back to r99"
- svn co URL
- /tree/master/ 换成 /trunk/
- /tree/master/ 换成 /branches/branchname/
删除认证信息
rm -rf ~/.subversion/auth
- 表现: IDEA 报错 uncongnized character scheme in 2019-01-03_15:25:42.log
- 后果: svn 所有操作都无响应, 相当于 idea的 svn 功能废了
- 解决方案: 直接删除 .svn 目录, svn co 另一个目录, 把那份 .svn 目录拿过来
- 分析: 很有可能文件名, 或者日志内容具有 svn 不认识的编码, 导致的问题
-
【 Algorithm 】
-
【 Blog 】
-
【 C 】
-
【 Database 】
-
【 Distributed 】
-
【 FrontEnd 】
- 【 FrontEnd/Frame 】
- 【 FrontEnd/Node 】
- Font
- Hexo
- JavaScript
- LearnPS
- ResponseCode
- SVG
- ViewSolution
- extjs学习笔记
-
【 Functional 】
-
【 Go 】
-
【 Groovy 】
-
【 Java 】
- 【 Java/AdvancedLearning 】
- 【 JavaBasic 】
- 【 JavaCache 】
- 【 JavaCollection 】
- 【 JavaConcurrency 】
- 【 JavaMap 】
- Annotation
- ClassFile
- Collection
- Concurrency
- Deploy
- Exception
- ExtendsAndInterface
- Generics
- IO
- JDBC
- JDKAndJRE
- JMX
- JVM
- Java11
- Java7
- Java8
- JavaNetwork
- JavaReleaseVersion
- JavaWeb
- JvmPerformance
- MQ
- MultipleLanguage
- Proxy
- Reflection
- Serialize
- SyntaxAndType
- Thread
- WebPerformance
- 【 Java/Android 】
- 【 Java/Ecosystem 】
- 【 Java/MSA 】
- 【 Java/Spring 】
- 【 Java/TemplateEngine 】
- 【 Java/Test 】
- 【 Java/Tool 】
- 【 Java/thread 】
- AlibabaJavaStandard
- DesignPattern
- HashMap解析
- Java-NIO
- Java虚拟机
- Log
- MIS
- Quartz
- RESTful
- WebSocket学习笔记
- ZooKeeper学习笔记
- android学习笔记
- 【 Java/AdvancedLearning 】
-
【 Kotlin 】
-
【 Linux 】
- 【 Linux/Alpine 】
- 【 Linux/Arch 】
- 【 Linux/Base 】
- 【 Linux/Centos 】
- 【 Linux/Container 】
- 【 Linux/Debian 】
- 【 Linux/Tool 】
- JavaDevInit
- Linux系统学习
-
【 MyBlog 】
-
【 Python 】
- 【 Python/Tool 】
- Python
- PythonConcurrent
- PythonGUI
- PythonGame
- PythonNet
- PythonOffices
- PythonWeb
- Python基础
- Python核心学习
-
【 Reactive 】
-
【 Rust 】
-
【 Scala 】
-
【 Script 】
-
【 Skills 】
- 【 Skills/Application 】
- 【 Skills/CS 】
- 【 Skills/Cache 】
- 【 Skills/Councurrency 】
- 【 Skills/DevOps 】
- 【 Skills/Document 】
- 【 Skills/Ecology 】
- 【 Skills/Network 】
- 【 Skills/Search 】
- 【 Skills/SoftwareEngineering 】
- 【 Skills/Spider 】
- 【 Skills/Test 】
- 【 Skills/Vcs 】
- 【 Skills/Work 】
- AppManual
- CelebrityQuotes
- Miscellaneous
- Platform
- Problem
- Protobuf
- RegularExpression
- SoftwareDesignEngineer
- Website
-
【 Windows 】