启动 SVN 服务器端程序
- 1 为客户端开启权限
- 2 常用命令
- 2.1 检出 checkout
- 2.2 纳入版本控制 add
- 2.3 提交 commit
- 2.4 更新 update
- 2.5 查看工作副本信息
- 2.6 查看目录或文件日志信息
- 3 工作副本中文件的几种状态
- 3.1 没有修改,现行版本
- 3.2 本地修改,现行版本
- 3.3 没有修改,过时版本
- 3.4 本地修改,过时版本
1 为客户端开启权限
不开启权限就不能提交文件到SVN服务器保存的
暂时先开启匿名访问权限
- ① 进入对应的版本库目录下的 conf 目录
- ② 打开 svnserve.conf
- ③ 将19行的 # anon-access = read 改为 anon-access = write,也就是去掉“# ”,将 read 改为 write 。注意前面不要留空格,一定要顶格写
2 常用命令
命令中的 [] 表示选填
2.1 检出 checkout
- 命令:svn checkout svn://localhost/[文件名]
- 在命令行中进入工作目录,执行命令,检出命令会在工作目录下创建 指定文件名 项目目录,这一目录下创建一个隐藏目录 .svn,用来保存与服务器交互的重要信息,其中包括从服务器端取回的最新版本信息、文件状态、更新时间等等,这个文件不能动,也不能改
2.2 纳入版本控制 add
- 命令: svn add 纳入版本控制的文件名
2.3 提交 commit
- 命令:svn commit -m “本次提交的注释说明,主要写明本次提交做了哪些修改,方便以后回溯” [提交的文件名]
2.4 更新 update
- 命令:svn update [文件名]
- 回到指定版本: svn update [文件名] --revision 指定的版本号
2.5 查看工作副本信息
- 命令: svn info [指定文件名]
- 注意:要进入到本地副本的项目目录执行这个命令在 DOS 里
2.6 查看目录或文件日志信息
- 命令:svn log [指定文件名]
- 注意:要进入到本地副本的项目目录执行这个命令在 DOS 里
3 工作副本中文件的几种状态
3.1 没有修改,现行版本
本档案在工作目录中没有被修改,而且自当前版本之后,其他终端也没有任何该文件的修改被提交到服务器,即当前工作副本的版本和服务器端最新版本是一致的。对它执行 svn commit 和 svn update 都不会发生任何事
3.2 本地修改,现行版本
这个文件被修改过,但这个修改还没有提交到服务器,而且自当前版本之后,其他终端也没有任何该文件的修改被提交到服务器,所以当前工作副本的版本和服务器端最新版本仍然是一致的。由于有尚未送交回去的本地修改,所以对它的 svn commit 会成功提交你的修改,而 svn update 则不会作任何事
3.3 没有修改,过时版本
这个文件没有修改,但是版本库中有其他终端提交的修改。此时当前工作副本的版本比服务器端的版本落后了,我们称之为“过时”。对当前文件的 svn commit 不会发生任何事,而 svn update 会让工作目录中的文件更新至最新版本
3.4 本地修改,过时版本
服务器端存在没有更新到本地的修改,导致当前版本过时。如果这个文件在本地有未提交的修改,则无法提交,对它执行 svn commit 会产生 “out-of-date” 错误。此时应该先尝试更新本地文件。更新时 SVN 会尝试将服务器端的更新与本地文件进行合并,合并的结果有两种可能:一个是服务器端和本地修改位于文件的不同位置,合并成功;另一个是服务器端的修改正好和本地修改位于同一个位置,发生冲突