讲稿tortoisesvn拼写检查器_第1页
讲稿tortoisesvn拼写检查器_第2页
讲稿tortoisesvn拼写检查器_第3页
讲稿tortoisesvn拼写检查器_第4页
讲稿tortoisesvn拼写检查器_第5页
已阅读5页,还剩200页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前 致读 阅读指 TortoiseSVN是完全免费的 社 致 简 什么是 TortoiseSVN的历 TortoiseSVN的特 安装 系统要 安 语言 BasicVersion-Control 版本 版本模 锁定-修改-方 -修改-合并方 Subversion怎么做 Subversion实 工作副 版本库的 修订版 工作副本怎样版本 12版本 使用TortoiseSVN创建版本 本 版本 服务器端钩子检出Accessingthe 基于svnserve的服务 简 安装 运行 svnserve与基本认 使用SASL以便更安 使用svn+ssh认 svnserve基于路径的基于Apache的服务 简 安装 安装 配 多版本 路径为基础的使用Windows域认 用SSL使服务器更安 在虚拟SSL主机中使用客户端 开 图标重 右键菜 拖 认 导 文 检出深 提交 修改列 ExcludingItemsfromtheCommit 提交进 解决 图标重 在Windows资源管理器中的TortoiseSVN 本地与状 查看差 修改列 调用版本日志 获 信 获 合并特 统计信 离线方 刷新视 查看差 文件差 使用TortoiseIDiff进行比较的图 Copying/Moving/RenamingFilesand 处理文件名称大小写 撤消更 清 项目设 Subversion属 TortoiseSVN项目属 External External External 正在合 复兴分 合并选 合并子合并期间处理MergeaCompleted FeatureBranch 取得锁 释放锁 锁定钩子 追溯文 Changingthe 使用 刷新视 Pruning 与BUG系统/问题集 AddingIssueNumberstoLog GettingInformationfromtheIssue 与基于WEB的版本库浏览器集 常规设 RevisionGraph 网络设 日志缓 客户端钩子TortoiseBlame的设 Subversion的工作文件 最后步 SubWCRev程 SubWCRev命令 COM接 如何实 Rollback(Undo)revisionsinthe 使用合 使用 Comparetworevisionsofafileor 使用 UsefulTipsFor 通过组策略部署 设置SVN_ASP_DOT_NET_HACK环境变 TortoiseSVN操 TortoiseSVN命 TortoiseIDiff命 TortoiseSVN命 检 更 提 差 显示日 版本 编辑已解 改 删 恢 清 获得 释放 切 合 输 重新定 添 导 追 创建补 应用补丁(Apply 实现细 图标重 用SSH使服务器更安 配置Linux服务 配置Windows服务 用于TortoiseSVN的SSH客户端工 创建OpenSSH使用ssh-keygen创建密 使用PuTTYgen创建密 使用PuTTY测 使用TortoiseSVN测试 SSH配置参 IBugtraqProvider TheIBugtraqProvider TheIBugtraqProvider2 术语 索 插图 锁定-修改-方 -修改-合并方 -修改-合并方案(续 版本 未版本控制文件夹的TortoiseSVN菜 认 导 检 提 提 带有修改列表的提交 版本日 版本日 日 日 框显示合并版 GoOffline 修订版本版本比较 恢复 资源管理器属性页,Subversion页 Subversion属性 增加属 切换 合并向导-选择版本范 TheMergeWizard-Reintegrate 合并向导-树合 合并回调 TheMergereintegrate 锁 检查修 从URL导出 重定位 Exampleissuetrackerquery 设 设 设 框 设 框 设 TheSettingsDialog,RevisionGraph TheSettingsDialog,RevisionGraphColors TheSettingsDialog,IconOverlays 设 设 设 设 设 设 设 TheSettingsDialog,IssueTrackerIntegration 设 框,TortoiseBlame页 升 表格版本库 设置Apache的 支持COM/自动化方 前TortoiseSVN去,你就能知道怎样让TortoiseSVN对你的工作起到帮助,这其实并不。 向这样的计算机用户:希望使用Subversion管理数据,但又不愿意使用令行客户端。因为TortoiseSVN是WindowsWindows阅读This前言exinsalittleabouttheTortoiseSVNproject,thecommunityofpeoplewhoworkonit,andthelicensingconditionsforusingitanddistributingit.The第1章简介exinswhatTortoiseSVNis,whatitdoes,whereitcomesfromandthebasicsforinstallingitonyourPC.In第2章BasicVersion-ControlConceptswegiveashortintroductiontotheSubversionrevisioncontrolsystemwhichunderliesTortoiseSVN.ThisisborrowedfromtheationfortheSubversionprojectandexinsthedifferentapproachestoversioncontrol,andhowSubversionworks.Thechapteron第3章版本库exinshowtosetupalocalrepository,whichisusefulfortestingSubversionandTortoiseSVNusingasinglePC.Italsoexinsabitaboutrepositoryadministrationwhichisalsorelevanttorepositorieslocatedonaserver.Thereisalsoasectionhereonhowtosetupaserverifyouneedone.The第4章日常使用指南isthemostimportantsectionasitexinsallthemainfeaturesofTortoiseSVNandhowtousethem.Ittakestheformofatutorial,startingwithcheckingoutaworkingcopy,modifyingit,committingyourchanges,etc.Itthenprogressestomoreadvancedtopics.第5章SubWCRev程序isaseparateprogramincludedwithTortoiseSVNwhichcanextracttheinformationfromyourworkingcopyandwriteitintoafile.Thisisusefulforincludingbuildinformationinyourprojects.The附录Bsectionanswerssomecommonquestionsaboutperformingtaskswhicharenotexplicitlycoveredelsewhere.Thesectionon附录D,TortoiseSVN操作showshowtheTortoiseSVNGUIdialogscanbecalledfromthecommandline.Thisisusefulforscriptingwhereyoustillneeduserinction.The附录EgiveacorrelationbetweenTortoiseSVNcommandsandtheirequivalentsintheSubversioncommandlinesvn.exe.是完全免费TortoiseSVN是免费的,你不需要为使用它而,可以用任何你希望的方式使用它,它开发的证是GNUGeneralPublicLicense(GPL)。TortoiseSVN是一个开源软件项目。这意味着你可以取得它的全部源代码。你可以以下链 称和。用户名称是guest,不能填写。的版本(我们当前正在开发的)放在/trunk/,已发布版本放在/tags/。社BothTortoiseSVNandSubversionaredevelopedbyacommunityofpeoplewhoareworkingonthoseprojects.Theycomefromdifferentcountriesallovertheworldandworktogethertocreatewonderfulprograms.致TimStefanLübbeforthebeautifulicons,logo,bughunting,translatingandmanagingtheSimonSubversion为了对Subversion大量介绍,我们了其第二Tigris本文使用的为了使文档更加易读,所有TortoiseSVN的窗口名和菜单名使用不同的字体,例如日志OKUserActionsareindicatedusingaboldfont.Alt+A:presstheAlt-KeyonyourkeyboardandwhileholdingitdownpresstheA-Keyaswell.Right-drag:presstherightmousebuttonandwhileholdingitdowndragtheitemstothenewlocation.使用图标标记的重要提示。第1章简工作在同一个文件!-你就会明白为什么一个好的系统需要管理潜在的。什么是 具。不过Subversion并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,在2002年,TimKempSubversionWindowsSubversionTortoiseCVS,一个非常类似的CVS客户端。Tim学习了TortoseCVS的源代码,将其作为ToroiseVN这个项目,了tortoisevn.or,并将源代码提交到网上。此时StefanKüng正Suberson和TortiseSV,由于随着Subversion越来越稳定,吸引了越来越多的用户开始使用TortoiseSVN作为他们的SubversionLübbeOnkenTortoiseSVN的logo,细心照料并且管理翻译。TortoiseSVN与Windows外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工并且你不一定必须使用Windows资源管理器,TortoiseSVN的右键菜单可以工作在其他文件管理器,以及文件/打开框等标准的Windows应用程序中。你必须牢记,TortoiseSVN是有意作为Windows资源管理器的扩展开发,因此在其他程序可能集成 Subversion因为TortoiseSVNSubversionSubversion整个树的修改,文件和都是版本控制的,结果就是可以在客户端对文件和执 制,Subversion的“高级”服务器是Apache网络服务器的一个模块,使用HTTP的变种协议WebDAV/DeltaV通讯,这给了Subversion个服务器使用自己的协议,可以轻松的用SSH封装。Subversion使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人 使用了一种类似于硬的机制,因而这类操作通常只会花费很少并且相对固定的时间,Subversion非常容易,可以轻易的被其他语言和程序使用。安装TortoiseSVNWindows2000SP2,WindowsXPTortoiseSVN1.2.0以后不再支持Windows98,WindowsME和WindowsNT4,但是如果需要的话,你仍旧可以下TortoiseSVN时发现了任何问题,请首先参考附录A,常见问题(FAQ)TortoiseSVN提供一个容易使用的安装程序。双击安装程序文件并按照提示操作。安装程序将TortoiseSVN的界面已经翻译成了许多种语言,所以你可以符合你要求的语言包。你可以在我们的翻译状态页[ 每一种语言包都是一个.exe安装程序,只要根据向导运行安装程序,当你下一次启动程序时,TortoiseSVN包括了一个拼写检查器,可以检查你的提交日志信息,当你的项目语言不是你的本地语言时尤其有用,拼写检查器使用OpenOffice[]和Mozilla[]相同的词典。安装程序自动添加US和UK英语词典。如果你需要其他语言,最简单的方法是安装TortoiseSVNTortoiseSVN或者你也可以自己安装词典。如果你安装了OpenOffice 典,位于那些应用的安装 。否则,你需要从wiki/Dictionaries必要的词典文件然后把它们到TortoiseSVN安装的bin子,通常情况下,可能是在\ProgramFiles\TortoiseSVN\bin。如果你不希望弄乱bin子,你可以将拼写检查文件放置在C:\ProgramFiles\TortoiseSVN\Languages,如果那个不存在,你可以自己创建,当你下次启动TortoiseSVN时,就可以使用拼写检查器。tsvn:projectlanguage4.17节“项目设置Windowsde_CH(Swiss-German)修改为de_DE(German)。第2章BasicVersion-Control本章修改自《使用Subversion进行版本管理》的相同章节,它的版本位于:http:// 这一章是对Subversion一个简短随意的介绍,如果你对版本控制很陌生,这一章节完全是为你准备的,我们从讨论基本概念开始,深入理解Subversion的思想,然后展示许多简单的实尽管我们的例子展示了人们如何程序源代码,仍然要记住Subversion可以控制所有类型版本 2.1.一个典型的客户/服务器系库是另一种文件服务器,而不是你常见的那一种。最特别的是Subversion会记录每一次的更 Whenareadsdatafromtherepository,itnormallyseesonlythelatestversionofthefilesystemtree.Butthealsohastheabilitytoviewpreviousstatesofthefilesystem.Forexample,acanaskhistoricalquestionslike,“whatdidthisdirectorycontainlastWednesday?”,or“whowasthelasttochangethisfile,andwhatchangesdidtheymake?”Thesearethesortsofquestionsthatareattheheartofanyversioncontrolsystem:systemsthataredesignedtorecordandtrackchangestodataovertime.版本模考虑这个情景,我们有两个共同工作者,Harry和Sally,他们想同时编辑版本库里的同一个Harry,Sally件,Harry的更改不会(因为系统记录了每次修改),Harry所有的修改不会出现在Sally的文件中,所以Harry的工作还是丢失了—至少是从的版本中丢失了—而且是意外图2.2.锁定-修改-方Manyversioncontrolsystemsusealock-modify-unlockmodeltoaddressthisproblem,whichisaverysimplesolution.Insuchasystem,therepositoryallowsonlyonetochangeafileatatime.FirstHarrymustlockthefilebeforehecanbeginmakingchangestoit.Lockingafileisalotlikeborrowingabookfromthelibrary;ifHarryhaslockedafile,thenSallycannotmakeanychangestoit.Ifshetriestolockthefile,therepositorywilldenytherequest.Allshecandoisreadthefile,andwaitforHarrytofinishhischangesandreleasehislock.AfterHarryunlocksthefile,histurnisover,andnowSallycantakeherturnbylockingand 2.3.锁定-修改-方锁定可能导致管理问题。有时候Harry会锁住文件然后忘了此事,这就是说Sally一直等待来编辑这些文件,她在这里僵住了。然后Harry去旅行了,现在Sally只好去找管Harry,Sally锁定可能导致错误的安全状态。假设Harry锁定和编辑一个文件 Sally锁定并编辑文件B,如果A和B互相依赖,这种变化是必须同时作的,这样A和B不能正确的工作了,锁定机制对防止此类问题将为力—从而产生了一种处于安全状态的假相。很容易想象Harry和Sally都以为自己锁住了文件,而且从一个安全,孤立的情况Subversion,CVS和一些版本控制系统使用-修改-合并模型,在这种模型里,每一个客户 Here'sanexample.SaythatHarryandSallyeachcreateworkingcopiesofthesameproject,copiedfromtherepository.Theyworkconcurrently,andmakechangestothesamefileAwithintheircopies.Sallysavesherchangestotherepositoryfirst.WhenHarryattemptstosavehischangeslater,therepositoryinformshimthathisfileAisout-of-date.Inotherwords,thatfileAintherepositoryhassomehowchangedsincehelastcopiedit.SoHarryaskshistomergeanynewchangesfromtherepositoryintohisworkingcopyoffileA.ChancesarethatSally'schangesdon'toverlapwithhisown;sooncehehasbothsetsofchangesintegrated,hesaveshisworkingcopybacktotherepository.图2.4.图2.5.-修改-合并方案(续但是如果Sally和Harry的修改了该怎么办?这种情况叫做,这通常不是个大问题,当Harry的客户端去合并版本库的修改到自己的工作副本时,他的文件A就会处于状态:他可以看到一对的修改集,并手工的选择保留一组修改。需要注意的是软件不能自动的解决,只有人可以理解并作出智能的选择,一旦Harry手工的解决了(也许需要与Sally讨论),他就可以安全的把合并的文件保存到版本库。-修改-合并模型感觉是有一点,但在实践中,通常运行的很平稳,用户可以并行的工最后,一切都要归结到一条重要的因素:用户交流。当用户交流贫乏,语法和语义的就会了,两个人同时编辑这个文件,没有办法将这两个修改合并,Harry或Sally会丢失他们Subversion 而,Subversion1.2策略,Subversion仍然会提供你需要的特性。Subversion一个Subversion工作副本是你本地机器一个普通的 Afteryou'vemadesomechangestothefilesinyourworkingcopyandverifiedthattheyworkproperly,Subversionprovidesyouwithcommandstopublishyourchangestotheotherpeopleworkingwithyouonyourproject(bywritingtotherepository).Ifotherpeoplepublishtheirownchanges,Subversionprovidesyouwithcommandstomergethosechangesintoyourworkingdirectory(byreadingfromtherepository).一个工作副本也包括一些由Subversion创建并的额外文件,用来协助执行这些命令。通常情况下,你的工作副本每一个文件夹有一个以.svn 里的文件能够帮助Subversion识别哪一个文件做过修改,哪一个文件相对于一个典型的Subversion的版本库经常包含许多项目的文件(或者说源代码),通常每一个项目都是版本库的子,在这种安排下,一个用户的工作副本往往对应版本库的的一个子。 2.6.版本库的文件系 :paint和calcTogetaworkingcopy,youmustcheckoutsomesubtreeoftherepository.(Thetermcheckoutmaysoundlikeithassomethingtodowithlockingorreservingresources,butitdoesn't;itsimplycreatesaprivatecopyoftheprojectforyou).假定你修改了button.c,因为.svn记录着文件的修改日期和原始内容,Subversion可以告诉你已经修改了文件,然而,在你明确告诉它之前,Subversionbutton.c/calc设你有个合作者,Sallycalc要使项目,Sally可以要求Subversion更新工作副本,通过使用更新命令,可以将你和所有其他人在她上次更新之后的修改合并到工作副本。注意,Sally,Subversion.svn版本库的Subversion可以通过多种方式-本地磁盘,或各种各样不同的网络协议,但一个版本库地址都是一个URL,URL方案反映了方法。 通过WebDAV协议支持Subversion的Apache服务器httpSSL通过未认证的TCP/IP自定义协议svnserve服务器TCP/IPsvnserve 2.1.版本库Forthemostpart,Subversion'sURLsusethestandardsyntax,allowingforservernamesandportnumberstobespecifiedaspartoftheURL.Thefile://accessmethodisnormallyusedforlocalaccess,althoughitcanbeusedwithUNCpathstoanetworkedhost.TheURLthereforetakestheformfile://hostname/path/to/repos.Forthelocalmachine,thehostnameportionoftheURLisrequiredtobeeitherabsentorlocalhost.Forthisreason,localpathsnormallyappearwiththreeslashes,file:///Also,usersofthefile://schemeonWindowstformswillneedtouseanunofficially“standard”syntaxforaccessingrepositoriesthatareonthesamemachine,butonadifferentdrivethanthe'scurrentworkingdrive.EitherofthetwofollowingURLpathsyntaxeswillworkwhereXisthedriveonwhichtherepositoryresides:URLWindowsURL)你可以安全的网络共享的FSFS版本库,但是你不能以这种方式BDB版本库不要创建和网络共享上的BerkeleyDB版本库,它不能存在于一个的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用BerkeleyDB,结果svncommit操作可以作为一个原子事务操作发布任意数量文件和 生,Subversion努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。 2.7.版本不像其它版本控制系统,Subversion的版本号是针对整个每一个版本号代表了一次提交后版本库整个树的特定状态,另一种理解是版本N代NSubversion“foo.c5”时,他们的实际意思是“在版本5foo.c”。需要注意的是,一个文件的版本NM并不表示件。举个例子,你从版本库检出一个工作副本,的版本是4:此刻,工作与版本库的版本4完全对应,然而,你修改了button.c并且提交之后,假设没有别的提交出现,你的提交会在版本库建立版本5,你的工作副本会是这个样子的:假设此刻,Sallyinteger.c6,如果你使用svnupdateSally对integer.c的改变会出现在你的工作副本,你对button.c的改变还在,在这个例子里,Makefile在4、5、6版本都是一样的,但是Subversion会把Makefile的版本设为6来表明它是的,所以你在工作副本顶级作一次干净的更新,会使所有内容对应版本对于工作副本的每一个文件,Subversion在管理.svn/给定这些信息,通过与版本库通讯,Subversion 里没有修改,在工作版本之后没有修改提交到版本库。svncommit操作不做任何事情,svnupdate不做任何事情。commit,update版本。commit不做任何事情,update将会更新工作副本到的版本。Thefilehasbeenchangedbothintheworkingdirectory,andintherepository.Acommitofthefilewillfailwithanout-of-dateerror.Thefileshouldbeupdatedfirst;anupdatecommandwillattempttomergethepublicchangeswiththelocalchanges.IfSubversioncan'tcompletethemergeinausiblewayautomatically,itleavesittotheusertoresolvethe.Subversion我们介绍了两个协作者如何使用使用“-修改-合并”模型,用Subversion发布和获得我们讨论了一些Subversion和管理工作副本信息的方式第3章版本创建版YoucancreatearepositorywiththeFSFSbackendorwiththeolderBerkeleyDatabase(BDB)format.TheFSFSformatisgenerallyfasterandeasiertoadminister,anditworksonnetworksharesandWindows98withoutproblems.TheBDBformatwasonceconsideredmorestablesimplybecauseithasbeeninuseforlonger,butsinceFSFShasnowbeeninuseinthefieldforseveralyears,thatargumentisnowratherweak.ReadChoosingaDataStore[/en/1.5/svn.reposadmin.nning.html#svn.reposadmin.basics.backends]intheSubversionbookformoreinformation. svnadmincreate--fs-typebdb或svnadmincreate--fs-typefsfs 3.1.未版本控制文件夹的TortoiseSVN菜 TortoiseSVNBDB建。FSFS版本库通常很容易,也让我们TortoiseSVN变得更容易,因为我们不再需要处理不同BDB版本之间的兼容性问题。FutureversionsofTortoiseSVNwillnotsupportfile://accesstoBDBrepositoriesduetothesecompatibilityissues,althoughitwillofcoursealwayssupportthisrepositoryformatwhenaccessedviaaserverthroughthesvn://,http://orhttps://protocols.Forthisreason,westronglymendthatanynewrepositorywhichmustbeaccessedusingfile://protocoliscreatedasOfcoursewealsomendthatyoudon'tusefile://accessatall,apartfromlocaltestingpurposes.Usingaserverismoresecureandmorereliableforallbutsingle-developeruse.本地版本不要创建和网络共享上的BerkeleyDB版本库。它不能存在于文件系统。即使是映射到盘符的共享。如果你尝试在网络共享使用BerkeleyDB,结果难以预尽管从理论上说,将一个FSFS file://协议是可以的。但这样做是非常不妥当的。事实上我们这样做,并且不其次,不是所有的网络文件共享协议都支持Subversion需要的文件锁定,所以你会发现你的版本库被毁了。它也许不会马上发生,但是总有一天会有2个用户同时版本库。第三,文件的权限必需设置得井井有条。也许WindowsSAMBA中却是相当的file://是为本机工作而准备的,只能单用户,特别是测试和调试。当你打算共享版读第3.5节“AccessingtheRepositoryTherearesomestandard,mendedwaystoorganizearepository.Mostpeoplecreateatrunkdirectorytoholdthe“mainline”ofdevelopment,abranchesdirectorytocontainbranchcopies,andatagsdirectorytocontaintagcopies.Ifarepositoryholdsonlyoneproject,thenoftenpeoplecreatethesetop-leveldirectories:如果你采用顶层/trunk/tags/branches这种方式,并不意味着你必须整个主线为分支或支和是普通的,只要你愿意,TortoiseSVN可以将它们移动或重命名。从一种布局转换到另一种布局仅仅是在服务器端移动一些文件或;如果你不喜欢版本库的组织形式,仅管大胆地修改那些。2/trunk/tags/branches 通过在那个文件夹右键,选择TortoiseSVN导入...将这个结构导入到版本库中。这将导 版本库 svnadminhotcopypath/to/repositorypath/to/backup--clean-svnadmin在安装Subversion命令行客户端时会自动安装,如果你在WindowsPC上安装这个命令 服务器端钩子Ahookscriptisaprogramtriggeredbysomerepositoryevent,suchasthecreationofanewrevisionorthemodificationofanunversionedproperty.Eachhookishandedenoughinformationtolwhatthateventis,whattarget(s)it'soperatingon,andtheusernameofthewhotriggeredtheevent.Dependingonthehook'soutputorreturnstatus,thehookprogrammaycontinuetheaction,stopit,orsuspenditinsomeway.PleaserefertothechapteronHookScripts[/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks]intheSubversionBookforfulldetailsaboutthehookswhichareimplemented.这些钩子被版本库所在的服务器执行。TortoiseSVN也允许你配置由确定触发,在本地执行的客户端。请参看第4.30.8节“客户端钩子”以获得信息。版本库的hooks中有一些钩子的例子,这些例子适合于Unix/Linux服务器,在remOnlyallowlogmessagestobechanged.if"%4"=="svn:log"exit0echoProperty'%4'cannotbechanged>&2exit1检出如果你希望你的Subversion版本库对于别人可用,你可以在你的站点包含一个。为了让其更加容易,你可以为其它TortoiseSVN用户包含一个检出。当你安装了TortoiseSVN,它会一个tsvn:协议,当TortoiseSVN用户点击这样一个链接,检出窗口会自动弹出,且版本库URL已经填入。Toincludesuchalinkinyourownhtmlpage,youneedtoaddcodewhichlookssomethinglikethis:Ofcourseitwouldlookevenbetterifyouincludedasuitablepicture.YoucanusetheTortoiseSVNlogo[]youcanprovideyourown<imgAccessingtheTouseTortoiseSVN(oranyotherSubversion),youneedacewhereyourrepositoriesarelocated.Youcaneitherstoreyourrepositorieslocallyandaccessthemusingthefile://protocoloryoucancethemonaserverandaccessthemwiththehttp://orsvn://protocols.Thetwoserverprotocolscanalsobeencrypted.Youusehttps://orsvn+ssh://,oryoucanusesvn://withSASL.如果你使用公共的主机服务,例如Code[http Ifyoudon'thaveaserverandyouworkaloneorifyouarejustevaluatingSubversionandTortoiseSVNinisolation,thenlocalrepositoriesareprobablyyourbestchoice.JustcreatearepositoryonyourownPCasdescribedearlierin第3章版本库.Youcanskiptherestofthischapterandgodirectlyto第4tofindouthowtostartusingit.如果你打算在网络共享中设者一个多用户的版本库,请重新考虑。阅读第3.1.4节“网络Thenextsectionsareastep-by-stepguideonhowyoucansetupsuchaserveronaWindowsmachine.OfcourseyoucanalsosetupaserveronaLinuxmachine,butthatisbeyondthescopeofthisguide.MoredetailedinformationontheSubversionserveroptions,andhowtochoosethebestarchitectureforyoursituation,canbefoundintheSubversionbookunderServerConfiguration[/en/1.5/基于svnserve在Subversion中包含Svnserve-一个轻型的独立服务器,它使用一个基于一般TCP/IP连接的定制协议。用于小型安装,或者不能使用全能Apache服务器的地方。InmostcasessvnserveiseasiertosetupandrunsfasterthantheApachebasedserver,althoughitdoesn'thavesomeoftheadvancedfeatures.AndnowthatSASLsupportisincludeditiseasytosecureaswell.可以从这里获取版本的SubversionProjectList?folderID=91。另外,也可以从ColabNet获取一个打包好的安装程序。这个安装程序将会把svnserve设置为Subversion4 的 svnserve.exe--如果你没有创建一个版本库,根据下面的Apache服务器设置指令第3.7.4。为了验证svnserve正常工作,使用TortoiseSVN版本库浏览器来查看版本库。你也可以使用--root选项设置根位置来限制服务器 svnserveURLsvnserve.exe--daemon--rootsvnserve.exe--daemon--rootTortoiseSVNURLsvnserverootSvnserve可以提供任意数量的版本库服务。只要将这些版本库放到你刚才定义的根 不要创建和网络共享上的BerkeleyDB版本库,它不能存在于一个的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用BerkeleyDB,结果使用普通用户直接运行svnserve通常不是最好的方法。它意味着你的服务器必须有一个用户登录,还要记着重新启动服务器后重新启动svnserve。最好的方法是将svnserve作为windows服务运行。从Subversion1.4开始,svnserve可以安装为windows服务。Toinstallsvnserveasanativewindowsservice,executethefollowingcommandallononelinetocreateaservicewhichisautomaticallystartedwhenwindowssccreatesvnservebinpath="c:\svnserve\svnserve.exerootc:\repos"disyname="Subversion"depend=tcpipstart=autoIfanyofthepathsincludespaces,youhavetouse(escaped)quotesaroundthepath,likethis:sccreatesvnservebinpath=\"C:\Program--service--rootc:\repos"disyname="Subversion"depend=tcpipstart=autoYoucanalsoaddadescriptionaftercreatingtheservice.ThiswillshowupintheWindowsServicesManager.scdescriptionsvnserve"Subversionserver注意sc令行很特殊。在key=value对中,key与=之间不能有空格,但是在现在建议服务程序使用本地服务或网络服务帐户运行,参考TheServicesandServiceAccountsSecuritynningGuide[http:/ obj="NT 的适当权限,包括的Subversion和你的版本库,还有所有钩子使用的应用。此帐号的内置组名是"LOCALSERVICE"。为了得到更详细的信息,可参考WindowsServiceSupportforSvnserve[http://SvnServicesvnserve,现在想使用内置服务,那么你需要svnserveThedefaultsvnservesetupprovidesanonymousread-onlyaccess.Thismeansthatyoucanuseansvn://URLtocheckoutandupdate,orusetherepo-browserinTortoiseSVNtoviewtherepository,butyouwon'tbeabletocommitanychanges. anon-access=anon-access=noneauth-access=writepassword-db=userfile这里的userfile与svnserve.conf文件在同一个,这个文件也可以存在于文件系统的其他地方(当多个版本库使用相同的权限时尤其有用),可以使用绝对路径,或者是conf的相对,使用\或盘符不能工作。userfile的结构如下:anon-access=noneauth-access=writepassword-db=userfileIfyoumaintainmultiplerepositoriesusingthesamepassword theuseofan realmwillmakeeasierforusers,asTortoiseSVNcancacheyourcredentialssothatyouonlyhavetoenterthemonce.MoreinformationcanbefoundintheSubversionbook,specificallyinthesectionsCreatea'users'fileandrealm[/en/1.5/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth.users]andCredentialsCaching[/en/1.5/SASL什么是Cyrus简单的认证和安全层(TheCyrusSimpleAuthenticationandSecurityLayer)是一个由大学编写的开源软件。它可以为任何网络协议增加通用认证和加密的能力,并且从Subversion1.5开始所有的后续版本,包括svnserve服务器和TortoiseSVN客户端知道如何使用这个库。要获得这一选项可用性的更充分讨论,你应该看一下Subversion手册中的通过SASL使用svnserve[/en/1.5/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sasl]WindowsSASL要在服务器上激活详尽的SASL功能,你需要做3件事。首先,在你的版本库的svnserve.conf[sasl]use-sasl=其次,在一个合适的地方创建一个名为svn.conf的文件-通常在Subversion的安装 第三,创建2个新的表项目来告诉SASL到哪里找到需要的东西。创建一个名为[HKEY_LOCAL_MACHINE\SOFTWARE\CarnegieMellon\ProjectCyrus\SASLLibrary]表并在其中创建两个新的字符串值:SearchPath设置为sasl*.dll插件所在的路径(通常是Subversion的安装),ConfFile设置为svn.conf文件所在的。如果你使用CollabNet安装程序,这两个表键就已经为你创建好了。auxprop_plugin:sasldbmech_list:DIGEST-MD5sasldb_path:最后一行指示认证数据库的位置,认证数据库是一个名为sasldb的文件。它可以在任何地方,不过一个方便的选择是在版本库的上层中。确认svnserve服务有这个文件的权现在所有的东西已经设置完成,你要做的事情就是创建用户和。你需要saslpasswd2程序来做这件事。如果你使用CollabNet安装程序,这个程序会在安装内。使用像这样saslpasswd2-c-fC:\TortoiseSVN\sasldb-urealm选项-f指明数据库的位置,realm必须与版本库的svnserve.confusernamerealm你可以使用sasldblistusers2程序列出数据库中的用户名。SASLuse-sasl=min-encryption=max-encryption=变量min-encryption和max-encryption控务器所需要的加密强度。要完全禁用加密,就将这2个变量的值都设为0。要启用简单的数据校验(例如,为了防止篡改和保证数据的完整,不加密),就将这2个值都设为1。如果你想允许(但不强制)加密,将最小值设为0,最大值设为任意位数。要强制加密,将这2个值设为大于1的数字。面的例子中,我们要128256svn+sshsvnserveSSHSASL通过此方法,svnserve不会作为守护进程启动,而是SSH为你启动svnserve,以SSH认证的用户运行,为此,你需要在你的服务器上有SSH守护进程。设置服务器的基本方法请参见附录G,SSH使服务器更安全。你可以在常见问题(FAQ)中使用“SSH”找到其它SSH相关的。的关于svnserve的信息可以看《使用Subversionsvnserve从Subversion1.3开始,svnserve支持与mod_authz_svn相同的基于路径的模式,你需要编辑版本库路径下的conf/svnserve.conf的文件。authz-db=在这里,authz是你创建用来定义权限的文件,你可以为每一个版本库使用单独的文件,或者为所有的版本库使用相同的文件,关于此文件的格式可以查看第3.7.6节“路径为基础的基于Apache务TheApachebasedSubversionserverusestheWebDAVprotocolwhichissupportedbymanyotherprogramsaswell.Youcoulde.g.mountsucharepositoryasa“Webfolder”intheWindowsexplorerandthenaccessitlikeanyotherinthefile安装Apache的先决条件是有一台安装了Windows2000,WindowsXPSP1+,Windows2003,Vista或WindowsServer2008的计算机。请注意,WindowsXPSP1从版本的Apache,请确认你的版2.2.x1.3.xxotherfiles,binaries/win32msiApachemsiapache-2.2.x-win32-x86-openssl-0.9.x.msiOpenSSL)URLDNSIP在80端口安装Apache服务。注意:如果你已经有了IIS或其他80端口的程序,安装会失败。如果发生这种情况,直接到程序的安装\ApacheGroup\Apache2\conf,打开httpd.conf。编辑文件的Listen80为其他可用的端口,例如Listen81,然后重新启动现在可以测试Apache服务器是否正确运行,将浏览器指向-将会看 deniedApache500安装DownloadthelatestversionoftheSubversionWin32binariesforApache.BesuretogettherightversiontointegratewithyourversionofApache,otherwiseyouwillgetanobscureerrormessagewhenyoutrytorestart.IfyouhaveApache2.2.xgoto. (通常是c:\programfiles\apachegroup\apache2\modules)从Subversion安 将/bin/libdb*.dll和/bin/intl3_svn.dll到Apache #LoadModuledav_fs_modulemodules/mod_dav_fs.so#LoadModuledav_modulemodules/mod_dav.soLoadModuleLoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so现在你已经配置了ApacheSubversion,但是Apache不知道如何处理Subversion客户端,例如TortoiseSVN。为了让Apache知道哪个URL是用作Subversion版本库,你需要使用任意文本编辑器(例如记事本)编辑Apache的配置文件(通常是c:\programfiles\apachegroupAttheendoftheconfigfileaddthefollowingDAVsvnSVNListParentPathonSVNParentPathD:\SVN#SVNIndexXSLT"/svnindex.xsl"AuthTypeBasicAuthName"Subversionrepositories"AuthUserFilepasswd#AuthzSVNAccessFilesvnaccessfileRequirevalid-userThisconfiguresApachesothatallyourSubversionrepositoriesarephysicallylocatedbelowD:\SVN.TherepositoriesareservedtotheoutsideworldfromtheURL:.Accessisrestrictedtoknownusers/passwordslistedinthepasswdfile. (通常是\programfiles\apachegroup\apache2),通过输入下面令创建文bin\htpasswd-cpasswdbin\htpasswdpasswd <LocationDAVSVNListParentPathSubversion1.3SVNParentPathSVNParentPathAuthType框AuthUserFileRequirevalid- 3.1.设置ApacheApacheRequirevalid-user<LimitExceptGETPROPFINDOPTIONSRequirevalid-使用passwd #AuthzSVNAccessFile,并且创建Subversion的控制文件。Apache将会确保只有有效的用户可以你的/svn ,然后将用户名传递给Subversion的AuthzSVNAccessFile模块,这样就可以根据Subversion控制文件内的规则实现更细粒度的 以是repos:path或简单的path,如果你不指定特定的版本库, SVNParentPath下所有的版本库。使用的策略文件的格式在第3.7.6节“路径为基础#SVNIndexXSLT,将文件svnindex.xsl,svnindex.css和checkout.ico放到你的文档根 是C:/ProgramFiles/ApacheGroup/Apache2/htdocs)。这 在Apache配置文件中RootYoucangetthosethreefilesdirectlyfromoursourcerepositoryathttp:///svn/tortoisesvn/trunk/contrib/other/svnindex.(第 “TortoiseSVN是完全免费的!”exinshowtoaccesstheTortoiseSVNsourceTortoiseSVNXSL中的右边会有个图标。如果你点击此图标,那么TortoiseSVN会为此URL启动检出对如果你使用SVNParentPath指示,你就不必在每次添加新Subversion版本库时修改Apache的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。在我的公司,我可以使用SMB(普通的windows文件)直接服务器的文件夹,所以我直接在那里创建 ,运行TortoiseSVN命令TortoiseSVN在此创建版本库...,然后一个新的项目建如果你使用Subversion1.3或更高版本,可以使用SVNListParentPathon指示,这样当你使用浏览器父路径而不是具体某个版本库时Apache就会显示所有版本库列表。mod_authz_svn模块可以根据用户名和路径实现细粒度的权限控制,它对Apache服务器Subversion1.3以上版本的svnserve中也实现了基于路径的。admin=john,devteam1=john,rachel,sallydevteam2=kate,peter,markdocs=bob,jane,miketraining=zak#DefaultaccessruleforALL#Everyonecanread,adminscanwrite,DanGermanisexcluded.*=r@admin=rwdangerman#Allowdeveloperscompleteaccesstotheirprojectrepos@devteam1=rw@devteam2=rw@devteam1=rw@devteam2=rwtrevor=rw#Givethedocpeoplewriteaccesstoallthedocsfolders@docs=#Givetraineeswriteaccessinthetrainingrepositoryonly@training=但是对于此问题有另一个解决方案-至少是你在使用域控制器的LAN中版本库时:最初的SSPI是由Syneapps提供的,包括源代码。但是它的开发已经终止。不过不要失望,社区重新拾起代码并进行了改进,它现在的新主页在SourceForge[•此匹配你的Apache版本的模块,将文件mod_auth_sspi.so到Apache的。ApacheLoadModuleLoadModuleauth_moduleSubversionAuthTypeAuthTypeLocation/svn>SSPIAuthOn SSPIUsernameCaselowerSSPIPerRequestAuthonSSPIOfferBasicOn如果你没有域控制器,可以将域控制器的名称置为<controller>请注意,当你使用SSPI认证时,没有必要再使用AuthUserFile行定义文件,Apache使用Windows域验证你的用户名和,你需要更新svnaccessfile中的用户列表来SSL,3.7.9SSLSubversionAuthzSVNAccessFileJUserjuser还是喜欢创建首字母大写的用户帐号(例如JUser)。Authz

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论