svn

更新日期: 2015-12-12 阅读次数: 17539 分类: SVN

checkout 需要账号密码的项目

svn checkout http://www.svnchina.com/svn/sunzhongwei --username sunzhongwei

然后 SVN 会自动提示输入密码

SVN change IP

svn switch --relocate svn://192.168.1.x:7736 https://192.168.1.y/svn/foo

常用命令

获取两次提交间发生更改的文件列表

svn diff -r v1:v2 --summarize

输出如下

M       js/src/common/widget/placeholder/placeholder.js
M       js/src/common/widget/placeholder/placeholder1.js
M       js/src/common/widget/placeholder/placeholder2.js

参考 Get changed files from SVN command line between two revisions

获取 SVN 仓库远端 URL

svn info

获取指定条目的 log 记录

默认 svn log 会显示所有的提交历史,实际上,通常我们只想看到最新的提交。 例如,我们想查看最近的四次提交

svn log --limit 4

svn log -l 4

SVN 分支开发流程

创建新分支

svn copy -m "create new branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/new_feature

拉取新分支

svn checkout http://svn_server/xxx_repository/branches/new_feature

合并主干上的最新修改到分支上

cd trunk
svn update
cd new_feature
svn merge http://svn_server/xxx_repository/trunk 

分支合并到主干

cd trunk
svn merge --reintegrate http://svn_server/xxx_repository/branches/new_feature

打上 tag

svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"

删除分支

svn rm http://svn_server/xxx_repository/branches/new_feature
svn ci -m "我删除了一个分支"
svn update

参考 svn 命令行创建和删除 分支和tags

遇到过的 svn error

svn: E195016: trunk must be ancestrally related to branch

可能是分支目录对应的 trunk 的目录不匹配,重建分支即可。

设置忽略文件及目录列表

例如,我要忽略代码目录下的 npm 相关的 node_modules 目录

在 ~/.subversion/config 中加入

global-ignores = node_modules 

参考

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式