重要:
SVN不是记录每一个版本的实际内容,只是记录版本间的差异
SVN使用延迟拷贝来实现svn copy,其只是原始文件的一个链接,对拷贝的修改被svn记录为相对于原始文件的修改
1.创建存储库
假设d:\dev\svnrepo为存放svn存储库的目录
svnadmin create d:\dev\svnrepo\test 创建一名为test的存储库
2.导入项目
假设你的项目在d:\dev\eclipse中的Test文件夹,你的当前目录为d:\dev\eclipse,你的svn存储库路径为http://localhost/svn/test
svn import Test http://localhost/svn/test/OnlyTest -m "Initial Import"
解释:导入的是Test文件夹下的内容 ;另外,注意要起一个路径名OnlyTest ,否则全导入到http://localhost/svn/test下了;-m 为日志
3.导出项目
svn export <项目文件夹> <你的文件夹>
svn export -r <version> <项目文件夹> <你的文件夹>
-------------------------
4.取出
svn co(checkout) http://localhost/svn/test/OnlyTest --- 将OnlyTest文件夹其下的文件取出来并建立默认文件夹OnlyTest
svn co -r <url> -- 取出特定版本
svn co http://localhost/svn/test/OnlyTest MyTest -- 将OnlyTest文件夹下的文件取出,放入新建立的文件夹MyTest中
5.添加
svn add * -- svn会将未纳入版本控制的文件加入版本控制中(必须svn commit)
svn add --non-recursive * 非递归添加
6.删除
svn delete(rm,remove,del) <filename> -- 删除文件和目录(必须svn commit)
7.提交
svn commit -m "you log" -- 提交
svn commit --changelist <changelist name> -- 提交指定的changelist
8.创建目录
svn mkdir <dirname>
svn mkdir <url>
9.移动文件或目录
svn move <source_name> <dist_name>
svn move <source_url> <dist_url>
10.输出特定文件或URL的内容
svn cat <file or url> -- 输出特定文件或URL的内容
svn cat -r <version> <file or url>
------------------------------
11.显示本地或远程某一文件或目录的详细信息
svn info <filename>
svn info -r <version> <filename>
12.列表
svn list(ls)
svn list -r <version>
13.当前目录或文件的状态
svn status <filename>
svn status --show-updates(或-u) 从项目存储库中找出哪些文件有更新
状态:
第一列:指出条目的状态
空 无改动
A 添加
C 冲突
D 删除
G 合并
M 修改
X 无版本记录,被svn:externals使用
? 未用版本控制管理
第二列:属性状态
空 无改动
C 冲突
M 修改
第三列:工作拷贝是否被锁定
空 未锁
L 锁了
14.清理
svn cleanup -- 递归清理工作拷贝
15.帮助
svn help
svn help <subcommand> -- 显示子命令的帮助,如:svn help add
-----------------------
18.锁定某一目录或文件
svn propset svn:needs-lock true <二进制文件> -- 设定需要锁[svn会将其设置为只读,提示用户编辑这个文件前先加锁]
svn lock <dir or file>
svn lock --force <dir or file> -- 强制对文件加锁,即使此文件已被别人加锁
19.解锁
svn unlock <dir or file>
svn unlock --force <dir or file> -- 可以解锁其他用户锁定的文件
20.显示特定文件和URL每一行的作者和修订版本信息
svn blame <file or url> -- 每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。
svn blame -r <version> <file or url>
21.更新
svn update ---- 把版本库的修改带到工作拷贝
svn update -r<version> -- 改变到某一个版本
状态:
A 添加 add
D 删除 delete
U 更新 update
C 冲突 conflict
M 合并 merge
22.找不同
svn diff <file> -- 找出工作版本和最后更新的版本中的不同
svn diff -c <version> <file> 查看文件<file> 在修订版本<version>修改的内容,是version和version-1比较
svn diff -r <version> <file> 察看你的工作拷贝对旧的修订版本<version>的修改
svn diff -r <version1>:<version2> <file> 使用范围符号来比较修订版本<version1>和<version2>
svn diff -r <version1>:<version2> <url>
svn diff --changelist <changelist name>
23.拷贝
svn copy <source> <dist> -- 其中source和dist既可以是工作目录文件也可以是url
如:svn copy foo.txt bar.txt
svn copy near.txt file:///tmp/repos/test/far-away.txt -m "Remote copy."
svn copy file:///tmp/repos/test/far-away near-here
svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy."
24. 显示提交日志信息
svn log -r <version> <path>
svn log -r <version1>:<version2> <path>
svn log <path>
svn log -r {iso8601日期} <path>
svn log -r {iso8601日期}:{iso8601日期} <path>
svn log -v <path> 显示详细的信息(包括每个版本有哪些文件有变动)
svn log --stop-on-copy <path> 得出分支是什么时候创建的
25.删除工作拷贝文件或目录的“冲突 ”状态(相关的冲突文件文件)
svn resolved <path>
26.取消所有的本地编辑
svn revert <path>
svn revert --recursive <path> 递归
27.解决冲突
svn resolve --accept <status> <path>
status:
base:选择你更新你的工作拷贝前的你checkout出的未经修改的版本
working:手工处理后,选择当前你工作拷贝中的版本
mine-full:选择在你svn update前的工作拷贝
theirs-full:选择svn update取出的文件拷贝
28.将文件放入到一个改变列表中
svn changelist(cl) <changelist name> <path1> <path2> <path...>
svn commit --changelist <changelist name> -- 只提交此change list的文件
29.版本号标识
(1)号 87
(2){日期} {2009-09-09}
(3)HEAD 存储库中最新版本
(4)BASE 工作拷贝中你最后签出的版本
(5)COMMITED 最后改动版本,等于或早于BASE
(6)PREV COMMITED之前的一个版本
30.产生和应用补丁
svn diff > file.patch
patch <options> file.patch
31.svn项目组织
project/
trunk/ --主干
branches/ --分支
tags/ --标签
32.常用示例
(1)提交改动
svn update -- 更新到项目的当前状态
# resolve conflicts 解决冲突
编辑文件
svn resolved
# run tests 运行测试
svn commit -m "your logs" -- 提交
(2)简单bug修正
a.在一个分支中修正bug并提交
b.将其合并到存在此bug的其他分支中(svn merge -r<version1>:<version2>)
(3)复杂bug修正
a.创建一个bug修正分支(svn copy) name=bug-trackid
b.为这个修正分支在修正前打标签(svn copy) name=bugpre-trackid
c.修正bug
d.为这个修正在修正后打标签(svn copy) name=bugpost-trackid
e.合并此bug修正到其他分支(svn merge -r bugpre-trackid:bugpost-trackid)
分享到:
相关推荐
### SVN基本操作详解 在软件开发领域,版本控制系统扮演着至关重要的角色,它帮助团队管理代码变更、协作和历史记录。Subversion(简称SVN)是其中一款广受欢迎的集中式版本控制系统,提供了丰富的功能来支持团队...
SVN 基础操作培训
SVN 基础操作文档 SVN(Subversion)是一种开源的版本控制系统,用于管理代码的变更和协作。下面是 SVN 的基础操作文档,涵盖签出代码、更新同步、添加文件、提交修改、解决冲突、撤销更改、查看历史和恢复到以前的...
SVN基本操作.ppt
以上对“svn基本操作试题及答案.pdf”文件的部分内容进行了解析和扩展,展示了SVN在版本控制中的基本操作。由于文档内容被OCR识别时存在错误,解释中进行了适当的调整和假设,以保证知识点的正确性和通顺性。
通过本文介绍,您应该已经了解了SVN的基本概念、核心角色以及常用的基础操作。掌握了这些基础知识后,您将能够有效地利用SVN进行版本管理和协同开发。在未来的工作中,根据项目需求灵活运用SVN的不同功能,可以极大...
本文档旨在提供svn基本操作的教程,涵盖配置、提交、更新、删除等基础操作的详细说明。svn是一种版本控制系统,旨在帮助开发者更好地管理项目代码。 一、版本控制原则 svn只是一个版本控制的辅助工具,不可能把...
【SVN基本操作入门快速指南】 SVN,全称Subversion,是一种版本控制系统,用于管理文件和目录的历史记录,便于多人协作开发。Tortoise SVN是基于Windows平台的图形化客户端,提供了直观易用的界面,是开发者常用的...
【SVN基本操作入门快速指南】是一份针对Tortoise SVN客户端的教程,适用于互联网和计算机科学(cs)领域的开发者。Tortoise SVN是一个强大的版本控制系统,尤其在多人协作的项目中,它可以帮助团队成员有效地管理和...
SVN_基本操作与规程.ppt SVN_基本操作与规程.ppt
以下是对SVN基本操作的详细解释。 1. **安装与配置SVN** 在Windows环境下,可以下载并安装TortoiseSVN,这是一个直观的SVN客户端,提供了与文件资源管理器集成的图形用户界面。安装后,通过右键菜单即可进行SVN...
3. SVN基本操作: - 检出:使用`svn checkout URL`命令,将版本库中的项目克隆到本地。 - 添加:使用`svn add`命令,将新文件或目录加入版本控制。 - 删除:使用`svn delete`或`svn rm`命令,从版本库中移除文件...
SVN(Subversion)是一种版本控制系统,用于管理文件的历史版本,支持多人协作编写代码。SVN合并操作是版本控制中的一个核心功能,允许开发者将...对于初学者来说,理解和实践上述基本的合并操作步骤是一个很好的开始。
### SVN的基本操作详解 #### 一、SVN简介与安装 **Subversion**(简称SVN)是一种开源的版本控制系统,广泛应用于软件开发过程中对代码、文档等资源的管理。通过SVN,团队成员可以轻松地协作开发项目,同时保证源码...
【SVN 分支合并基本操作】是软件开发中配置管理工具 Subversion (SVN) 的核心功能之一,它允许开发团队协同工作,各自在独立的分支上开发,然后将改动合并回主干,以保持代码的稳定性和一致性。以下是详细的操作步骤...
本资源总结了 Linux 系统下 SVN 服务器操作命令的详细信息,涵盖了初学者可以使用的 Ubuntu 系统下的基本命令,希望对大家有帮助。 一、基本命令 1. 将文件 checkout 到本地目录:svn checkout path(path 是...