好文档 - 专业文书写作范文服务资料分享网站

svn详细使用教程-超经典

天下 分享 时间: 加入收藏 我要投稿 点赞

svn详细使用教程-超全面

TortoiseSVN是一个SVN的客户端,SVN客户端的使用 1.Checkout Repository

首先要Checkout服务器端的Repository,

所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。 这个Checkout和Visual Source Safe的Checkout意义完全不一样, VSS的Checkout指的是锁定某个文件,如果你以前使用过VSS, 在学习Subversion时这个问题一定要注意。 Checkout的具体方式是:

在客户端新建一个空目录,比如:F:\\Project1

在该目录上单击右键,在弹出式菜单中选中SVN Checkout...,

之后在“URL of Repository”文本框中填入你想要连接的Repository的地址, 这个URL地址可以用浏览方式加入。 对于在本教程第二节建立的Repository, URL应该是“svn://xxx/project1”

(xxx可以是服务器端主机名,也可以是服务器端的ip地址)。 然后点OK,会弹出一个认证对话框, 输入在教程第三节设置的用户名和密码。 点OK后就完成了对Repository的Checkout。

比如:在服务器端Repository中有一个a.txt文件,

那么Checkout之后F:\\Project1目录下也会出现一个a.txt文件。 在本例中由于服务器端的Repository还未添加任何文件, 所以在客户端的F:\\Project1下没有文件被Checkout。

执行Checkout除了会在F:\\Project1产生Repository存储的文件及目录外, 还会产生了一个“.svn”的隐含目录,该目录是由subversion管理的, 不要删除或者手工改动其中的文件和目录。

现在F:\\Project1中的文件和目录就叫做Repository的“Working Copy”简写“WC” (这个简写...汗)。

以后对Repository中文件和目录的修改,添加,删除的操作, 都是通过对这个“Working Copy”的操作实现的。 Checkout执行完后,

会发现F:\\Project1目录的图标的左下角附着了一个小的状态图标 (当F:\\Project1目录中的文件改变时,这个状态图标也会随之变化), 它表示F:\\Project1是一个Repository的“Working Copy”, F:\\Project1内的所有文件和目录也会有类似的状态图标。

2.添加文件

将要添加的文件或者目录拷贝到F:\\Project1下,

然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。 如果添加了不止一个文件或目录,

则鼠标不要在F:\\Project1中点中任何文件, 然后单击右键,TortoiseSVN->Add, 就可以添加多个文件或目录。

这时文件的状态图标会发生变化。

Add命令只是告诉本地的“Working Copy”将该文件纳入版本管理, 并没有将这个改变提交到服务器端,

如果想要别人也看见你对Repository的修改,你需要 在F:\\Project1下单击右键,SVN Commit..., 将你所做的修改提交到Repository。 文件的状态图标也会更新。 不管你在“Working Copy”内添加、修改、删除文件后, 要想其他人也看见你的修改, 都必须用Commit命令将所做修改递交到服务器端的Repository。

3.修改文件

用文本编辑器或IDE对文件修改后, 文件的状态图标会变化,

然后单击右键,SVN Commit...

提交修改,只有当执行Commit提交修改后,

你所作的修改才会反映到服务器端的Repository中。

4.删除文件

删除文件时,选中要删除的文件或目录, 单击右键,TortoiseSVN->Delete,提交修改。

注意千万不要用“Delete”键来删除文件,否则将无法提交你的修改。 这一点对目录的删除来说尤为重要。

5.放弃修改

当你添加、修改、删除文件后,决定放弃修改, 你可以单击右键,TortoiseSVN->Revert,

本地的“Working Copy”中的文件和目录会恢复到你修改前的状态。

6.获取Repository的最新版本 当一个团队合作开发项目时,

每一个人都在不断的对Repository进行更新, 你需要不断的更新自己的“Working Copy”, 以获取项目最新的文件。

当第一次获得最新Repository的文件时, 我们用Checkout命令,前面已经介绍了, 以后再获取最新文件时就不用Checkout了。 而改用Update命令。

接着前面的例子,这时F:\\Project1已经成为一个“Working Copy”了 (通过执行Checkout命令),现在其他人已经对Repository进行了修改, 我想将别人的修改反映到我的“Working Copy”中, 具体的方法是:在F:\\Project1目录上单击右键,

SVN Update。这时F:\\Project1中的文件就是最新的版本了。 注意,如果当你的“Working Copy”中有被修改的文件,

或者有被删除的文件,并且还未提交这些修改时, 这些文件在执行Update过程中是不会被更新的。 比如你修改了F:\\Project1下a.txt文件, 还未提交修改,那么,

当你对F:\\Project1进行Update时,

a.txt文件是不会更新为Repository上的a.txt文件的。 所以如果想放弃当前的所有修改,

并将F:\\Project1下所有文件及目录更新到最新版本,

应该先对F:\\Project1执行Revert命令再执行Update命令。

7.subversion的版本控制模型

当你用subversion进行版本控制时,

Subversion会记录你对Repository进行的每一次修改(包括添加,修改,删除等等), 每修改一次Repository都会产生一个新的Revision(修订版本号), 不同的Revision代表了不同时刻Repository的状态,

因此我们可以用这个Revision回朔任意时刻Repository的状态, 就像时间机器一样,也就是说某一Revision 就是Repository在某一时刻的一个“快照”。 注意:Revision不是针对某一个文件或者目录, 而是针对整个Repository而言的。

每修改一次Repository,Revision 都会增加1。

Subversion的版本控制模型是一种叫做Copy-Modify-Merge (拷贝-修改-合并)的模型。 考虑这种情况:

张三和李四是公司同一个部门的同事, 他们共同维护一个文本文件a.txt, 并且对该文件进行版本控制,

因此他们把这个文件放到一个Repository上共同维护该文件。 周一上午9点,张三和李四同时想对a.txt文件进行修改,

于是他们同时从Repository上取得该文件的最新版本(Revision 10), 然后进行修改。过了三分钟,张三首先完成了修改,

他在该文件的第五行修改了一个单词的拼写(将Typo改为Type), 于是张三对修改后的文件执行Commit命令, 将修改提交到服务器端的Repository中。 这时Repository的Revision变为11。 六分钟过后,李四也完成了他的修改,

他修改了该文件第十行上的一个单词拼写(将He改为She), 于是他也对修改后的文件执行Commit命令, 这时Subversion 在提交修改时会发现, 李四修改的文件是Revision10的a.txt文件, 而不是最新的Revision 11的a.txt文件。 于是,Subversion 提示李四在提交修改前, 应该先将Working Copy更新到最新版本,

李四执行Update命令将Working Copy更新到Revision 11,

svn详细使用教程-超经典

svn详细使用教程-超全面TortoiseSVN是一个SVN的客户端,SVN客户端的使用1.CheckoutRepository首先要Checkout服务器端的Repository,所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。这个Checkout和VisualSourceSafe的Ch
推荐度:
点击下载文档文档为doc格式
2q38018xz47g2499hhqp
领取福利

微信扫码领取福利

微信扫码分享