2024年3月31日发(作者:)

TortoiseSVN是一个SVN的客户端,下面是我以前不知道从哪复制的大致使用,希望对你

有用:

五.客户端的使用

ut Repository

首先要Checkout服务器端的Repository,

所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。

这个Checkout和Visual Source Safe的Checkout意义完全不一样,

VSS的Checkout指的是锁定某个文件,如果你以前使用过VSS,

在学习Subversion时这个问题一定要注意。

Checkout的具体方式是:

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

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

之后在“URL of Repository”文本框中填入你想要连接的Repository的地址,

这个URL地址可以用浏览方式加入。

对于在本教程第二节建立的Repository,

URL应该是“svn://xxx/project1”

(xxx可以是服务器端主机名,也可以是服务器端的ip地址)。

然后点OK,会弹出一个认证对话框,

输入在教程第三节设置的用户名和密码。

点OK后就完成了对Repository的Checkout。

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

那么Checkout之后F:Project1目录下也会出现一个文件。

在本例中由于服务器端的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下单击右键,,

将你所做的修改提交到Repository。

文件的状态图标也会更新。

不管你在“Working Copy”内添加、修改、删除文件后,

要想其他人也看见你的修改,

都必须用Commit命令将所做修改递交到服务器端的Repository。

3.修改文件

用文本编辑器或IDE对文件修改后,

文件的状态图标会变化,

然后单击右键,

提交修改,只有当执行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进行了修改,