diff --git a/README.md b/README.md index 7b97cee..95e48b0 100644 --- a/README.md +++ b/README.md @@ -155,11 +155,12 @@ Quick Reference [Lsof](./docs/lsof.md) [Mitmproxy](./docs/mitmproxy.md) [Netcat](./docs/netcat.md) -[Sed](./docs/sed.md) [OpenSSL](./docs/openssl.md) [ps](./docs/ps.md) +[Sed](./docs/sed.md) [Systemd](./docs/systemd.md) [SSH](./docs/ssh.md) +[Subversion (SVN)](./docs/subversion.md) [Screen](./docs/screen.md) [Sysdig](./docs/sysdig.md) [Tmux](./docs/tmux.md) diff --git a/assets/subversion.svg b/assets/subversion.svg new file mode 100644 index 0000000..3521033 --- /dev/null +++ b/assets/subversion.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/subversion.md b/docs/subversion.md new file mode 100644 index 0000000..6d749b5 --- /dev/null +++ b/docs/subversion.md @@ -0,0 +1,220 @@ +Subversion 备忘清单 +=== + +本备忘单总结了常用的 [SVN](https://git-scm.com/) 命令行指令,以供快速参考。 + +入门 +--- + +### Subversion 组件 + + +名称 | 说明 +:- | :- +`svn` | 命令行程序 +`svnversion` | 工作副本的修订 +`svnlook` | 检查存储库 +`svnadmin` | 存储库管理 +`svndumpfilter` | 过滤存储库流 +`mod_dav_svn` | Apache 模块 +`svnserve` | SVN服务器(SVN协议) +`svnsync` | 镜像仓库 + + +--- + +- [Subversion 官方文档](https://subversion.apache.org/) + +### 添加文件或文件夹 + +```bash +$ svn add * +# 添加文件夹中的所有项目,然后递归(忽略版本目录) +$ svn add itemname +# 如果 itemname 是文件夹, +# 则所有子文件夹 并且文件也会被添加 +$ svn add * --force +# 强制递归到版本化目录 +``` + +### 将更改提交到存储库 + +```shell +$ svn commit "/path" +# 提交对文件或文件夹的更改 +$ svn commit -m "Message" "/path" +# 提交消息“Message” +$ svn commit -N "/path" +# 提交对文件夹的更改而不递归 +``` + +### Subversion 协议 + +协议 | 说明 +:- | :- +`file://` | 本地 +`http://` | HTTP (Apache) +`https://` | HTTPS (SSL) +`svn://` | SVN (svnserve) +`svn+ssh://` | SVN over SSH + + +### 删除、复制和移动 + +```shell +$ svn delete "/path" +$ svn -m "Deleting" delete "/path" +# 删除并显示消息“正在删除” +$ svn copy "sourcepath" "targetpath" +# 将源复制到目标 +$ svn move "sourcepath" "targetpath" +# 将源移动到目标 +``` + +### 杂项命令 ($ svn ... ) + + +命令 | 说明 +:- | :- +`$ svn resolve "/path"` | 解决冲突 +`$ svn cleanup "/path"` | 递归删除,锁并完成,操作 +`$ svn lock "/path"` | 锁定路径 +`$ svn unlock "/path"` | 解锁路径 +`$ svn cat "/path"` | 查看文件内容 +`$ svn status "/path"` | 获取路径状态 + + +### Subversion 帮助 + +```shell +$ svn help +$ svn help import +# 显示“导入”命令的帮助 +``` + +### 恢复本地(未提交)更改 + +```shell +$ svn revert "/path/filename" +# 恢复对文件的更改 +$ svn revert -R "/path/folder" +# 递归恢复对文件夹的更改 +``` + +### 日志与责任 + +```shell +$ svn log "/path" +# 显示存储库中的日志消息 +$ svn blame "/path" +# 显示路径的带有消息的提交 +``` + +### 将本地文件夹添加到存储库 + +```shell +$ svn import folder "/path/to/repository" +``` + +### 物品和财产状态 + + +命令 | 说明 +:- | :- +' ' | 无修改 +`A` | 添加 +`D` | 删除 +`M` | 修改的 +`R` | 已更换物品 +`C` | 冲突中 +`X` | 外部定义 +`I` | 被忽略 +`?` | 不在存储库中 +`!` | 物品缺失 +`~` | 对象类型已更改 + + +### 存储库管理 + +```shell +$ svnadmin create "/path/to/repository" +# 创建存储库 +$ svnadmin setlog "path" -r 7 message.txt +# 第7版的更改日志消息 +# message.txt内容的“路径” +$ svnadmin dump "repository" > filename +# 将存储库的内容转储到文件 +$ svnadmin load "repository" < filename +# 将文件的内容加载到存储库 +``` + +### 文件之间的差异 + +```shell +$ svn diff "/path/file" +# 查看“/path/file”中的更改 +$ svn diff "/path/file@2" "/path/file@7" +# 比较修订版2和7中的文件 +$ svn diff -r 2:7 "/path/folder" +# 比较修订版2和7中的所有文件 +``` + +### 签出工作副本 + +```shell +$ svn checkout "/path/to/repository/folder" +# 创建“文件夹”的工作副本 +$ svn checkout "/path" foldername +# 签出到新文件夹“foldername” +``` + +### 合并更改 + +```shell +$ svn merge -r 2:7 "item" "/path/file" +# 在修订2之间应用差异 +# 和“item”到“/path/file”的7 +$ svn merge "url1" "url2" "/path/file" +# 应用“url1”和 +# “url2”到“/path/file” +``` + +### 特性命令($ svn ... ) + +命令 | 说明 +:- | :- +`$ svn proplist "/path"` | 列出属性 +`$ svn propset PROP VAL` | 设置属性“PROP” +`$ svn "/path"` | 至值“VAL” +`$ svn propget PROP "/path"` | 获取“PROP”的值 +`$ svn propedit PROP "/path"` | 编辑“PROP” +`$ svn propdel PROP "/path"` | 删除“PROP” + + +### 参数快捷方式 + +参数 | 说明 +:- | :- +`-m "Message"` | `--message` +`-q` | `--quiet` +`-v` | `--verbose` +`-r` | `--revision` +`-c` | `--change` +`-t` | `--transaction` +`-R` | `--recursive` +`-N` | `--non-recursive` + + +### 从存储库更新工作副本 + +```shell +$ svn update "/path" +$ svn update -r9 "/path" +# 更新至修订版9 +``` + +另见 +--- + +- [Apache Subversion: Quick Start](https://subversion.apache.org/quick-start) +- [Subversion 与版本控制](https://svnbook.red-bean.com/)