- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
SVN面试题及答案
一、基础概念题
什么是SVN的工作副本(WorkingCopy)?和版本库(Repository)有什么关系?
答案:工作副本是本地电脑上从版本库拉取的代码文件夹,能直接修改、编辑;版本库是存储所有代码版本、历史记录的中央仓库(本地或远程)。两者通过svncommit(本地改同步到仓库)和svnupdate(仓库改同步到本地)保持同步,工作副本相当于版本库的“本地镜像”。
SVN里trunk、branches、tags三个目录分别用在什么场景?
答案:trunk是主干,存项目日常开发的最新代码,团队主要在这协作;branches是分支,比如开发新功能时建“feature-登录”分支(不影响主干)、修复线上bug建“hotfix-订单报错”分支;tags是标签,用于标记稳定版本(如发布版本“v1.0.0”),不能修改,仅作存档,避免误改发布版代码。
什么是SVN的版本号?它是按文件还是按项目递增的?
答案:版本号是SVN给每次提交(commit)分配的唯一数字(从1开始递增),按项目整体算,不是单个文件。比如改了A、B两个文件后一次提交,版本号从5升到6,此时A和B的最新版本都是6,能通过版本号定位整个项目某一时刻的状态。
二、实操命令题
刚拿到一个新项目,怎么从远程SVN仓库拉取代码到本地?
答案:先在本地建空文件夹,打开命令行进入该文件夹,执行svncheckout远程仓库地址(简称svnco地址),比如svnco/project/trunk,等待拉取完成,本地就有工作副本了。
本地修改代码后,想提交到版本库,需要做哪几步?如果提交前发现本地代码和仓库最新版有冲突,怎么处理?
答案:正常提交步骤:①svnstatus(简称svnst)检查本地修改文件(红感叹号是修改,问号是未纳入版本控制的新文件);②svnadd新文件名(若有新文件需先加入版本控制);③svncommit-m提交说明(说明要写清楚改了什么,比如“修复登录页验证码不显示问题”)。
若提交前冲突:先执行svnupdate(拉取仓库最新代码),此时冲突文件会标红,打开文件会看到.mine(本地修改)、=======(仓库修改)、.rxxx(仓库版本号)的标记,手动编辑保留正确代码,删除冲突标记,再执行svnresolved冲突文件名(标记冲突已解决),最后重新commit。
本地改了代码,但还没提交,突然不想改了,怎么恢复到和仓库最新版本一致?
答案:执行svnrevert文件名(单个文件)或svnrevert-R文件夹名(整个文件夹,-R是递归),注意:revert会直接丢弃本地未提交的修改,无法恢复,执行前最好用svnst确认要恢复的文件。
想查看某文件最近5次的修改记录,包括谁改的、改了什么内容,用什么命令?
答案:执行svnlog-l5文件名(-l5表示显示最近5条记录),能看到版本号、作者、提交时间、提交说明;若想查看具体修改内容,加-v参数(svnlog-l5-v文件名),会显示文件的增删改细节。
三、协作与进阶题
团队里有人误提交了敏感文件(比如数据库密码)到SVN,怎么彻底删除这个文件的所有历史记录?
答案:普通svndelete只能删除当前版本的文件,历史记录还在,需用svnadmindump和svnadminload重写版本库:①先备份原仓库:svnadmindump/原仓库路径backup.dump;②创建新仓库:svnadmincreate/新仓库路径;③过滤敏感文件并导入新仓库:svndumpfilterexclude敏感文件路径backup.dump|svnadminload/新仓库路径;④最后让所有人重新checkout新仓库,注意:操作前要通知团队暂停提交,避免数据丢失。
怎么给SVN仓库配置权限?比如让开发组能读写trunk,测试组只能读trunk?
答案:通过仓库的conf目录下的三个文件配置:①svnserve.conf:开启权限验证(把#password-db=passwd和#authz-db=authz前的#去掉);②passwd:添加用户(格式“用户名=密码”,比如“dev1=123456”“test1=654321”);③authz:配置权限,先分组([groups]dev=dev1,dev2;test=test1),再配路径权限([/trunk]@dev=rw;@test=r,rw是读写,r是只读),配置后重启svn服务生效。
SVN和Git
您可能关注的文档
最近下载
- 防火墙功能测试表.pdf VIP
- 2025河南应用技术职业学院教师招聘考试试题.docx
- 中国经导管主动脉瓣置换术临床路径专家共识解读(最新版)PPT课件.pptx VIP
- 简单判断的演绎推理方法(同步练习) 高中政治统编版选择性必修三逻辑与思维.docx VIP
- 小巨人机床配置气源要求.pdf VIP
- 高考高中古诗词鉴赏之十三种描写手法诗歌鉴赏专项练习.doc VIP
- 小巨人机床配置油品要求.pdf VIP
- 2023年河南应用技术职业学院教师招聘考试笔试试题及答案解析.docx VIP
- 2024年河南应用技术职业学院教师招聘考试笔试模拟试题及答案解析.docx VIP
- 肠梗阻病人的护理课件.ppt VIP
文档评论(0)