hyc.bjufida.com 在文章中给各位erp系统使用者介绍的是svn多项目如何管理软件和svn怎么创建项目的内容,相关问答解读应该能够对您有帮助,如果未能解答您的疑问,可添加客服微信。
1、可以操作。
2、前提你是要熟悉SVN的分支的原理。只下载主线目录(通过TSVN的主线与分支的切换,合并到本地,合并源选对方以及提交选择路径实现),
3、后果的话,因为你是N个分支-主线先合并,主线上拥有了所有分支的特性,然后再主线把其他分支的特性合并到某个分支。相当于所有的分支都是从新的版本出发的。SVN操作上和软件开发上问题不大,主要是这样做不方便分支的管理。
4、第一种SVN开发方式:集中主线开发,分支辅助实现(软件变体、交迭、缺陷修复、隔离试探、多层集成、第三方源码),然后合并到主线,然后关掉分支。
5、你这种SVN开发方式是第二种,trunk上实现 集成、构建、测试和发布,分支用来开发。最大的问题也就是你说的冲突,因为分支本身是隔离的,分支内部能交流,分支之间无法交流,无法共享代码,容易对项目的理解产生分歧导致无法合并,另外权限控制也是个很严重的问题,可能分支的权限会放的比较开,有些人会修改其他人负责的代码。合并操作的频率非常高,也容易出现合并的逻辑出问题或者忘记了合并,导致主线构建不成功。
6、如果你用第二种方式,做法应该是-:分支开发-分支合并到主线-主线合并到分支-构建-测试-发布-关闭原分支-新的分支 .....。也就是说 只要你发布了版本就应该重新开分支。这样的后果就是分支无法进行下一个版本的新功能的开发。你原有的做法会导致版本在需要发布的时候因为模块进度不同 导致选择需要合并的文件时混乱。
这个很简单,几个关键点把握好就行了:
1、apache的httpd.conf中,使用SVNParentPath,而不要用SVNPath,否则每次增加一个人的SVN库就要修改一次这个配置文件,就要重启一次apache。httpd.conf中加上类似如下一段内容:
Location /svn/
DAV svn
SVNParentPath f:\svn_repos
SVNListParentPath on
AuthType Basic
AuthName "Project SVN"
AuthUserFile f:\svn_repos\passwd.conf
AuthzSVNAccessFile f:\svn_repos\access.conf
Require valid-user
/Location
其中SVNParentPath指向存放所有人的SVN库的父文件夹,AuthUserFile指向存放用户ID、密码的那个文件,AuthzSVNAccessFile指向权限控制文件。
2、给每个人建立一个单独的SVN库,手动命令行svnadmin create建库,或用类似TortoiseSVN的客户端建库,都行,建的库统一放到SVNParentPath指向的文件夹中。
3、权限文件中分不分组都无所谓了,反正你是一个人一个库,内容类似如下:
[groups]
scm = Your_ID
manager = Manager_ID
[/]
* =
@scm = rw
@manager = r
[user001_repo:/]
user001 = rw
[user002_repo:/]
user002 = rw
[user003_repo:/]
user003 = rw
按上面配置的话,你作为scm可以对所有库进行读写操作,你们的经理可以查看所有库的内容但不能修改,user001、user002、user003只能分别对名为user001_repo、user002_repo、user003_repo的库进行读写操作,而看不到其他库。(你也只告诉他对应的那个库的url就行了,不必告诉他上层的url)
要达成你的目的,需要做以下几件事:
1、搭建一个SVN服务器,为你的项目建立一个代码库;
2、规划人员分工和代码库的目录结构,让每个人的工作成果尽量不要存放在同一个文件夹内;
3、设置SVN服务器的访问权限,让每个人只能访问自己的工作成果所在的文件夹;
4、增加一个代码库的管理员用户,这个用户拥有所有文件夹的读取权限,但不要让其它项目组成员知道这个用户的密码;
5、搭建一个或几个项目组统一的测试环境,所有人的测试都在这些测试环境中进行;
6、设计一个脚本,通过这个脚本,以代码库管理员用户的身份自动从SVN服务器上取出最新的代码,实现源代码的自动编译,并自动部署到测试环境;
7、通过SVN服务器端的post-commit钩子调用这个脚本,每次commit后就自动会自动执行这个脚本,实现每次commit后就自动将最新代码部署到测试环境。(当然,也可以不用post-commit钩子,改为在需要测试时手动执行这个脚本。)
总体思路就是这样了,里面每一步的实现细节就要靠你自己去查资料了。
如果自动编译、部署难以实现,可以在项目组中设置一个配置管理员,由他手动完成这些事情。
另外,要完美实现上述操作,就必然用到SVN的分支/标记功能,否则不断滚动开发的不稳定代码、用于测试的代码就无法区分开,这要求项目组内部必须有统一的使用SVN的纪律和约定。
svn服务器怎么添加多级项目,这里分享下操作方法。
设备:联想电脑
系统:win8
软件:svn
1、首先在电脑中打开VisualSVN Server Manager软件,如下图所示,找到users。
2、然后选择【Create User】或者【新建】,如下图所示。
3、选择新建之后,点击【User】。
4、最后在打开的窗口中,填写Username和password后,点击【ok】按钮,添加项目就完成了。
也解决这个问题,需要分三步:
1、在规划源码目录结构的时候,尽量将每个开发人员所负责的文件夹分开,尽量避免多个人修改同一个文件夹下的内容。
2、在SVN权限设置上,设置为每个开发人员只拥有自己所负责文件夹的读写权限,对其他人负责的文件夹不给任何权限,项目主管拥有所有文件夹的读写权限。
3、实现源码的自动编译、部署到测试服务器上,也就是说可以在需要测试的时候,自动将最新版的代码编译后发布到测试服务器上,而不需要开发人员拿到所有的代码自己去编译部署。
其中第1、2步相对比较简单,难在第3步。实现第3步关键是要改变测试习惯,需要将开发环境和测试环境分离,一般要有一台测试服务器(可以考虑直接搭建在SVN服务器所在的主机上),要测试时就通过某种方式将最新代码编译后部署到测试服务器上,而不能是开发人员用自己的电脑来做测试服务器。
具体有多种方式,比如大名鼎鼎的开源软件hudson就是用来干这个的,用于实现系统的自动编译、部署。
如果想简单处理的话,可以用SVN的post-commit钩子实现,这个钩子存放于SVN服务器端的hooks文件夹下,每次成功commit后都会自动触发执行。你可以自己编辑这个钩子的脚本内容,每次commit后将所有代码checkout或update到测试服务器上,并调用编译工具进行编译,最后部署到测试环境。
上面描述的只是一个简单思路,如果要完善解决的话,必然涉及到版本库的日常管理,需要区分出开发库、测试库,这必然要用到SVN的分支/标记功能,你可以看看我的百度文库,有篇在windows下使用SVN的PPT,其中关于分支的那几页可能会对你有些启发。
svn多项目如何管理软件的介绍就聊到这里吧,感谢你花时间阅读本篇文章,更多关于svn怎么创建项目、svn多项目如何管理软件的内容可本站进行搜索或者添加客服微信。