一、 基本操作
- 检出(Checkout):从版本库下载到本地工作副本
svn checkout <repository_url> <local_directory>
svn checkout --username USERNAME --password PASSWORD REPOSITORY_URL
- 更新(Update):将工作副本更新为版本库的最新版本
svn update
svn update [PATH] [OPTIONS]
PATH:可选,指定要更新的文件或目录。如果不指定,默认更新当前目录及其所有子目录。
svn update -r 150 path/to/file.txt
- 添加文件(Add):将新文件添加到版本控制中
svn add <file_name>
svn add /path/to/project/dir1/*
- 提交(Commit):将更改提交到版本库
svn commit -m "提交信息"
svn commit /path/to/project/dir1/* -m "提交指定文件"
svn commit dir1/file1.txt dir2/file2.txt dir3/file3.txt -m "一次性提交多个不同目录下的文件"
- 查看日志(Log):查看提交历史
svn log
-r <revision>:指定要查看的版本范围。
例如,-r 100:200 表示查看第100到200版本的日志。
-l <limit>:限制显示的日志条数。
例如,-l 10 表示显示最近10条日志。
-v:显示每次提交的详细信息,包括修改的文件。
-q:以安静模式运行,不显示每次提交的文件。
--search <string>:根据指定的字符串搜索日志信息。
- 比较(Diff):比较工作副本和版本库之间的差异
svn diff
-r <revision>:比较指定版本之间的差异。
例如,-r 10:20 表示比较版本10和版本20之间的差异。
--summarize:仅显示文件的摘要,而不显示具体的差异内容。
--old <target> 和 --new <target>:分别指定旧版本和新版本的路径来比较差异。
-c <change>:查看特定修改的差异。
svn diff [某个文件路径,包含文件名]
- 删除文件(Delete):从版本控制中删除文件
svn delete <file_name>
- 查看状态(Status):查看工作副本中文件的状态
svn status
-u:显示工作副本与版本库之间的状态,并显示版本库中已更改的文件。
-q:以安静模式显示状态,仅显示有变化的文件。
--no-ignore:显示未被忽略的文件状态。
-N 或 --no-ignore:不递归显示所有文件,通常只检查当前目录。
svn stat -q
二、常见使用场景
- 团队协作:多个开发者共同开发一个项目,通过SVN管理代码的版本
- 代码备份:版本库中长期存储代码历史,可随时回滚到任意版本
- 跟踪变更:能够查看每次提交的变更记录,以便审计和调试