版本控制之svn命令行下检出、提交、更新

4 使用命令行模式访问SVN服务器 
4.1 检出 
①首先进入本身的工做目录,例如:D:\DevWorkSpace\SVNSpace 
②运行svn checkout命令,命令格式以下 
格式 svn checkout svn://SVN服务器主机地址/具体仓库目录 保存检出内容的目录 
举例 svn checkout svn://localhost/ERP MyERP 
运行结果 取出版本 0。 
③工做副本 
运行checkout命令后进入MyERP目录,看到里面什么都没有。真的什么都没有吗?不是的。检出命令会在这一目录下建立一个隐藏目录.svn,用来保存与服务器交互的重要信息,其中包括从服务器端取回的最新版本信息、文件状态、更新时间等。SVN正是以此为依据判断当前目录中文件的状态。因此这个隐藏目录千万不要删除或修改其中的内容——彻底无视它的存在吧。若是服务器端保存的文件能够视为一个“正本”,那么每一个开发人员检出到本地目录的文件能够视为“副本”,一般称为工做副本。 
4.2 提交 
①进入D:\DevWorkSpace\SVNSpace\MyERP目录 
②建立一个文件test.txt 
③执行svn commit命令,运行结果是 
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt 
svn: E200009: 提交失败(细节以下): 
svn: E200009: “D:\DevWorkSpace\SVNSpace\MyERP\test.txt” 还没有归入版本控制 
说明一个文件必须归入版本控制才能够提交到服务器端。 
④执行svn add命令,将test.txt归入版本控制 
D:\DevWorkSpace\SVNSpace\MyERP>svn add test.txt 
A test.txt 
⑤再次执行svn commit命令 
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt 
svn: E205007: 提交失败(细节以下): 
svn: E205007: 没法使用外部编辑器得到日志信息;考虑设置环境变量 $SVN_EDITOR,或者使用 –message (-m) 或 –file (-F) 选项 
svn: E205007: 没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量,运行时的配置参数中也没有 “editor-cmd” 选项 
此时要求附加日志信息 
⑥使用-m参数附加日志信息 
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt 
svn: E170001: 提交失败(细节以下): 
svn: E170001: 认证失败 
缘由是没有权限 
⑦暂时先开启匿名访问权限 
[1]进入对应的版本库目录下的conf目录:D:\DevRepository\Subversion\ERP\conf 
[2]打开svnserve.conf 
[3]将第19行的# anon-access = read改成anon-access = write,也就是去掉“# ”,将read改成write。注意前面不要留空格,必定要顶格写。 
[4]不须要重启SVN服务,甚至命令行窗口都不须要从新打开。 
⑧从新执行提交命令 
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt 
正在增长 test.txt 
传输文件数据. 
提交后的版本为 1。 
说明提交成功了。 
⑨其实svn commit命令最后能够不指定具体文件,此时表示提交当前工做副本中的全部修改。 
4.3 更新 
①将服务器端文件检出到一个新的目录,模拟另一个终端 
D:\DevWorkSpace\SVNSpace>svn checkout svn://localhost/ERP TomERP 
A TomERP\test.txt 
取出版本 1。 
②回到MyERP目录,对test.txt文件修改后提交。 
③进入TomERP目录 
④执行svn update命令 
D:\DevWorkSpace\SVNSpace\TomERP>svn update 
正在升级 ‘.’: 
U test.txt 
更新到版本 2。 
这样咱们就能够在TomERP目录下看到MyERP目录下提交的修改。 
⑤思考:更新和检出的相同点和不一样点分别是什么? 
检出 更新 
相同点 从服务器端下载最新内容 
不一样点1 下载整个项目 下载与本地工做副本不一样的内容 
不一样点2 建立.svn目录,使检出目录成为工做副本 依赖.svn目录 
不一样点3 只能操做1次 能够操做屡次git