国内p2p网站建设大兴模版网站开发公司哪家好
news/
2025/9/24 6:04:31/
文章来源:
国内p2p网站建设,大兴模版网站开发公司哪家好,个人网页模板html免费,网站前置审批 查询SVN 一、SVN简介1. 概念1.1 repository#xff08;源代码库#xff09;1.2 Checkout#xff08;提取#xff09;1.3 Commit#xff08;提交#xff09;1.4 Update (更新) 2. SVN的主要功能2.1 目录版本控制2.2 真实的版本历史2.3 自动提交2.4 纳入版本控管的元数据2.5 选… SVN 一、SVN简介1. 概念1.1 repository源代码库1.2 Checkout提取1.3 Commit提交1.4 Update (更新) 2. SVN的主要功能2.1 目录版本控制2.2 真实的版本历史2.3 自动提交2.4 纳入版本控管的元数据2.5 选择不同的网络层2.6 一致的数据处理方式2.7 有效的分支(branch)与标签(tag)2.8 Hackability 二、SVN生命周期1. 创建版本库-repository2. 提取-Checkout3. 更新-update4. 执行变更-commit5. 复查变化-Status、diff6. 修复错误- revert7. 解决冲突-Merge8. 提交更改-Commit 三、SVN启动模式1. 手动新建版本库目录2. 利用svn命令创建版本库3. 使用命令svnserve启动服务4. 访问方式4.1 -r直接指定到版本库(称之为单库svnserve方式)4.2 指定到版本库的上级目录(称之为多库svnserve方式) 四、SVN创建版本库1. svn 服务配置文件 svnserve.conf2. 用户名口令文件 passwd3. 权限配置文件 五、检出checkout六、SVN解决冲突七、SVN提交操作1. 查看工作副本中的状态2. 将文件readme加到版本控制等待提交到版本库。3. 把 readme 存储到版本库中使用 commit -m 加上注释信息来提交。 八、SVN版本回退1. 放弃对文件的修改2. 目录恢复原状3. 恢复一个已经提交的版本 九、SVN 查看历史信息1. svn log2. svn diff2.1 如果用 svn diff不带任何参数它将会比较你的工作文件与缓存在 .svn 的原始拷贝。2.2 比较工作拷贝和版本库2.3 比较版本库与版本库 3. svn cat4. svn list Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 参考https://www.runoob.com/svn/svn-intro.html 一、SVN简介
1. 概念
1.1 repository源代码库
源代码统一存放的地方
1.2 Checkout提取
当你手上没有源代码的时候你需要从 repository checkout 一份
1.3 Commit提交
当你已经修改了代码你就需要Commit到repository
1.4 Update (更新)
当你已经 checkout 了一份源代码 update 一下你就可以和Repository上的源代码同步你手上的代码就会有最新的变更 日常开发过程其实就是这样的假设你已经Checkout并且已经工作了几天Update(获得最新的代码) --作出自己的修改并调试成功 -- Commit(大家就可以看到你的修改了) 。 如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动实际上 SVN 管理源代码是以行为单位的就是说两个程序员只要不是修改了同一行程序SVN 都会自动合并两种修改。如果是同一行SVN 会提示文件 Conflict, 冲突需要手动确认。 2. SVN的主要功能
2.1 目录版本控制
CVS 只能跟踪单个文件的历史, 不过 Subversion 实作了一个 “虚拟” 的版本控管文件系统, 能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。
2.2 真实的版本历史
在 Subversion 中你可以增加add、删除delete、复制copy和重命名rename无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。
2.3 自动提交
一个提交动作不是全部更新到了档案库中就是不完全更新。这允许开发人员以逻辑区间建立并提交变动以防止当部分提交成功时出现的问题。
2.4 纳入版本控管的元数据
每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你想要的Key/Value对。 属性是随着时间来作版本控管的,就像文件內容一样。
2.5 选择不同的网络层
Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到 Apache HTTP 服务器中。这个为 Subversion 提供了非常先进的稳定性和协同工作能力除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立 Subversion 服务器 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。
2.6 一致的数据处理方式
Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。
2.7 有效的分支(branch)与标签(tag)
在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接hard-link。 所以这些操作只会花费很小, 而且是固定的时间。
2.8 Hackability
Subversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。
二、SVN生命周期
1. 创建版本库-repository
版本库相当于一个集中的空间用于存放开发者所有的工作成果。版本库不仅能存放文件还包括了每次修改的历史即每个文件的变动历史。
Create 操作是用来创建一个新的版本库。大多数情况下这个操作只会执行一次。当你创建一个新的版本库的时候你的版本控制系统会让你提供一些信息来标识版本库例如创建的位置和版本库的名字。
2. 提取-Checkout
Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间可以进行内容的修改然后提交到版本库中。
3. 更新-update
update 操作是用来更新版本库的。这个操作将工作副本与版本库进行同步。由于版本库是由整个团队共用的当其他人提交了他们的改动之后你的工作副本就会过期。
4. 执行变更-commit
当Checkout之后你就可以做很多操作来执行变更。编辑是最常用的操作。你可以编辑已存在的文件例如进行文件的添加/删除操作。
可以添加文件/目录。但是这些添加的文件目录不会立刻成为版本库的一部分而是被添加进待变更列表中直到执行了 commit 操作后才会成为版本库的一部分。
可以删除文件/目录。删除操作立刻将文件从工作副本中删除掉但该文件的实际删除只是被添加到了待变更列表中直到执行了 commit 操作后才会真正删除。
Rename 操作可以更改文件/目录的名字。移动操作用来将文件/目录从一处移动到版本库中的另一处。
5. 复查变化-Status、diff
当你Checkout工作副本或者更新工作副本后你的工作副本就跟版本库完全同步了。但是当你对工作副本进行一些修改之后你的工作副本会比版本库要新。在 commit 操作之前复查下你的修改是一个很好的习惯。
Status 操作列出了工作副本中所进行的变动。正如我们之前提到的你对工作副本的任何改动都会成为待变更列表的一部分。Status 操作就是用来查看这个待变更列表。
Status 操作只是提供了一个变动列表但并不提供变动的详细信息。你可以用 diff 操作来查看这些变动的详细信息。
6. 修复错误- revert
对工作副本做了许多修改但是现在你不想要这些修改了这时候 revert 操作将会帮助你。
Revert 操作重置了对工作副本的修改。它可以重置一个或多个文件/目录。当然它也可以重置整个工作副本。在这种情况下revert 操作将会销毁待变更列表并将工作副本恢复到原始状态。
7. 解决冲突-Merge
合并的时候可能会发生冲突。Merge 操作会自动处理可以安全合并的东西。其它的会被当做冲突。例如“hello.c” 文件在一个分支上被修改在另一个分支上被删除了。这种情况就需要人为处理。Resolve 操作就是用来帮助用户找出冲突并告诉版本库如何处理这些冲突。
8. 提交更改-Commit
Commit 操作是用来将更改从工作副本到版本库。这个操作会修改版本库的内容其它开发者可以通过更新他们的工作副本来查看这些修改。
在提交之前你必须将文件/目录添加到待变更列表中。列表中记录了将会被提交的改动。当提交的时候我们通常会提供一个注释来说明为什么会进行这些改动。这个注释也会成为版本库历史记录的一部分。
Commit 是一个原子操作也就是说要么完全提交成功要么失败回滚。用户不会看到成功提交一半的情况。
三、SVN启动模式
首先,在服务端进行SVN版本库的相关配置
1. 手动新建版本库目录 mkdir /opt/svn 2. 利用svn命令创建版本库 svnadmin create /opt/svn/runoob 3. 使用命令svnserve启动服务 svnserve -d -r 目录 --listen-port 端口号 -r: 配置方式决定了版本库访问方式。--listen-port: 指定SVN监听端口不加此参数SVN默认监听3690 4. 访问方式
由于-r 配置方式的不一样SVN启动就可以有两种不同的访问方式
4.1 -r直接指定到版本库(称之为单库svnserve方式) svnserve -d -r /opt/svn/runoob 在这种情况下一个svnserve只能为一个版本库工作。 authz配置文件中对版本库权限的配置应这样写 [groups] adminuser1 devuser2 [/] adminrw user2r 使用类似这样的URLsvn://192.168.0.1/ 即可访问runoob版本库
4.2 指定到版本库的上级目录(称之为多库svnserve方式) svnserve -d -r /opt/svn 一个svnserve可以为多个版本库工作
authz配置文件中对版本库权限的配置应这样写 [groups] adminuser1 devuser2 [runoob:/] adminrw user2r [runoob01:/] adminrw user2r 如果此时你还用[/]则表示所有库的根目录同理[/src]表示所有库的根目录下的src目录。
使用类似这样的URLsvn://192.168.0.1/runoob 即可访问runoob版本库。
四、SVN创建版本库
使用 svn 命令创建资源库 [runoobcentos6 ~]# svnadmin create /opt/svn/runoob01 [runoobcentos6 ~]# ll /opt/svn/runoob01/ total 24 drwxr-xr-x 2 root root 4096 2016/08/23 16:31:06 conf drwxr-sr-x 6 root root 4096 2016/08/23 16:31:06 db -r–r–r-- 1 root root 2 2016/08/23 16:31:06 format drwxr-xr-x 2 root root 4096 2016/08/23 16:31:06 hooks drwxr-xr-x 2 root root 4096 2016/08/23 16:31:06 locks -rw-r–r-- 1 root root 229 2016/08/23 16:31:06 README.txt 进入 /opt/svn/runoob01/conf 目录修改默认配置文件配置包括 svnserve.conf、passwd、authz 配置相关用户和权限。
1. svn 服务配置文件 svnserve.conf
svn 服务配置文件为版本库目录中的文件 conf/svnserve.conf。该文件仅由一个 [general] 配置段组成。 [general] anon-access none auth-access write password-db /home/svn/passwd authz-db /home/svn/authz realm tiku anon-access: 控制非鉴权用户访问版本库的权限取值范围为 “write”、“read” 和 “none”。 即 “write” 为可读可写“read” 为只读“none” 表示无访问权限默认值read。auth-access: 控制鉴权用户访问版本库的权限。取值范围为 “write”、“read” 和 “none”。 即write为可读可写read为只读none表示无访问权限默认值write。authz-db: 指定权限配置文件名通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径否则文件位置为相对conf目录的相对路径默认值authz。realm: 指定版本库的认证域即在登录时提示的认证域名称。若两个版本库的认证域相同建议使用相同的用户名口令数据文件。默认值一个UUID(Universal Unique IDentifier全局唯一标示)。
2. 用户名口令文件 passwd
用户名口令文件由 svnserve.conf 的配置项 password-db 指定默认为 conf 目录中的 passwd。该文件仅由一个 [users] 配置段组成。
[users] 配置段的配置行格式如下 用户名 口令 [users] admin admin thinker 123456 3. 权限配置文件
权限配置文件由 svnserve.conf 的配置项 authz-db 指定默认为 conf 目录中的 authz。该配置文件由一个 [groups] 配置段和若干个版本库路径权限段组成。 [groups]配置段中配置行格式如下 用户组 用户列表 版本库路径权限段的段名格式如下 [版本库名:路径] [groups] g_admin admin,thinker [admintools:/] g_admin rw * [test:/home/thinker] thinker rw * r 使用 svnserve -d -r /opt/svn 以多库 svnserve 方式启动 SVN所以 URLsvn://192.168.0.1/runoob01。
五、检出checkout
svn checkout或svn co svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 查看更多关于checkout参数使用的命令svn help checkout
六、SVN解决冲突 详细讲解见文章 https://blog.csdn.net/peaceLT/article/details/142550943 七、SVN提交操作
在库本版中需要增加一个readme的说明文件。 rootrunoob:~/svn/runoob01/trunk# cat readme this is SVN tutorial. 1. 查看工作副本中的状态
svn status 或 svn st rootrunoob:~/svn/runoob01/trunk# svn status ? readme 此时 readme的状态为说明它还未加到版本控制中。
2. 将文件readme加到版本控制等待提交到版本库。 rootrunoob:~/svn/runoob01/trunk# svn add readme A readme 此时 readme的状态为A,它意味着这个文件已经被成功地添加到了版本控制中。
3. 把 readme 存储到版本库中使用 commit -m 加上注释信息来提交。
如果你忽略了 -m 选项 SVN会打开一个可以输入多行的文本编辑器来让你输入提交信息。 rootrunoob:~/svn/runoob01/trunk# svn commit -m SVN readme. Adding readme Transmitting file data . Committed revision 8. svn commit -m “SVN readme.” 现在 readme 被成功地添加到了版本库中并且修订版本号自动增加了1。
八、SVN版本回退
1. 放弃对文件的修改
当我们想放弃对文件的修改可以使用 SVN revert 命令。 svn revert 操作将撤销任何文件或目录里的局部更改。 我们对文件 readme 进行修改,查看文件状态。 rootrunoob:~/svn/runoob01/trunk# svn revert readme Reverted ‘readme’ 进行 revert 操作之后readme 文件恢复了原始的状态。
2. 目录恢复原状
revert 操作不单单可以使单个文件恢复原状 而且可以使整个目录恢复原状。恢复目录用 -R 命令如下。 svn revert -R trunk 3. 恢复一个已经提交的版本
假如我们想恢复一个已经提交的版本怎么办。 为了消除一个旧版本我们必须撤销旧版本里的所有更改然后提交一个新版本。这种操作叫做 reverse merge。 首先找到仓库的当前版本现在是版本 22我们要撤销回之前的版本比如版本 21。 svn merge -r 22:21 readme 九、SVN 查看历史信息
通过svn命令可以根据时间或修订号去除过去的版本或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史
svn log: 用来展示svn 的版本作者、日期、路径等等。svn diff: 用来显示特定修改的行级详细信息。svn cat: 取得在特定版本的某文件显示在当前屏幕。svn list: 显示一个目录或某一版本存在的文件。
1. svn log
可以显示所有的信息如果只希望查看特定的某两个版本之间的信息可以使用 rootrunoob:~/svn/runoob01/trunk# svn log -r 6:8 ------------------------------------------------------------------------ r6 | user02 | 2016-11-07 02:01:26 0800 (Mon, 07 Nov 2016) | 1 line change HelloWorld.html first. ------------------------------------------------------------------------ r7 | user01 | 2016-11-07 02:23:26 0800 (Mon, 07 Nov 2016) | 1 line change HelloWorld.html second ------------------------------------------------------------------------ r8 | user01 | 2016-11-07 02:53:13 0800 (Mon, 07 Nov 2016) | 1 line SVN readme. ------------------------------------------------------------------------ 如果只想查看某一个文件的版本修改信息可以使用 svn log 文件路径。 rootrunoob:~/svn/runoob01# svn log trunk/HelloWorld.html ------------------------------------------------------------------------ r7 | user01 | 2016-11-07 02:23:26 0800 (Mon, 07 Nov 2016) | 1 line change HelloWorld.html second ------------------------------------------------------------------------ r6 | user02 | 2016-11-07 02:01:26 0800 (Mon, 07 Nov 2016) | 1 line change HelloWorld.html first. ------------------------------------------------------------------------ r5 | user01 | 2016-11-07 01:50:03 0800 (Mon, 07 Nov 2016) | 1 line ------------------------------------------------------------------------ r4 | user01 | 2016-11-07 01:45:43 0800 (Mon, 07 Nov 2016) | 1 line Add function to accept input and to display array contents ------------------------------------------------------------------------ r3 | user01 | 2016-11-07 01:42:35 0800 (Mon, 07 Nov 2016) | 1 line ------------------------------------------------------------------------ r2 | user01 | 2016-08-23 17:29:02 0800 (Tue, 23 Aug 2016) | 1 line first file ------------------------------------------------------------------------ 2. svn diff
用来检查历史修改的详情。
检查本地修改比较工作拷贝与版本库比较版本库与版本库
2.1 如果用 svn diff不带任何参数它将会比较你的工作文件与缓存在 .svn 的原始拷贝。
svn diff
2.2 比较工作拷贝和版本库
比较你的工作拷贝和版本库中版本号为 3 的文件 rule.txt。 svn diff -r 3 rule.txt 2.3 比较版本库与版本库
通过 -r(revision) 传递两个通过冒号分开的版本号这两个版本会进行比较。 比较 svn 工作版本中版本号2和3的这个文件的变化。 svn diff -r 2:3 rule.txt 3. svn cat
如果只是希望检查一个过去版本不希望查看他们的区别可使用svn cat svn cat -r 版本号 rule.txt 4. svn list
svn list 可以在不下载文件到本地目录的情况下来察看目录中的文件 $ svn list http://192.168.0.1/runoob01 README branches/ clients/ tags/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915030.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!