1,软件下载
下载Subversion服务器程序Setup-Subversion-1.5.3.msi 。
下载Subversion的Windows客户端TortoiseSVN我用的是 TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi
服务器端和客户端最好是配套的,版本差异太大会出现各种问题。
2,服务器和客户端安装
服务器安装,直接运行Setup-Subversion-1.5.3.msi ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
安装TortoiseSVN,同样直接运行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示默认安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
3,建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create D:\svndemo\repository
就会在目录D:\svndemo\repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录D:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限
来到D:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,“=”前的字符就是用户名,后面的就是密码。还要注意“[users]”前面的注释“#”一定要删除掉。
5,运行独立服务器
在任意目录下运行:
svnserve -d -r D:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。
你也可以把svn服务器端注册成windows的服务,开机启动。
sc create svnservice binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svndemo\repository" DisplayName= "SvnService" depend= Tcpip start= auto
6,初始化导入
来到我们想要导入的项目根目录,在这个例子里是D:\svndemo\initproject,目录下有一个readme.txt文件:
右键->TortoiseSVN->Import...
在URL of repository输入“svn://localhost/trunk”
在Import Message中输入你的日志信息
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/trunk”。
7,基本客户端操作
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是D:\svndemo\wc1,运行右键->Checkout(要注意Checkout和Export的区别,Export是导出,与import相反的意思。而Checkout是从版本库中检出当前版本的拷贝),在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
正常情况下你会看见这些拷贝上都打上了钩。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,保存。发现被修改的文件打上了一个红色的感叹号。然后在该文件上右键->Commit...,最好能在Message处写上一些有用的信息
。比如修改了什么内容等。这样我们就把该文件的修改提交到了版本库。
如果你修改了多个文件,在目录的空白处右键->Commit可以把所有修改过的文件提交上去。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。
如何仅仅check out 我们想要的一个目录或者文件?1、使用TortiseSVN客户端 ,右键菜单中的“svn checkout”检出logo.jpg文件的上级目录images文件夹,在检出窗口中的“检出深度”处要选择“仅此项”,这样检出来才是一个空目录,本地命名为temp。
2、然后在temp文件夹上点右键,在弹出的TortiseSVN右键菜单中选择“检查更新”,在“检查更新”窗口中点击“检查版本库”,会列出该“images”目录下的所有文件。
3、在“检查更新”窗口中选中要检出的“logo.jpg”文件,点右键,在右键菜单中选择“更新”,即可将该文件单独检出。
方法2:命令行
1、检出目录images
svn co --depth=empty http://www.iusesvn.com/project1/images
images_work_dir
这样就在本地形成了一个工作拷贝目录images_work_dir
2、进入images_work_dir目录,单独更新logo.jpg
svn up logo.jpg
这样,我们就单独检出了logo.jpg,后面就可以对这个文件进行修改、提交等操作。
如何查看各个版本的差异?
先check out一个文件夹下来到本地(假设这个文件夹的内容好几次被修改了)。在这个文件夹右键单击->TortoiseSVN->ShowLog。出现一个列表,显示所有被修改的文件版本。
右键选中一个版本->Brose repository然后选中一个文件
在最下面的文件筐中右键->show changes
也可以在最上面的筐中右键->compage with previous reversion
如何过滤掉不想提交到svn服务器的文件或者文件夹?
右键->setting在ignore pattern中填写类似*.jpg(这样就不会提交图片了) *.swf *.bat */images/*( 这样就不会提交images目录了)
最后,说一下使用TortoiseSVN客户端的一般步骤:
先是右键->TortoiseSVN->import导入一个库,然后是Export把刚刚导入的检出。当有新的文件加入到本地的时候,要先TortoiseSVN->add
把文件加入版本库。当对文件有更改的时候,就SVN Commit。最后,可以SVN Update把当前本地和svn服务器上的资料进行更新。
如果你对文件进行了修改,在Commit之前就进行SVN Update操作,那么你的修改就消失了,和SVN服务器最近的一个版本一致。
用这个一定要小心,别千辛万苦改好了一个东西点一下就付之东流了!
下载Subversion服务器程序Setup-Subversion-1.5.3.msi 。
下载Subversion的Windows客户端TortoiseSVN我用的是 TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi
服务器端和客户端最好是配套的,版本差异太大会出现各种问题。
2,服务器和客户端安装
服务器安装,直接运行Setup-Subversion-1.5.3.msi ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
安装TortoiseSVN,同样直接运行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示默认安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
3,建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create D:\svndemo\repository
就会在目录D:\svndemo\repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录D:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限
来到D:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,“=”前的字符就是用户名,后面的就是密码。还要注意“[users]”前面的注释“#”一定要删除掉。
5,运行独立服务器
在任意目录下运行:
svnserve -d -r D:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。
你也可以把svn服务器端注册成windows的服务,开机启动。
sc create svnservice binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svndemo\repository" DisplayName= "SvnService" depend= Tcpip start= auto
6,初始化导入
来到我们想要导入的项目根目录,在这个例子里是D:\svndemo\initproject,目录下有一个readme.txt文件:
右键->TortoiseSVN->Import...
在URL of repository输入“svn://localhost/trunk”
在Import Message中输入你的日志信息
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/trunk”。
7,基本客户端操作
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是D:\svndemo\wc1,运行右键->Checkout(要注意Checkout和Export的区别,Export是导出,与import相反的意思。而Checkout是从版本库中检出当前版本的拷贝),在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
正常情况下你会看见这些拷贝上都打上了钩。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,保存。发现被修改的文件打上了一个红色的感叹号。然后在该文件上右键->Commit...,最好能在Message处写上一些有用的信息
。比如修改了什么内容等。这样我们就把该文件的修改提交到了版本库。
如果你修改了多个文件,在目录的空白处右键->Commit可以把所有修改过的文件提交上去。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。
如何仅仅check out 我们想要的一个目录或者文件?1、使用TortiseSVN客户端 ,右键菜单中的“svn checkout”检出logo.jpg文件的上级目录images文件夹,在检出窗口中的“检出深度”处要选择“仅此项”,这样检出来才是一个空目录,本地命名为temp。
2、然后在temp文件夹上点右键,在弹出的TortiseSVN右键菜单中选择“检查更新”,在“检查更新”窗口中点击“检查版本库”,会列出该“images”目录下的所有文件。
3、在“检查更新”窗口中选中要检出的“logo.jpg”文件,点右键,在右键菜单中选择“更新”,即可将该文件单独检出。
方法2:命令行
1、检出目录images
svn co --depth=empty http://www.iusesvn.com/project1/images
images_work_dir
这样就在本地形成了一个工作拷贝目录images_work_dir
2、进入images_work_dir目录,单独更新logo.jpg
svn up logo.jpg
这样,我们就单独检出了logo.jpg,后面就可以对这个文件进行修改、提交等操作。
如何查看各个版本的差异?
先check out一个文件夹下来到本地(假设这个文件夹的内容好几次被修改了)。在这个文件夹右键单击->TortoiseSVN->ShowLog。出现一个列表,显示所有被修改的文件版本。
右键选中一个版本->Brose repository然后选中一个文件
在最下面的文件筐中右键->show changes
也可以在最上面的筐中右键->compage with previous reversion
如何过滤掉不想提交到svn服务器的文件或者文件夹?
右键->setting在ignore pattern中填写类似*.jpg(这样就不会提交图片了) *.swf *.bat */images/*( 这样就不会提交images目录了)
最后,说一下使用TortoiseSVN客户端的一般步骤:
先是右键->TortoiseSVN->import导入一个库,然后是Export把刚刚导入的检出。当有新的文件加入到本地的时候,要先TortoiseSVN->add
把文件加入版本库。当对文件有更改的时候,就SVN Commit。最后,可以SVN Update把当前本地和svn服务器上的资料进行更新。
如果你对文件进行了修改,在Commit之前就进行SVN Update操作,那么你的修改就消失了,和SVN服务器最近的一个版本一致。
用这个一定要小心,别千辛万苦改好了一个东西点一下就付之东流了!