天天看点

SVN的基本操作流程

i. 创建版本库 a. 在windows下创建版本库 如果SVN服务器安装在windows平台下,那么可以通过tortoiseSVN客户端来创建 1、在一个空白的文件夹下,右键单击鼠标。弹出菜单后点击有个小乌龟标志的TortoiseSVN——Create repository here。

SVN的基本操作流程

2. 然后在弹出的菜单中可以看到版本库的地址, 点击确定按钮完成版本库的建立。

SVN的基本操作流程

3. 在文件夹下右键单击鼠标,在弹出的菜单中选择TortoiseSVN——Repo-browser,可以查看当前版本下的文件目录及内容。

SVN的基本操作流程

4. 打开版本的文件目录后,右键点击根目录文件,在弹出的菜单中选择Create folder选项创建根目录下的文件夹。

SVN的基本操作流程

5. 输入文件夹名称后点击ok按钮创建文件夹。

SVN的基本操作流程

6. 这时会弹出提示框,让你输入这个文件夹的这个版本的一些说明,如果没有需要说明的内容,可不输入并点击ok完成文件夹的创建

SVN的基本操作流程

7. 版本库及版本下的文件目录就创建完成了。

SVN的基本操作流程

b. 在Linux下创建版本库 svnadmin是一个用来监控和修改Subversion版本库的管理工具 名称 svnadmin create — 创建一个新的空的版本库。 概要 svnadmin create REPOS_PATH 描述 在提供的路径上创建一个新的空的版本库,如果提供的目录不存在,它会为你创建。 对于Subversion 1.2及Subversion 1.2以后的版本,svnadmin缺省使用fsfs文件系统创建版本库。而在Subversion 1.2以前的版本中,创建的是一个Berkeley DB版本库,Berkeley DB版本库是缺省类型 例子 所以,创建一个版本库就是这样简单: $ svnadmin create /usr/local/svn/repos 指定格式来创建版本库 $ svnadmin create /usr/local/svn/repos --fs-type fsfs ii. 配置版本库

SVN的基本操作流程

配置文件在文件夹conf中

SVN的基本操作流程

我们需要配置的文件有三个,authz,passwd,svnserve.conf。 其中passwd用来配置用户名和密码。 authz用类配置版本库的权限。 svnserve.conf用来配置版本库。 a. 配置passwd #配置用户名字和密码 格式:用户名=密码

SVN的基本操作流程

b. 配置svnserve.conf #anon-access:匿名用户的权限,可以为read,write和none,默认值read。 不允许匿名用户访问:anon-access = none。 #auth-access:认证用户的权限,可以为read,write和none,默认值write。

SVN的基本操作流程

#password-db:密码用户配置文件的路径

SVN的基本操作流程

#authz-db:版本库权限配置文件的路径

SVN的基本操作流程

#realm 指定版本库的认证域,即在登录时提示的认证域名称。

SVN的基本操作流程

c. 配置authz # groups:给用户分组

SVN的基本操作流程

版本库路径权限段的段名格式如下: [<版本库名>:<路径>] 如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为"[/tmp]"的版本库路径权限段设置了所有引用该权限配置文件的版本库中目录"/tmp"的访问权限。 版本库路径权限段中配置行格式有如下三种: <用户名> = <权限> @<用户组> = <权限> * = <权限> 其中,"*"表示任何用户;权限的取值范围为''、'r'和'rw',''表示对该版本库路径无任何权限,'r'表示具有只读权限,'rw'表示有读写权限。 注意:每行配置只能配置单个用户或用户组。 “*= ”表示除了已经分配的用户,其他人没有任何权限。

SVN的基本操作流程

iii. 导入项目 a、在linux下导入项目 svn import myProject svn://192.168.27.222:3690/qiuzhi  -m "Initial import" 其中,myProject是我要导入的工程, svn://192.168.27.222:3690/ 是要把工程导入到指定的服务器, /qiuzhi 是要把工程导入指定的服务器的指定版本库中。因为在svn服务器启动时,指定了版本库存放的目录/home/snv/svnRoot。因此实际上工程被导入的实际目录是:/home/svn/snvRoot/qiuzhi。 -m 是在导入工程时的备注信息。 b. 在windows下导入项目 在windows操作系统中,也可以通过客户端tortoiseSVN来把工程导入到在linux中的版本库中。 1. 鼠标选中要上传的文件夹。 2. 右键点击鼠标,选择TortoiseSVN--->导入

SVN的基本操作流程

3. 版本库URL:你要把代码导入到SVN服务器的什么位置。 svn://192.168.27.222/testSVN。说明了,svn://我使用了SVN服务器来存储版本库,服务器地址是192.168.27.222,并且默认的端口号是3690,因此也可以写出192.168.27.222:3690。/testSVN说明要把工程导入到testSNV版本库中。 备注:根据svn服务器启动时设定的参数,版本库存放的路径是/home/svn/svnRoot 在“导入信息”中输入一些文字信息,用来记录你的操作,这样当你查看项目的历史时,可以很轻松的找到相应的版本。这和在linux服务器中使用命令行导入信息时,-m后面跟的信息是一个意思。

SVN的基本操作流程

项目导入成功。

SVN的基本操作流程

iv. checkout工作副本 1. 新建一个文件夹,点击鼠标右键,选择svn checkout.

SVN的基本操作流程

版本库URL:版本库的地址。 备注:tortoiseSVN可以通过file://、http://和svn://多种协议连接版本库。

方案 访问方法
file:// 直接版本库访问(本地磁盘或者网络磁盘)。
http:// 通过 WebDAV 协议访问支持 Subversion 的 Apache 服务器。
https:// 与 http:// 相似,但是用 SSL 加密。
svn:// 通过未认证的 TCP/IP 自定义协议访问 svnserve 服务器。
svn+ssh:// 通过认证并加密的 TCP/IP 自定义协议访问 svnserve 服务器。

检出至目录:表示要把版本库中的文件checkout哪个文件夹下。 检出深度有四个选项,Fully recursive(全递归)、Immediate children,including folders(直接子节点,包含文件夹)、Only file chlidren(仅文件子节点)、Only this item(仅此项)。 Fully recursive(全递归):检出完整的目录树,包含所有的文件或子目录. Immediate children,including folders(直接子节点,包含文件夹):检出目录,包含其中的文件或子目录,但是不递归展开子目录. Only file chlidren(仅文件子节点):检出指定目录,包含所有文件,但是不检出任何子目录. Only this item(仅此项):只检出目录,不包含其中的文件或子目录. 检出工作副本后,文件夹中会有一个.svn文件夹。 v. 修改、提交 修改工作副本中的文件,或添加文件或删除文件,然后选中工作副本,点击鼠标右键,选择“SVN 提交”

SVN的基本操作流程

在“信息”中输入你这次操作的相关内容,以方便以后查看项目时能够查找到相关的版本。 点击“确定”,提交代码、 vi. 解决冲突 在提交代码时有时候会出现冲突。冲突出现的原因。

SVN的基本操作流程

如何人为的制造一个冲突呢? 1. 同一个版本库检出两个工作副本,

SVN的基本操作流程

2. 在“jingdian”工作副本中, 在一个文件中输入字符串,保存,并提交。

SVN的基本操作流程

3. 在“myPro"工作副本中的相同文件中,相同位置输入字符串。

SVN的基本操作流程

4. 保存,并提交。报错

SVN的基本操作流程

4.txt.mine文件是提交前本地工作副本的内容

SVN的基本操作流程

4.txt.r53,其中的“53”代表本地工作副本的版本好,它代表本地工作副本没有修改以前的内容。

SVN的基本操作流程

4.txt.r54,“54”代表者svn服务器中,该版本库的最新版本。这说明当前的工作副本并不是最新的。

SVN的基本操作流程

4.txt上有一个黄色的感叹号,它表示该文件出现冲突,需要解决。

SVN的基本操作流程

要解决冲突有两种思路: a. 思路1 1. 选择出现冲突的工作副本,点击右键,选择tortoiseSVN--->SVN 还原 2. 选择该工作副本,点击右键,选择“SVN 更新” 3. 更新完以后,该工作副本更新至服务器的最新版本。打开4.txt,它的内容已经改变了。

SVN的基本操作流程

4. 这时再修改文件,并提交。不会在报错了。 b. 思路2 1. 删除*.mine、*.r53、*.r54三个文件夹 2. 打开出现冲突的文件。 把下列内容 <<<<<< .mine 我要修改的内容 |||||| .r53 ====== 服务器中的内容 >>>>>> .r54 修改为: 我要修改的内容 其他的内容都删除掉。 3. 保存并提交 冲突解决了,大家鼓掌吧。

继续阅读