svn搭建文档模板.docx
《svn搭建文档模板.docx》由会员分享,可在线阅读,更多相关《svn搭建文档模板.docx(37页珍藏版)》请在冰豆网上搜索。
![svn搭建文档模板.docx](https://file1.bdocx.com/fileroot1/2023-2/2/b04383b1-bd38-47ca-8612-f6e02a3f9be0/b04383b1-bd38-47ca-8612-f6e02a3f9be01.gif)
svn搭建文档模板
000/400.02
Tellus2.0
文档模板
文档编号
000/400.02-GDS-TFW-006
版本
v0.01.00
发布日期
2011-4-18
生效日期
上海大征控制技术有限公司
所有权声明
该文档及其所含信息是上海大征控制技术有限公司的财产。
该文档及其所含信息的复制、使用及披露必须得到上海大征控制技术有限公司的书面授权。
文档状态(以√标识):
[√]草稿
[]正在修改
[]正式发布
编制
吴小军
日期
2011-4-18
日期
日期
日期
日期
审核
日期
日期
日期
日期
日期
批准
日期
日期
修订记录
类型:
创建(C)、增加(A)、修改(M)、删除(D)
版本
类型
日期
编制人/修订人
描述
0.01.00
C
2011-x-xx
吴小军
创建文档;全部章节
目录
1范围1
1.1标识1
1.2系统概述1
1.3文档概述1
1.4读者对象1
1.5与其它系统关系1
1.6术语及缩写1
1.7参考文档2
2系统概述3
2.1实现目标3
2.2条件与限制3
2.3运行环境3
2.3.1设备3
2.3.2支持软件3
2.3.3接口3
1范围
1.1标识
LINSpector
1.2系统概述
LINSpector固件代码的核心内容主要包括Boot和Firmware,其实Firmware又可分为协议处理、总线监测与仿真这三个功能。
LINSpector完全支持LIN协议规范版本1.0、1.1、1.2、1.3、2.0。
1.3文档概述
此文档提供LINSpector固件代码中如何实现Boot、协议处理、总线监测和仿真功能。
理解本文档的同时有必要首先熟悉LIN1.3、LIN2.0协议规范和阅读外围驱动概要设计。
1.4读者对象
此文档是为LINSpector项目中的研发人员所编写。
同时,对于想要了解LINSpector的功能实现的任何人员都是有帮助的。
此文档应该由以下人员阅读:
Tellus&LINSpector项目组研发团队人员和相关测试人员。
注:
对于环形缓冲区的设计请参考相关文献介绍,此处不再赘述。
1.5与其它系统关系
编译器使用Windows下的DOSShell。
1.6术语及缩写
表1.1术语及缩写
术语、缩写
解释
LIN
Localinterconnectednetwork
LEC
LINemulationcontrol
LDF
LINdescriptionfile
RAM
Randomaccessmemory
TPU
Timeprocessunit
PBL
Primarybootloader
CTM
Configurationtimemodule
SCI
Serialcommunicationinterface
UART
Universalasynchronousreceivetransmitter
LLC
Logiclinkcontrol
MAC
Mediaaccesscontrol
PWM
Pulsewidthmodem
1.7参考文档
【1】LINSpector250_Design_Specification.doc
【2】LINSpector底层驱动概要设计.doc
【3】LINSpector固件源代码
【4】LIN总线协议规范1.3.pdf
【5】LIN总线协议规范2.0.pdf
2系统概述
2.1实现目标
该文档需要给出LINSpector的Boot、协议处理、总线监测和仿真功能的实现,同时得出相应的结论和提出合理的建议。
2.2条件与限制
LINSpector的Boot、协议处理、总线监测和仿真功能的实现是LINSpector的Firmware的核心部分,学习消化阶段主要依赖LINSpector的固件源代码和通过搭建的编译环境验证,缺少完善的代码注释、编译器调试功能和相关开发文档会对学习消化进度产生一定的影响。
2.3运行环境
编译平台:
DOS平台(WindowsXPProfessional)
编译软件:
Microtec68KcompilerToolkitversion5.4
编译方式:
Makefile工程编译(需要安装BorlandC++builder6.0)
2.3.1设备
硬件设备:
LINSpector
烧写设备:
ICD-BDM
2.3.2支持软件
代码编辑工具:
SourceInsight3.5
文档编辑工具:
OfficeWord2003
2.3.3接口
烧写器与PC接口:
并口LPT1
烧写器与目标板接口:
BDM标准接口。
3svn服务器的搭建与使用
3.1svn服务器的概述
有一个简单但不十分精确比喻:
SVN=版本控制+备份服务器
简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。
并且自动的赋予每次的变更一个版本。
通常,我们称用来存放上传档案的地方就做Repository。
用中文来说,有点像是档案仓库的意思。
不过,通常我们还是使用Repository这个名词。
基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。
日后,当您有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVNserver的意思。
针对每次的commit,SVNserver都会赋予他一个新的版本。
同时,也会把每次上传的时间记录下来。
日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。
您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。
如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本
SVN的作用
1.备份工作档案是十分重要的。
您永远不知道计算机上的硬盘何时会坏掉。
根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。
例如,要release东西的前一刻,硬盘完全坏掉,无法修复。
所以,常常备份工作数据是非常重要的。
大部分公司的server都会有专门的备份机制,甚至是异地备援。
绝对比放在自己的计算机里头,或是随身碟上面来的安全。
2.版本控管非常重要。
您无法保证手头上最新版本永远都是对的。
很多时候,在经过数天努力工作后,您才发现走错方向。
需要将所有的修改回复到数天前版本。
没有几个人能够完全记住自己修改过什么东西。
如果没有做好版本控管,那么,最差的状况就是要全部重来。
3.伙伴间的数据同步也是非常重要的。
很多时候,除了您个人外,还有其它的伙伴也需要您的档案。
怎么把最新的档案提供给伙伴呢?
用e-mail?
根据经验,用e-mail是一个很差的办法。
到了最后,根本就不知道哪一封e-mail才是新的。
因为可能您最新的e-mail已经被当成垃圾信给丢了。
别忘了,现在很多e-mail软件都有anti-spam的功能,说不定这些信件都被当成广告信给处理掉了。
而且,您也应该知道一般档案如果放在e-mail内,档案大小会变得比较大(通常是原来的4/3倍以上)。
如果每天更新一次,恐怕几天没收信的话,信箱就爆了!
4.如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。
例如:
您有一个总共10MB的目录,使用单纯的档案备份。
如果有10个版本就会变成100MB。
20个版本就有200MB。
如果,不想备份这么多版本,势必就是要减少备份的次数。
拉长备份周期将会导致数据遗失的危险性增高。
把旧的不需要的备份删除?
根据经验,只要时间一拉长,您跟本就不知道一个月以前的版本是重要或者是不重要。
SVN能帮我们解决上面的问题吗?
答案是肯定的:
1.SVNRepository可以是自己计算机上的一个目录,或者是随身碟(不建议这样用)。
当然也可以是公司的服务器。
2.SVN有很棒的版本控管机制。
所有上传的版本都会帮您记录下来。
日后您可以随时取得某一个时刻的版本。
而且,也有版本分支及合并等好用的功能。
3.SVN可以让不同的开发者存取同样的档案,并且利用SVNServer作为档案同步的机制。
也就是说,您有档案更新时,无须将档案寄给您的开发成员。
只需要告诉他新的版本已经在SVNServer上面,请他自己去SVNServer上面就可以取得最新版本。
而且,SVNServer也可以做到当您上传新版本后,自动发信给相关的成员。
4.SVN的存放档案方式是采用差异备份的方式。
也就是说,他只会备份有不同的地方。
所以很省硬盘空间。
此外,他也可以针对所谓的非文字文件进行差异备份。
3.2Windows下Svn+apache2配置方法
一环境
操作系统:
windows2003server
Apache版本:
2.0.55
subversion版本:
Setup-Subversion-1.5.3.msi
TortoiseSVN版本:
TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi
提示:
Svn的版本更新都比较快我们一般都下最新版本的
SVN最常见的配置模式便是与Apache集成,这样SVN可以采用WebDev协议方式
提供服务。
主要的好处有:
通过Apache以HTTP方式穿透防火墙,便于在互联网环境使
用;提供目录的版本控制等。
下面将介绍如何将SVN集成在Apache上。
二安装步骤
1.安装Apache
如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。
请确保你输入正确的服务器URL(如果你的服务器没有DNS名称,你可以直接输入IP地址)。
注意:
输入ip地址是打开Apache安装目录下的httpd.conf文件进行修改,我建议你将Apache安装成forallUsers,onPort80,asaservice。
注意:
如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。
如果是这样,你可以到程序目录下的ApacheGroup"Apache2"conf目录中找到文件httpd.conf,将其中的Listen80改成一个不用的端口,比如Listen81。
然后重新运行这个安装程序,这次应该不会再有问题了。
测试Apache是否安装成功?
你可以在你的浏览器中键入测试Apache。
在IE中输入如http:
//192.168.0.153:
80/如过看到以下页面则证明
Apache安装正常。
如下图:
如果呈现itworks或出现一个已经配置好的网站,那么你的Apache就安装成功了。
2.安装Subversion并配置
a,双击Subversion的安装程序来完成安装,安装完毕之后。
我们进入subversion文件目录中(默认安装位置是:
c:
\ProgramFiles\Subversion), 在该目录中的bin文件夹中找到httpd/mod_dav_svn.so、mod_authz_svn.so文件,将它们拷贝到Apache的modules目录(通常为c:
\ProgramFiles\ApacheGroup\Apache2\modules)下。
b,打开Apache的配置文件httd.conf(通常为c:
\ProgramFiles\ApacheGroup\Apache2\conf\httd.conf),修改以下内容:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
修改为:
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_module modules/mod_dav.so
其实就是去掉这两行的注释。
然后在所有LoadModule节的最后添加以下两行:
#SVN
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
但是我安装完之后发现这个文件已经被做了那些修改,大概是新版的SVN安装程序做
了一些优化吧。
其实在成功安装SVN之后,Apache服务器已经和SVN初步集成。
此时apache页面显示图如下:
4:
建立一个SVN存放文件的目录,在D盘下创建一个文件夹:
D:
/SubversionFiles。
接下
来我们必须告诉Apache我们的资源库所在的路径,可以通过Location指令来完成这个设置。
因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目
录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。
在httpd.conf文件最后
添加下面配置:
#SVN
DAVsvn
SVNParentPath"D:
/SubversionFiles"
5:
下面作一个测试:
到D:
\SubversionFiles下建立一个子目录Test,然后到Apache下的Bin目录下执行
svnadmincreateD:
\SubversionFiles\Test
打开浏览器输入网址:
http:
//192.168.0.153:
80/svn/Test,应该可以正确访问,但当前
项目下还没有加入任何内容,所以显示为空的。
显示如下:
做到这里我们的服务器搭建就基本完成了,公司内部每个员工在自己的电脑上装上svn的客户端就可以使用了。
装完重启一下电脑就可以了。
至于服务器访问权限问题本公司暂不考虑。
下面在介绍一下客户端的使用。
3.3客户端使用简介
客户端的使用前提是前面的工作都正确完成。
3.3.1建立一个working目录
所谓的Working目录其实就是您平常用来存放工作档案的地方。
通常我们会等到自己的工作做的一个段落的时候再进行备份。
所以我们平常都是在Working目录下面工作,等到适当时机在commit到repository中。
举例来说,我们想在D盘下面建立一个名为working的目录。
首先先把这个目录建立出来。
此时,这个目录应该为空的。
在档案管理员中按下右键后(您可以在working目录的icon上按,也可进入working目录后,在空白的地方按),选择SVNcheckout。
接着您可以看到如下的画面:
首先我们要填入的是repository的位置,对于SVN来说,repository的位置都是URL。
由于我们前面已经在E槽建立一个repository,因此,我们现在要在URLofrepository这一栏填入file:
///E:
/svn_repo/。
接着,稍微看一下Checkoutdirectory,这个字段应该要指向您的working目录。
确认后,按下OK按钮,您应该可以看到如下的讯息窗口。
这样就表示动作完成。
按下OK按钮后,再到您刚刚建立的目录下。
您将会看到working目录下面多了一个名为.svn的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它)。
SVN会在您的工作目录下,以及其子目录下建立这个.svn的子目录。
您不应该进去这个目录,尤其不应该更动这个目录下面的任何内容。
否则会很可能会造成SVN无法正常运作。
由于,原来的repository是空的,所以我们现在的working目录也是空的。
如果您现在checkout的是一个已经有内容的repository,您将会看到working目录下面现在多了许多目录及档案。
如果您要在一个已经存在的SVNServer上面checkout出上面的档案,您只需要给定正确的URL以及working目录的名称。
就可以取得指定的档案及目录了。
3.3.2新增档案及目录到repository中
假设您前面的动作都无误。
现在您开始开发一个新的程序。
假设您开发的程序将放在前面建立的working目录下面的my_prj子目录。
如下所示:
假设您已经编辑好档案,准备把他们放到SVN的repository中。
您需要在my_prj目录的icon上面,按鼠标右键,并且选择TortoiseSVN->Add:
接着,TortoiseSVN会把准备要加入的档案及目录,显示给您看。
打勾的就是等下要被加入到Repository中的。
如果您有某些档案或是目录不想在这次加入,您可以让该项目不要被勾选。
如此,它就不会被加入到Repository去。
按下OK后,您将会看到如下的讯息窗口:
这样就表示成功了。
有一点要注意的是,这个Add的动作并未真正的将档案放到Repository中。
仅仅是告知SVN准备要在Repository中放入这些档案。
此时,如果您透过档案管理员查看这些档案,应该会看到一个白色红底的惊叹号在档案icon的下方。
这是表示您的working目录中的档案与Repository中的档案还没有同步。
现在我们要多一个commit的动作。
让这些档案真正的放入到Repository中。
您可以在my_prj目录的icon上或者是my_prj目录内的空白处按下鼠标右键,叫出如下的选单,并且选择SVNcommit。
紧接着,您将会看到如下的窗口出现:
在这个窗口中,下半部会列出一个清单,让您清楚的了解到哪些档案要被commit到repository中。
同样的,如果您有档案不想在这个时候commit到Repository,您可以取消选取的档案,这样他们就不会被commit到Repository中。
在档案列表的上方是Message栏,您可以在栏中输入本次commit的目的。
这是十分重要的字段,当您commit的次数很多时,可以靠这个讯息知道版本与版本之间的差异。
当您输入好Message,按下OK之后,就可以看到如下的窗口出现,通知您已经将指定的档案送到Repository中。
您可以到先前的folder中,确定是否所有的档案icon都有如下的绿色勾勾在上面,这样代表您的档案都正确无误的到repository中。
有时候,因为Windows本身的问题,您可能会看到有些icon没有变成绿色的勾勾。
此时,多按F5几次,应该就可以解决这个问题。
如果,仍然不行,表示您之前的commit动作真的有问题。
请仔细检查之前的commit动作是否正确。
3.3.3更新档案及目录
为何需要更新?
由于版本控制系统多半都是由许多人共同使用。
所以,同样的档案可能还有人会去进行编辑。
为了确保您工作目录中的档案与Repository中的档案是同步的。
建议您在编辑前都先进行更新的动作。
在此,我们都先假设您已经将档案checkout过一次。
现在要说明的是如何在一个checkout过的目录进行update。
在想要更新的档案或目录icon上面按下鼠标右键。
并且选择SVNUpdate。
正常的状况下,您可以看到如上的窗口。
在这个窗口中会显示有哪些文件更新了。
如果没有看到档案更新的相关信息,这表示您的目录中的档案已经是最新的,所以无须进行更新。
3.3.4更新至特定版本
有时我们需要回溯至特定的日期或是版本,这时就可以利用SVN的Updatetorevision的功能。
在想要更新的档案或目录icon上面按下鼠标右键。
并且选择TortoiseSVN->Updatetorevision。
在这个Update窗口中,您可以选择更新到最新版本(HEAD)。
也可以选择更新到某个指定的版本(Revision)。
当然,您可能早就记不起来正确的版本号码。
可能只隐约的记得大概在什么时间。
没关系,按下Showlog按钮,您就可以回顾历史了。
所有您曾经做过的动作,及其日期与对应的版本都会列在这个窗口上面,只要在你想要的版上面点一下,让他变成反白,然后按下OK。
这个版本就会自动填入Update窗口中的Revision字段中。
您只要再按下一次OK,这个版本就会被取出来到您的硬盘中。
3.3.5复制档案及目录
很多时候您会希望有另外一个复制的目录来进行新的编修。
等到确定这个分支的修改已经完毕了,再合并到原来的主要开发版本上。
举例来说,我们目前在workingcopy下面有如下的目录及档案:
现在,我们要为trunk这个目录建立一个branch。
假设我们希望这个目录是在D:
\working\my_prj\branch\my_new_branch_for_testing。
首先我们可以在trunk目录下面的空白处,或是直接在trunk的icon下面按下鼠标右键。
在选择Branch/Tag…这个项目后,您将会看到如下的对话框出现。
请先确认FromWCatURL:
中的目录是您要复制的来源目录。
接着,在ToURL中输入您要复制过去的路径。
通常我们会将所有的branch集中在一个目录下面。
以上面的例子来说,branch档案都会集中在branch的子目录下面。
在ToURL中您只需要输入您要的目录即可。
目录不存在时,会由SVN帮您建立。
特别需要注意的是SVN因为斜线作为目录分隔字符,而非反斜线。
接着在Logmessage输入您此次branch的目的为何。
按下OK就可以了。
如果成功,将可以看到下面的画面:
按下OK就可以关闭这个窗口了。
如果您此时立刻去workingcopy的branch子目录下面,您将会失望的发现在该目录下面并没有刚刚指定的目录存在。
这是因为您workingcopy的部份还是旧的,您只需要在branch子目录下面进行SVNupdate就可以看到这个新增的目录了。
新增的目录就与原来的目录无关了。
您可以任意对他进行编辑,一直到您确认好所有在branch下面该做的工作都完成后,您可以选择将这个branchmerge回原来的trunk目录,或者是保留它在branch中。
要merge回trunk目录中,方法很简单。
以上面的例子来说,我们在D:
\working\my_prj\trunk目录空白处,按下鼠标右键,选择Merge:
接着可以看到如下的画面:
这个画面主要分为三个部份,前面的From:
与To:
是要问您打算从Branch中的哪个版本到哪个版本,merge回原来的trunk目录中。
因此,From跟To的URL字段应当都是指定原来branch的目录下。
剩下的就是指定要merge的revision范围。
以上面的例子而言,我们从Branch的Revision7开始merge到Branch