SVN系统部署说明(CollabNet Subversion Edge + TortoiseSVN)
对互联网公司而言,SVN的重要性不言而喻。本文选用CollabNet Subversion Edge作为SVN服务端和控制台,以TortoiseSVN作为客户端部署SVN系统。CollabNet Subversion Edge控制台功能十分强大,便于维护管理,且能采用LDAP认证方式,适合部署了内部域控的组织。而TortoiseSVN客户端的功能和性能有口皆碑,无需赘述。
点击“OK”,在跳出的登陆框里输入用户名“admin”及其密码,按回车键登录。
可以发现成功登录版本库。
输入版本库url和检出目录,点击“OK”,在弹出的认证框里输入域账号及其密码,点击“OK”,开始检出版本库。
检出成功。
可以发现目标版本库被成功检出到目标文件夹里。
可以看到一些LDAP用户登陆过系统管理后台,点击角色列表,可以看到系统已经定义好的角色:
点击角色名可以将该角色授予用户:
![]DFNIMpng]( http://upload-imagesjianshuio/upload_images/4954542-90325a22ad0fe4f1pngimageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
TortoiseSVN是windows下一个非常优秀的SVN客户端工具,通过它我们可以可视化的管理我们的版本库。不过由于它只是一个客户端,所以它不能对版本库进行权限管理。
安装时按默认步骤安装即可,无需详述。
TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便。以下简要说明TortoiseSVN的每个菜单项如何使用。
点击SVN Checkout,弹出检出提示框,在URL of repository输入框中输入目标版本库地址,在Checkout directory输入框中输入本地工作拷贝的路径,点击确定,即可检出服务器上的版本库。
如果版本库在本地已有工作拷贝,则取得最新版本只是执行SVN Update即可,点击SVN Update,系统弹出更新提示框,点击确定,则把服务器上的最新版本更新下来。
把自己工作拷贝所做的修改提交到版本库中,这样别人在获取最新版本(Update)的时候就可以看到你的修改了。
显示当前文件(夹)的所有修改历史。SVN支持文件以及文件夹独立的版本追溯。
查看当前版本库,这是TortoiseSVN查看版本库的入口,通过这个菜单项,我们就可以进入配置库的资源管理器,然后就可以对配置库的文件夹进行各种管理,相当于我们打开我的电脑进行文件管理一样。
点击Check for Modifications,弹出一个列出所有待更新的文件及文件夹的状态的窗口。
查看文件的版本分支结构,可以点击Revision Graph,系统以图形化形式显示版本分支。
从版本库中获取某一个历史版本。这个功能主要是方便查看历史版本用,而不是回滚版本。注意:获取下来之后,对这个文件不建议进行任何操作。
如果你做了修改,那么当你提交的时候SVN会提示你,当前版本已失效(即不是最新版本),无法提交,需要先update一下。这样你所做的修改也就白费了。
如果你对工作拷贝做了一些修改,但是你又不想要了,那么你可以使用这个选项把所做的修改撤销。
如果当前工作拷贝有任何问题的话,可以使用这个选项进行修正。例如,有些文件原来是版本控制的,但是你没有通过tortoiseSVN就直接删除了,但是tortoiseSVN还是保留着原来的信息(每个文件夹下都有一个svn的隐藏文件夹,存放着当前文件夹下所有文件夹的版本信息)所以这就会产生一些冲突。可以使用cleanup来清理一下。
如果你不想别人修改某个文件的话,那么你就可以把这个文件进行加锁,这样可以保证只有你对这个文件有修改权。除非你释放了锁,否则别人不可能提交任何修改到配置库中。
Branch是分支的意思。例如当在设计一个东西的时候,不同的人有不同的实现,但是没有经过实践检验,谁也不想直接覆盖掉其他人的设计,所以可以引出不同的分支。将来如果需要,可以将这些分支进行合并。
tag是打标签的意思。通常当项目开发到一定程度,已经可以稳定运行的时候,可以对其打上一个标签,作为稳定版。将来可以方便的找到某个特定的版本(当然我们也可以使用版本号来查找,但是数字毕竟不方便)。
SVN对于分支和标签都是采用类似Linux下硬链接的方式(同一个文件可以存在两个地方,删除一个不会影响另一个,所做修改会影响另一个),来管理文件的,而不是简单的复制一份文件的拷贝,所以不会有浪费存储空间的问题存在。
文件创建分支后,你可以选择在主干工作,还是在分支工作,这时候你可以通过Switch来切换。
主干和分支的版本进行合并,在源和目的各输入文件的路径,版本号,点击确定。系统即对文件进行合并,如果存在冲突,请参考冲突解决。
把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的”√”符号标志。这个功能是方便我们部署用。
当我们需要发布一个稳定版本时,就可以使用这个功能将整个工程导出到某个文件夹,新的文件夹将不会包含任何版本信息了。
当服务器上的文件库目录已经改变,我们可以把工作拷贝重新定位,在To URL输入框中输入新的地址。
当我们版本库发生转移的时候就需要用到这个功能了。例如原先的版本库是建在U盘上的,现在转移到(复制整个配置库文件夹)开发服务器上,使用https代替文件系统的访问。因此就需要将原来的工作拷贝的目标版本库重新定位到开发服务器上。
选择要提交到服务器的目录,右键选择TortoiseSVN->Import,系统弹出导入提示框,在URL of repository输入框中输入服务器仓库地址,在Import Message输入框中输入导入日志信息,点击确定,则文件导入到服务器仓库中。
如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文件加入到提交列表中,要执行提交操作,点击执行提交(SVN Commit),即可把所有文件一次性提交到服务器上。
创建/发布补丁。如果管理员不想让任何人都随便提交修改,而是都要经过审核才能做出修改,那么其他人就可以通过创建补丁的方式,把修改信息(补丁文件)发送给管理员,管理员审核通过之后就可以使用apply patch提交这次修改了。
大多数项目会有一些文件(夹)不需要版本控制,如编译产生的obj, lst,等。这时候可以把这些文件加入忽略列表。
查看svn手册。这很必要,知道每个文件的作用。
可以这样查找相关svn文件:
#查找有关svn关键字的目录及文件
find / -name "svn"
find / -name "Svn"
find / -name "SVN"
#根据以上查找到的配置文件,来了解本机svn服务器的配置方法
有时候也会整合apache哦,你可以在apache的配置文件找相关<Location>段
root用户是Linux下的超级用户,相当于Windows7下的Administrator,就是最高权限,由于权限太高,有可能造成误删除之类的操作,一般建议新建一个用户,安装或配置相关的东西时可以sudo到root下
新建的用户下都有一些隐藏的文件,是基于这个用户的配置文件,比如bash_profile这个文件就相当于/etc/profile这个文件,只是前者只作用于当前用户,后者作用于所有
安装一些软件或服务,由于考虑到一些目录权限的问题,我一般用root安装,至于安装完后的其它用户没有权限访问这个服务的问题,可以用chown和chmod命令改一下属主或权限就行了
编译安装是可以指定安装路径的,--prefix指定的就是安装的路径,不指定的话会有一个默认路径,可以通过/configure --help 看到所有的参数。
原文:https://wwwcnblogscom/LiuYanYGZ/p/11029552html
1首先将svn的所指定的目录checkout到本地目录下:
使用svn co +服务器的地址(path),输入服务器的密码即可,此时会自动在本地目录下同步服务器你所指定的目录及里面所有的文件(其中co 即是 checkout的简写)
例如:svn co http://svnxxxcom/path
此时在本地目录下就会出现名为path的文件夹
2往版本库中添加新的文件(夹)
将所要上传的文件(夹)复制到svn服务器的指定文件结构目录下,跳转到该目录下然后执行:
svn add +文件名
如,svn add mappy
svn ci -m “ xx” mappy (“”号内加的是文件夹的注释) 或
svn commit -m 'xx' mappy
3上传完成之后,在svn服务器刷新即可看到上传的文件(夹)
可以通过TortoiseSVN软件访问。
1,下载TortoiseSVN,百度搜索TortoiseSVN在百度软件中心就可以下载了。
2,安装TortoiseSVN,双击运行,按照提示,选择安装目录,直到安装完成。
3,安装完成后,在桌面或者其他目录下右击鼠标即可看到TortoiseSVN的菜单。
4,导出项目,右击空白处,选择TortoiseSVN - checkout
5,按提示输入主机ip及目录,如1921681111/svn/test,输入服务器预设的账户名和密码。
6,检出完成后可以修改文件,进行提交和update操作。
先转到SVN的安装目录,比如,你安装在/home/svn 下面。然后转到bin目录下,在这里可以看见一个叫svnserve的文件,我们需要用这个来启动SVN服务。
1 首先查看svn的进程:
查看进程命令:ps -ef(查看所有进程);要筛选的话用grep,筛选svn的进程命令:ps -ef|grep svn。
2 杀死主进程:
杀死进程的命令用kill -9 进程id。
3:启动svn:
启动svn的命令用svnserve -d -r安装路径
-d表示svnserveexe作为服务程序运行在后台;-r表示将svn的目录当作根目录。
如何设置才能让Linux开机自动启动SVN
本节主要讲解一下Linux开机自启动SVN,上节我们讲解了Windows下开机自动启动SVN服务,通过本节的介绍你可以做一个对比,看一下在两种操作系统中开机自动启动SVN服务的区别,希望本节对你学习有所帮助。
在Redhat上配置好svnserve,通过Myeclipse访问,实现版本控制。但是开启svn服务是手工输入命令来启动,这样每次重启服务器后都得重新输一次命令,太麻烦。于是就有了新问题:如何让SVN随着服务器开机自己启动? 先了解一下Linux的自动运行程序,以下分割线内为转自
http://hibaiducom/wangtao8899/blog/item/dd7365c41c5423a18226ace1html的内容。 华丽的分割线 在RedHatLinux中自动运行程序 1.开机启动时自动运行程序
Linux加载后,它将初始化硬件和设备驱动,然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或/etc/rcd或/etc/rcd目录下的脚本文件,可以使init自动启动SVN其它程序。例如:编辑/etc/rcd /rclocal文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。 2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script:/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文 件中的一个:/bash_profile、
/bash_login、/profile,但只执行最先找到的一个。因此,只需根据实际需要在上述文件 中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexecbat)。 3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/bash_logout。例如,在/bash_logout中加入命令"tar-cvzfcsourcetgz*c",则在每次退出登录时自动执行"tar"命令备份*c文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些 文件中的命令。用户可以通过crontab命令来建立、修改、删除这些命令文件。例如,建立文件crondFile,内容 为"00923Jan*HappyBirthday",运行"crontabcronFile"命令后,每当元月23日上午9:00系统自动执 行"HappyBirthday"的程序("*"表示不管当天是星期几)。
wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('ad-hidden')hide();}, function(){$('ad-hidden')show();});
5.定时自动运行程序一次
定时执行命令at与crond类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at[-ffile]time,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
1 $at12:00
2 at>mailtoRoger-s″Havealunch″Ctr-D 3 Job1at2000-11-0912:00
4
2000-11-0912:00时候自动发一标题为"Havealunch",内容
为plantxt文件内容的邮件给Roger。
5 #!/bin/bash 6 RESTART=""#里面写相应服务代码
7 START="" 8 STOP="" 9
case"$1"in 10 restart)
11 $RESTART 12 echo"";; 13 start) 14 $START
15 echo"";; 16 STOP)
17 $STOP
18 echo"";;
19 )
20 echo"Usage:$0{restart¦start¦stop}" 21 exit1 22 esac 23
exit1
脚本写完要修改一下权限chmodu+xtestsh 首先,linux随机启动SVN的服务程序都在/etc/initd这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个文件里让系统能够按顺序执行,类似windows下的autorundat文件),另外在/etc这个文件夹里还有诸如名为 rc1d,rc2d一直到rc6d的文件夹,这些都是
linux不同的runlevel,我们一般进入的Xwindows多用户的运行级别是第5 级,也就是rc5d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc(1-6)d文件夹下的文件其实都是 /etc/initd文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在/etc/initd文件夹下是全部的服务程序, 而每个rc(1-6)d只链接它自己启动需要的相应的服务程序!要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可 以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本 程序,把它放到/etc/initd里,然后在rc5d里做一个相应的软链接就可以了。这个脚本其实很简单,就两行: #!/bin/bash /usr/bin/scim 第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。还需要注意的一点是,在rc5d里,每个链接的名字都是以S或者K开头的,S开头的表示 是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S 改成K后,这个服务就不能随机启动sVN了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动。 华丽的分割 线 了解这些后,(计算机基础知识) 作法就很简单了。 1创建执行脚本svnsh(/root路径下),其内容很简单,如下: #!/bin/bash svnserve-d--listen-port8080-r/home/svnroot/repository 2添加可执行权限命令行运行#chmodug+x/root/svnsh 3添加自动运行打开(vi或gedit)/etc/initd/rcd/rclocal,在最后添加一行内容如下:/root/svnsh保存 退出http://wwwwoaidiannaocom。 4检查重启服务器,使用ps-ef看看svn进程是否启动了。哈哈,轻松解决,以后开机就自动启动svn了。
0条评论