一、TortoiseSVN Client 获取服务器端的文件到新的本地文件夹
1.在本地新文件夹上右键菜单:
2.打开Repo-browser(可能需要输入你的用户名&密码)
3.输入服务器端SVN(仓库)的地址,OK后就可以看到服务器端的目录了
@1.可以查看服务端不同版本号下的数据;
@2.如果想下载某个文件夹或文件,右键CheckOut;
@3.有些目录你可能没有权限。
上图中的Checkout Depth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。
上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入:SVN服务器中的代码库地址,然后输入你的用户名&密码即可
4.点击确认后,即可将服务器端的数据下载到本地文件夹。
当数据下载完成后,该文件夹我们称之为Work Copy文件夹,打开该文件夹
其中.svn是隐藏文件夹啊,保存文件/文件夹版本状态等数据。
5.打开项目文件后,新建,修改文件/文件夹,其对应状态会发生改变:
可以设置对应图标:右键TortoiseSVN->Settings
当你通过commit(提交)后,有时候图标并没有及时变更,因为Windows本身的问题,此时,多按F5几次,应该就可以解决这个问题。如果,仍然不行,表示您之前的commit动作有问题。
为了确保您工作目录中的档案与大家的档案是同步的。建议您在编辑前都先进行更新的动作。在此,我们都先假设您已经将档案Checkout(迁出)过一次。现在要说明的是如何在一个Checkout过的目录进行update。在想要更新的档案或目录icon上面按下鼠标右键。并且选择SVN Update。
6. 有时我们需要回溯至特定的日期或是版本,这时就可以利用SVN的Update to revision的功能。在想要更新的档案或目录icon上面按下鼠标右键。并且选择SVN->Update to revision。
可以回溯到Head revision。当然也可以选择特定的版本。记不住版本就选择show log选择一个!
二、TortoiseSVN Client加锁操作
1.如果某个项目是由你单独复制或者某个项目某段时间由你负责,你可以在每次改动前都Get lock,这样其他人就不能更改此文件了。 不然两个人修改同一个文件的话就麻烦了。锁上后显示一个小锁!没反应就F5刷新!
2.修改完毕后当然要解锁了!Release lock!
三、签入(上传)源代码到SVN服务器
假如我们使用Visual Studio在文件夹TEST中创建了一个项目,我们要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击TEST文件夹,这时候的右键菜单如下图所示:
点击Import,弹出下面的窗体
点击OK按钮,会弹出窗体,要求输入凭据(用户名&密码)
上传完成。源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。
四、提交修改过的文件到SVN服务器
我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。
注意:提交源代码到服务器时,一定确保本机的代码是最新版本(现update一下),否则可能提交失败,或者造成版本冲突。
在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVN Commit…弹出下面的窗体:
点击OK按钮后,弹出如下图的窗体:
五、添加新文件到SVN服务器
我们在Model文件下添加一个新的类文件UserInfo.cs,在Model文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=>>Add,弹出如下图的窗体:
选中UserInfo.cs文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为修改状态。之后,我们要再SVN Commit这个文件一次,才可以将其真正提交到SVN服务器上的代码库中。
上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。
六、更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
注意:更新操作可能会因为版本冲突而失败,这时可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
七、重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。
八、删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。
说明:实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。
注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧!