在IC设计中的svn使用经验总结
2017-09-09 22:05
127 查看
svn权限
svn分支
项目中遇到的问题总结
svn内容太大怎么解
svn的trunk经常不稳定怎么解
疑问
svn使用者未及时提交代码至trunk分支怎么办
提交代码至trunk后在trunk里仿真不通过怎么办
别人发现bug后自己更新代码要在对方branches里提交尽量不在trunk里直接更新避免trunk不稳定
以下仅用于个人建议。
svn目录各层次
两者在svn工具里权限设置及其方便简单。
经验:
权限设置太细。svn管理会太繁琐;svn使用者遇到项目设计问题很难debug。
极其敏感的公共文件,设置可写权限即可。
tags
branches
这三个基本够用了。
svn使用者,尽量不受权限束缚。可以灵活处理各种项目问题,以避免出问题,只能求助svn管理员。
svn tags必须保证稳定性。方便项目设计的回顾。
svn分支,做到最简单直接有效。svn制定的规则越多,管理越混乱。
解决思路:
非常稳定的设计(比如购买的IP),放在trunk目录以外。
例如:
project
trunk
tags
branches
stableVerilog
stableVerification
svn使用者第一次需要checkout整个目录。
svn使用者第二次以及之后的svn操作,比如svn update project/trunk。不需要再svn up project。解决svn内容太大导致svn up太慢的弊端。
思想,仍然是使用分支merge操作。
解决思路:
svn tags的意义,更多是为了提供一个正式版本,为了FPGA仿真、R0signoff、R1signoff等。
svn tags还有一个重要意义,比如每周打一次tag。以便trunk跑不通的时候,知道系统项目的哪个版本是最近稳定的。tag的名称,可以是日期+版本号的形式。
例如;
trunk版本,只有打tag的时候,才是有意义的。trunk版本是大家共同维护的主干分支,所有代码都要及时提交至这个主干分支里;不必强求,每周打tag之前把自己代码全部提交,不可能做到,只求自己代码稳定时,就更新至trunk分支里。
svn使用者,仿真使用的不是trunk最新版,是在branches里。同时,是基于最近稳定的tag版本。
例如;
svn merge命令是正规方法(之后再讲这个操作流程)。有些人会陌生恐惧,其实多做几次就理解消化成习惯了。当然,还有最原始的办法可以推荐。
例如;当svn://192.168.1.1/project/branches/qilei/20170909_r211,该分支提交完成(重点,已提交),并顺利通过仿真后,
因为提交的流程,可知trunk版本,是较为稳定的。因为每个人是仿真后提交的,所以错误都是容易马上解决的。
即便一时难以解决,自己仍然可以使用原始branches分支,继续维护代码。
svn分支
项目中遇到的问题总结
svn内容太大怎么解
svn的trunk经常不稳定怎么解
疑问
svn使用者未及时提交代码至trunk分支怎么办
提交代码至trunk后在trunk里仿真不通过怎么办
别人发现bug后自己更新代码要在对方branches里提交尽量不在trunk里直接更新避免trunk不稳定
以下仅用于个人建议。
svn权限
svn用户svn目录各层次
两者在svn工具里权限设置及其方便简单。
经验:
权限设置太细。svn管理会太繁琐;svn使用者遇到项目设计问题很难debug。
极其敏感的公共文件,设置可写权限即可。
svn分支
trunktags
branches
这三个基本够用了。
项目中遇到的问题总结
基本原则:svn使用者,尽量不受权限束缚。可以灵活处理各种项目问题,以避免出问题,只能求助svn管理员。
svn tags必须保证稳定性。方便项目设计的回顾。
svn分支,做到最简单直接有效。svn制定的规则越多,管理越混乱。
svn内容太大,怎么解?
svn内容太大,危害就是svn up、svn co、svn st的过程缓慢。解决思路:
非常稳定的设计(比如购买的IP),放在trunk目录以外。
例如:
project
trunk
tags
branches
stableVerilog
stableVerification
svn使用者第一次需要checkout整个目录。
svn co svn://192.168.1.1/project project
svn使用者第二次以及之后的svn操作,比如svn update project/trunk。不需要再svn up project。解决svn内容太大导致svn up太慢的弊端。
svn的trunk经常不稳定,怎么解?
项目更新,都在trunk分支上。但是不能保证每个人提交的内容,在trunk下都能稳定跑项目仿真。思想,仍然是使用分支merge操作。
解决思路:
svn tags的意义,更多是为了提供一个正式版本,为了FPGA仿真、R0signoff、R1signoff等。
svn tags还有一个重要意义,比如每周打一次tag。以便trunk跑不通的时候,知道系统项目的哪个版本是最近稳定的。tag的名称,可以是日期+版本号的形式。
例如;
svn cp svn://192.168.1.1/project/trunk svn://192.168.1.1/project/tags/20170909_r211
trunk版本,只有打tag的时候,才是有意义的。trunk版本是大家共同维护的主干分支,所有代码都要及时提交至这个主干分支里;不必强求,每周打tag之前把自己代码全部提交,不可能做到,只求自己代码稳定时,就更新至trunk分支里。
svn使用者,仿真使用的不是trunk最新版,是在branches里。同时,是基于最近稳定的tag版本。
例如;
svn cp svn://192.168.1.1/project/tags/20170909_r211 svn://192.168.1.1/project/branches/qilei/20170909_r211
svn merge命令是正规方法(之后再讲这个操作流程)。有些人会陌生恐惧,其实多做几次就理解消化成习惯了。当然,还有最原始的办法可以推荐。
例如;当svn://192.168.1.1/project/branches/qilei/20170909_r211,该分支提交完成(重点,已提交),并顺利通过仿真后,
#检查自己的修改与trunk分支的代码区别,参数-q,只会报告不同的代码。 svn diff svn://192.168.1.1/project/branches/qilei/20170909_r211 svn://192.168.1.1/project/trunk -q #更新trunk版本至最新版 svn up project/trunk #把自己负责的代码,拷贝到 svn cp project/branches/qilei/20170909_r211/xxx.v project/trunk/xxx.v #最后,在project/trunk里查看所有更改 svn diff xxx.v #本着对自己对他人负责的态度,跑一遍project/trunk的仿真;然后提交至trunk分支,顺便提交一个系统最近稳定的tag版本 svn ci xxx.v -m "commit my code to trunk" svn cp svn://192.168.1.1/project/trunk svn://192.168.1.1/project/tags/20170909_r258 #至此,已经完成一个循环 svn cp svn://192.168.1.1/project/tags/20170909_r258 svn://192.168.1.1/project/branches/qilei/20170909_r258
疑问?
svn使用者未及时提交代码至trunk分支,怎么办?
svn使用者在分支branches仿真稳定后,就应该提交至trunk;如果trunk仿真通过,branches就使用最新的环境。这个过程如上介绍,没什么复杂和时间花费。提交代码至trunk后,在trunk里仿真不通过,怎么办?
找错误负责人,赶紧debug。因为提交的流程,可知trunk版本,是较为稳定的。因为每个人是仿真后提交的,所以错误都是容易马上解决的。
即便一时难以解决,自己仍然可以使用原始branches分支,继续维护代码。
别人发现bug后。自己更新代码,要在对方branches里提交。尽量不在trunk里直接更新,避免trunk不稳定。
相关文章推荐
- Linux环境SVN命令行使用经验总结
- android开发环境搭建与SVN使用经验总结
- svn 使用指南(经验总结版)
- Linux环境SVN命令行使用经验总结
- svn使用经验---不断总结
- Linux环境SVN命令行使用经验总结(转)
- svn使用经验总结
- 关于svn下 cocopods使用经验总结
- ORACLE PL/SQL使用经验总结 [转]
- JTree用法及JTree使用经验总结(吐血推荐)
- JTree使用经验总结
- UrlRewriter 使用经验总结
- FreeBSD6.2在VMware虚拟机中使用的一些经验总结
- 使用JfreeChart开发图表经验总结(含源码)
- jfreechart使用经验总结(针对版本:jfreechart-1.0.0-pre2.zip)
- SQL优化-索引 (四)其他书上没有的索引使用经验总结
- 使用用隐藏的 IFrame 提交表单开发的经验总结
- 对ppt使用的一些经验总结
- 水晶报表的使用经验和资料总结
- 网友们总结使用blog的各种技巧和经验