声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。
SVN是干什么的?SVN的作用体现在协同开发上。什么意思?
假设有2个开发者,你写好了代码,交给我使用。你怎么给我?拿u盘拷贝?再假设,写好的代码每次都手动找到客户端上传代码到服务器上?这样的手段都太麻烦。
SVN它有客户端与服务器之分,客户端可以快速上传代码到服务器,另一个客户端则可以下载你刚才上传的代码。SVN的整体就像是资源共用。
演示:
先使用别人构建的SVN服务器,先注册
注册完成
点击创建项目:
填写一些信息
创建成功后,重要的信息是,用户名、密码、SVN地址
用户名密码,就是我们创建账户的用户名密码,上传的时候用户名密码就是身份验证。 SVN的地址是上传与下载的地址
创建成功后,我们拿到了3个信息。用户名,密码,地址。下面就可以使用SVN了
下载客户端:
安装后:
创建SVN的测试夹子,一个是上传一个是下载:
目前这两个夹子都是空的
我们在upload夹子中写上文件:
里面记录了一些内容,upload夹子中就有内容了。
写好了,假设这就是我们写好的代码,我们要上传到服务器上去。
退回到上一次选择到文件夹:
反键选择tortoiseSVN,tortoise翻译:乌龟。乌龟就是SVN的标志,这就是SVN。右键选择SVN选择import上传到服务器。
在弹出的对话框中,我们选择要上传到的服务器的地址,这个我们填写刚才申请的地址,点击OK。在弹出的对话框中填写用户名密码。
上传成功后,会告诉我们情况:
在另一个文件夹中,我们选择下载别人提交的资源:
填写地址
地址就是之前那个人上传的地址,他上传到哪里,我们就去哪个地址上取文件下来。
他会将那个地址中的资源全部下载下来,第一次也是需要身份验证的。
空文件夹子就有对方传递上去的资源了
我们对内容产生修改:
这个时候我们就不是又上传新的文件到地址上了,这里有2个选项:
一个是commit,一个是update,一个是提交一个是更新。提交是我编辑完了又提交到地址上。更新是对方编辑完了,我下载下来。
提交就不用上传了。因为服务器已经有一份了,我在提交就重名了,更新的意思是更新新的内容上去。
点击OK更新完毕:
对方也点击下载:
看到内容发送改变了:
下载后按钮变成了提交与更新:
我们这只是是同一个文件夹下,两个不同文件夹做交互。如果这两个文件夹分别是两个不同的客户端呢?这样不就是两端进行共享?
你写好了commit提交,你提交了我update更新即可。
当前要做到update与commit的要求是双方至少要有一次下载,即我上传到地址上,你下载了你就可以commit与update。我也需要在下载一次才能update与commit。
他们之间的都是文件夹之间的交互,是上传文件夹,下载文件夹。更新与提交也是对文件夹操作,对文件SVN反键没有看到上传与下载。
这就是SVN,对于协同合作的开发者来说,这样就有如在一个端进行操作。你提交我更新。我提交你更新。就无需文件之间的相互传递。但SVN提交的是目录,SVN是多个端共享一个服务器地址上的资源。
SVN多个客户端共享一个地址上的资源,只需要多个客户端填写相同的地址即可。这个资源的身份验证是靠用户名与密码来验证的。这样就有效的避免了传来传去的麻烦,只需要下载一次剩下的是提交与更新即可。
如果需要更换SVN地址呢?比如又和别人合作?
右键选择SVN再import:
填写新地址即可
别人要引入,在选择新的地址即可:
Vv文件夹中就有了cc提交的内容:
别人是看不到的,因为他们所属不再一个地址下,是不同的地址:
如果是更换仓库地址,则和之前仓库填写的信息不一样,则又会再次要求用户名与密码
但是也不影响其他地址库交互:
也就是一个客户端,可以交互多个地址,而不需要担心会不会混乱的情况
SVN在协同合作开发上,做到多个客户端共享一个资源仓库。下载、提交、更新。资源都在服务器上。客户端对共同的资源使用commit与update产生交互。