[No000092]SVN学习笔记3-Import/Checkout(迁入/迁出),GetLock(加锁)

一、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目录引用,这样有什么好处,自己想一想吧!

时间: 2024-10-10 16:57:48

[No000092]SVN学习笔记3-Import/Checkout(迁入/迁出),GetLock(加锁)的相关文章

svn学习笔记(一)

1. 检出命令 svn co http://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn co svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn checkouthttp:// 路径(目录或文件的全路径) [本地目录全路径]  --username 用户名  --password 密码 svn checkoutsvn:// 路径(目录或文件的全路

[No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会在比较差异 和应用补丁时帮助你应对这些修改.你将会在合并和追溯对话框中看到这些设置,它们同样也出现在TortoiseMerge 的设置中. 忽略行结束符 排除仅行结束符的差异. 比较空白 将所有缩进和行内空白差异视为增加/删除的行. 忽略空白修改 排除那些完全是针对空白数量或类型的修改,例如,修改缩

SVN学习笔记二——客户端使用

SVN部署完成并成功配置完成后,就是使用的事情了,对于SVN,使用最多的往往是开发人员而不是运维人员,所以可能一些开发人员在这方面都比运维人员更熟悉,在我的工作经历中就曾有一个开发自行搭建SVN并且给开发和运维做培训的,强! 好了,上面主要是说其实对于SVN使用反而是开发比较在行,所以这里就简单的记录一下SVN客户端的使用吧. Windows客户端的使用(TortoiseSVN) 1.安装TortoiseSVN,注意软件区分32位和64位,下载的时候请下载对应版本,然后安装只需下一步到完成即可.

[No000091]SVN学习笔记2

SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? 它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作. 一:SVN服务器搭建和使用. 二:客户端SVN基本使用.

svn学习笔记

1, Apache Subversion 官网下载地址: http://subversion.apache.org/packages.html#windows 官网下载提供的一般都是最新版本的,如果想下载其它版本的svn,可以在 http://alagazam.net/ 中选择合适的版本进行下载! 2,Setup-Subversion-1.7.2.msi 安装,并且将bin目录设置到环境变量中(我的版本安装之后,自动设置到了环境变量path中). 3, SVN服务器的创建 1) 创建一个根目录,

Python 学习笔记:import module

import module method 1: import module_name as module_alias import module_name,module_name,... method 2: from module_name import method_name,method_name,... import sys #Return a list that contain the module search path print sys.path #Append a path to

SVN学习笔记三——钩子的应用

钩子脚本的具体写法就是操作系统中shell脚本程序的写法,请根据自己SVN所在的操作系统和shell程序进行相应的写作所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改.每个钩子都会被告知足够多的信息,包括那是什么事件,所操作的对象,和触发事件的用户名.通过钩子的输出或返回状态,钩子程序能让工作继续.停止或是以某种方式挂起. 所以钩子实际上是一个能够针对svn的操作触发特定操作的脚本,其实看一下其中的模板可以知道,钩子也是shell脚本,通过这些脚本来完成一些我

svn学习笔记4(进阶应用)

工作副本相关命令: svn list    -列出当前目录下处于版本控制的所有文件 svn status      -列出工作副本中的文件(夹)的状态 svn log   -查看提交日志(来自svn ci 的 -m参数) svn info  -工作副本及文件(夹)的详细信息 svn list = svn ls  只会列出处于版本控制的文件的顶级目录,而不会递归显示出来, svn ls --recursive 会递归显示出来处于版本控制的所有文件夹下的文件 svn ls -v --recursiv

svn学习笔记5(高级应用)

HOOKS钩子应用: 何为钩子?当我们执行某些特定操作时触发执行预先设定好的任务 eg:首先进入hooks文件夹 复制post-commit.tmpl文件 为post-commit 然后更改权限为可执行 chmod +x post-commit 然后打开post-commit svn info svn://ip/版本库名称 --xml >>  /var/www/项目文件夹 然后重启svn服务 killall svnserve    svnserve -d -r /path/repos/ 版本库