closingsourcegear

sourcegear  时间:2021-02-19  阅读:()
RealWorldSoftwareConfigurationManagementSEANKENEFICKAPressMedia,LLCRealWorldSoftwareConfigurationManagementCopyright2003bySeanKenefickOriginallypublishedbyApressin2003Allrightsreserved.
Nopartofthisworkmayberepro-ducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN978-1-59059-065-2ISBN978-1-4302-0792-4(eBook)DOI10.
1007/978-1-4302-0792-4Trademarkednamesmayappearinthisbook.
Ratherthanuseatrademarksymbolwitheveryoccurrenceofatrademarkedname,weusethenamesonlyinaneditorialfashionandtothebenefitofthetrademarkowner,withnointentionofinfringementofthetrademark.
Borland,CodeWright,StarBase,andStarTeamareeitherregisteredtrademarksortrademarksofBorlandCorporationintheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
crnReadyisatrademarkofcrnReadySystems,Incorporated.
lliM,Rational,ClearCase,ClearQuest,Atria,DB2,andOS/2areeitherregisteredtrademarksortrademarksofIBMintheUnitedStatesandothercountries.
lnstallShield,Developer,Professional,Express,andAdminStudioareeitherregisteredtrademarksortrade-marksoflnstallShieldSoftwareCorporation,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
KinookandVisualBuildareeitherregisteredtrademarksortrademarksofKinookSoftware,Inc.
,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
MerantandPVCSareeitherregisteredtrademarksortrademarksofMerant,lnc.
,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
Microsoft,VisualSourceSafe,Access,Office,VisualStudio,VisualC++,VisualBasic,SQLServer,andWindowsareeitherregisteredtrademarksortrade-marksofMicrosoftCorporationintheUnitedStatesandothercountries.
Alloperatingsystemslisted,includingWindows95,Wmdows98,WmdowsNT,Wmdows2000andWmdowsXP.
arecopyrightedbyMicrosoftCorpo-ration.
Screenshotsareusedwithpermission.
MKSandSourceIntegrityareeitherregisteredtrade-marksortrademarksofMKS,Inc.
,intheUnitedStatesandothercountries.
Oracle,OracleBi,andOracle9iareeitherregisteredtrademarksortrademarksofOracleCorporation,intheUnitedStatesandothercountries.
ScreenshotsforSourceGearVaultareusedwithpermission.
Sun,Java,andSolarisareeitherregisteredtrademarksortrademarksofSunMicrosystems,Inc,intheUnitedStatesandothercountries.
WiseSolutions,WiseforVisualStudio.
NET,andWiseforWmdowsInstallerareeithertrademarksorregisteredtrademarksofWiseSolutions,Inc.
Screenshotsareusedwithpermission.
TechnicalReviewer:DavidBirminghamEditorialBoard:DanAppleman,CraigBerry,GaryCornell,TonyDavis,StevenRycroft,JulianSkinner,MartinStreicher,JimSumser,KarenWatterson,GavinWray,JohnZukowskiAssistantPublisher:GraceWongProjectManager:TracyBrownCollinsCopyEditor:KimWrmpsettProductionEditor:JanetVailCompositor:DianaVanWmkle,VanWmkleDesignGroupIllustrator:CaraBrunk,BlueMudProductionsProofreader:NancySixsmithIndexer:KevinBroccoli,BroccoliInformationManagmentCoverDesigner:KurtKramesManufacturingManager:TomDebolskiTheinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinfor-mationcontainedinthiswork.
Thesourcecodeforthisbookisavailabletoreadersathttp:I/www.
apress.
comintheDownloadssection.
DedicatedtoScottVouriandPaulHiggins,whogavemeachancewhentheydidn'thavetodoso.
ContentsataGlanceForewordbyDavidBirmingham.
xiForewordbyMicheleLerouxBustamantexivAbouttheAuthor.
xviiAbouttheForewordWritersxviiiAcknowledgments.
xixIntroductionxxiPartOneTheRole1Chapter1Chapter2Chapter3PartTwoGettingtoKnowtheSCMRole3TheSCMandtheSoftwareDevelopmentProcess.
.
.
.
.
.
.
17AllAbouttheSource43TheTools.
69Chapter4Chapter5Chapter6PartThreeSourceControlTools71cvs.
1o1SourceSafe.
151TheTasks.
207Chapter7IntheSCMLab209Chapter8BasicBuilds.
229Chapter9BuildsforWindowsNET.
281Chapter10Installations331Chapter11DeploymentandBuildAfterthoughts411Index425vContentsForewordbyDavidBirmingham.
xiForewordbyMicheleLerouxBustamantexivAbouttheAuthor.
xviiAbouttheForewordWritersxviiiAcknowledgments.
xixIntroductionxxiPartOneTheRole.
1Chapter1GettingtoKnowtheSCMRole3ConfigurationManagementintheRealWorld4Programming1016AreYouaNativeofTheseHereParts7TheSoftwareConfigurationManagementDilemmas9Summary16Chapter2TheSCMandtheSoftwareDevelopmentProcess17The((Who'sWho"oftheProcess18UnderstandingtheDevelopmentProcessCycles24UnderstandingtheDifferentSCMPositions.
32UnderstandingtheSCM'sMostImportantRelationship36BecomingtheReleaseManager41Summary42Chapter3AllAbouttheSource43OrganizingFileswiththeSourceTree43SharingFilesBetweenBranches58ExploringStrategiesforControl60Summary68viiContentsPartTwoTheTools.
69Chapter4SourceControlTools71VersionControlvs.
ContentManagement72ChoosingtheRightTool73ExploringtheTools83Summary99Chapter5CVS101InstallingCVS105UnderstandingtheRepository109ImportingFiles116GettingSourceCodefromtheRepository119CheckinginCodeandAddingSourcetotheRepository122BinaryFilesintheRepository124CreatingModules127LabelingRevisionsintheSourceRepository130ViewingHistoryandStatusAboutFiles132DifferencingCode135BringingtheLocalDirectoryUp-to-Date136BranchingandMerging139UnderstandingKeywordExpansion143WorkingwithCVSandRemoteLocations145BackingUpandRestoring148Summary149Chapter6SourceSafe151ChutesandLadders151GettingandInstallingSourceSafe153AdministeringSourceSafe,Part1159UsingtheSourceSafeClient163AddingFilestoSourceSafefortheFirstTimeandOtherFileManagementTasks167GettingSourceandCommittingItBacktotheRepository.
.
.
.
.
.
.
169LabelingRevisionsintheSourceRepository172SearchingforFiles173ViewingHistoryAboutFiles173DifferencingCode175viiiContentsBranchingandMerging179OptionsfortheClient182AdministeringSourceSafe~Revisited182UsingThirdPartyAdd-Ons196UsingtheCommandLine197UsingtheAnalyzeTool202FoodforThought205Summary206PartThreeTheTasks.
2o7Chapter7IntheSCMLab.
209StockingtheLab209CreatinganSCMGuideforDevelopers211BestPracticesfortheSCM215BreakingDowntheSCMTaskSchedule223Summary228Chapter8BasicBuilds229GettingReadytoBuild231ToSkiptheBuildScript.
237.
.
.
OrNottoSkiptheBuildScript237CreatingaPseudo-Build237RefiningYourPseudo-Script249IntroducingMAKE259ConvertingYourPseudo-ScriptintoaMAKEScript272Summary279Chapter9BuildsforWindows.
NET.
281WhatIsNET281((PartsIsParts~284UnderstandingtheNETFileOrganization290BuildingApplications297UsingScriptingToolsinaVisualStudio.
NETBuild308UsingAutomatedUtilities312Summary329ixContentsChapter10Installations.
331ThinkingItThrough331ExploringtheWindowsTools336InstallationsforLinux398Summary412Chapter11DeploymentandBuildAfterthoughts411DeployingApplications411DeployingWebProducts414AftertheProductShips.
420Summary423Index425XForewordBYDAVIDBIRMINGHAMWHENGATHERINGTHETECHNICALTALENTandtoolstoputtogethersolutionsinanincreasinglycompetitiveanddemandingmarketplace,timelinesaretighter,moneyisthinner,andyoursolutiongroupisundertheconstanttemptationtopushsolutionsoutthedoorwithaminimumofformalproceduregettinginitsway.
It'snoteasy,quick,orcheap-andlackofattentiontoatleastaminimumofinfrastructurecanconvertyourcooln-tiersolutiontoann-tearsolutioninnotimeflat.
Notoneforheavy-handedproceduresandtediousISOcompliance,butknowingthatsomeinfrastructureprocessandforethoughtisindispensable,IlikeSeanKenefick'sapproach.
Ithasthekindofbalanceandflexibilitythatwillservemostteams.
Ifwehadunlimitedtimetostandaroundwhiteboards,waitonotherteammemberstofixbrokensoftwarethatkeepsusfromrunningfree,orcarefullytrainevennoviceprogrammersonthedisciplinesofsourcecontrol-wewouldn'tneedautomatedtoolsorproceduresjusttoprotectusfromeachother.
Imaginealineofworld-classrunnersinlanesonatrack.
Towin,theyneedtostayfocusedandpourtheirenergyoutathighspeed.
Theyalsoknowthattokeepfromgettingdisqualified,theyneedtostayintheirownlanes.
It'sforsafety,too-twopeopletrippingovereachotherandspillingoutatnearly20milesperhourcanirreversiblydamageahumanbody.
Wemustkeeptherunnersmovingandkeepthemsafe-protectingthemfromeachother.
SoftwareConfigurationManagement(SCM)anditstoolsandprocedureshelpdevelopersstayfocusedandkeeptheirprocessorsburningathightemper-ature.
Atrackmeetneedslotsofpeopletostayorganized,butagoodSCMcandoeverythingvirtually-butnotwithoutthecooperationoftheteam.
IftheteambeginstoseetheSCMasbeingintheway,theteamhaslostsightofthebigpictureinexchangeforshort-livedsuccess.
Onedeveloper"crossingtheline"cancauseotherstostumble.
Ifthiscontinues,theteamcan'tpossiblywintherace.
Softwaredevelopmentisasmuchabouttheprocessasthetechnology.
Irecallonedevelopercomingintomyoffice,closingthedoor,andseriouslysuggestingwedismisstheentiretestingteamforourproject.
"Theyareonlyintheway,"heclaimed.
"Nothingwedoisgoodenoughforthem.
"Experienceddevelopersseetheironyinthisstatement.
Ifthetestersrepresenttheendusers,theyaredoingyouafavor.
Don'ttakeitpersonally;justfixtheproblem.
Inanothersetting,threedeveloperspushedoutabreathtakingamountoffunctionalityataspeedthatabsolutelyastoundedthecustomer.
Itwasrocksolidandproductionstrength.
ThesethreepeopleunderstoodtheprocessofsoftwarexiForewordxiidevelopment,cross-testedtheirownwork,andbysheerforceofwillmaintainedthedisciplinetostayfocused,collaborate,andcloseissuesathighspeed.
Theiranticollisionstrategywastostayinthesameroomandcoordinateeverythingonthefly-anditworkedforthembecauseasateamtheyhadlong-sincegelledintoagroupthatcouldcompleteeachother'ssentences.
Butthatkindcultureisrare-sorarethattheneedforSCMisever-presenttomitigatethelackofcollaboration,thepaceoftheproject,thesizeoftheteam,andclashingpersonalitiesortheever-presentneedtoinsert,remove,orswapouttechnologistsatamoment'snotice.
Theconsistencyofprocessalsofreesyourdevelopersfromhavingtodealwiththeoh-so-tediousaspectsofsoftwareversioning,building,configuring,andotherlargelyadministrativeactivitiesofsoftwaredelivery.
Onedevelopertoldmehefeltconstrainedbytheuseofaversioncontrolsystem.
WhydoesheneedtocheckthingsintoacentralrepositoryifnobodyelseisworkingonitbuthimAdminis-trativethinkersunderstandthisneed,buttechnologists-especiallyinexperiencedones-justdon't.
Ifyou'veputtogetherateamofsoftwaredevelopersandhavenoinfrastructureinplace,you'llbesurprisedhowmanydeveloperswanttojoinyourteam.
Thenyou'llbeappalledathowlittletheycangetaccomplished.
SCMalsoprotectsyoufromroguebehavior.
The"activerogue"iseasiertoidentifyandcontrolbecausehe'soutintheopenandoftenveryverbal.
The"passiverogue"isprettymuchanyoneonyourteamwhowillsacrificequalitywhentheheatstartstorise.
Faceit,whencrunchtimecomes,youneedaprocessinplacethatkeepsyourpeoplefrombeingtemptedtoputinquickfixesthatulti-matelybecometimebombsforsomeoneelsetofix-orfortheusertoencounterafterdelivery.
What'sthat-youaddedanewtabletothedatabaseonyourlocalmachine,butitnevermadeittothecentralserverAndyouupgradedtoWidgets4.
0tosolveaproblem,buteveryoneelseisstillusingWidgets3.
0Youcheckedinabunchofsoftwarebeforeleavingforalongweekendbutdidn'tbothertoseeifitwouldevencompilecleanlyInmostcasesoffailedsoftwareprojects-atleastthosethatarefundedandstaffedtobesuccessful-thefailurerestsintheinabilitytokeepallofthedevel-opersintheirowntracksandnotsteppingoneachother.
TheSCMhasahugeresponsibilityindesigningtheinfrastructurebutrequiressignificantsupportfromtheproject'sleadership.
Seanmakesexcellentpointsabouthowtonavigatethestickypoliticalissuesandhelppeoplestayfocused.
AnSCMisideallypartadministrator,parttechnol-ogist,partcheerleader,partdiplomat,andpartpoliceofficer,andmustneverloseself-controlorasenseofhumor.
IfyourSCMisgruff,insensitive,sarcastic,orhasanyproblemsinactively(andenthusiastically)interactingwithpeopleonvariouslevels,you'vegotamoreseriousproblemthanhavingnoSCMatall.
SeandescribestheflexibilityandcongenialityrequiredofanSCM,andyou'llseehispersonalitycomeoutinthepagesyou'reabouttoread.
Whetheryou'reanadministrator,abusinessanalyst,atechnologist,onthetestingstaff,orinanyofthemyriadrolesonasoftwaredevelopmentproject,you'llseesomewisdomintheabilityofsimpleprocessesandinfrastructuretoput-andkeep-windinyoursailsandsomefunbackintotheprojectlifecycle.
Andwhodoesn'tneedmoreofthatDavidBirminghamCEO,VirtualMachineIntelligenceForewordxiiixivForewordBYMICHELELEROUXBUSTAMANTEONCEUPONATIME,whentheInternetwasinitsinfancyandbeforetherewasCom-ponentObjectModel(COM),Iwasresponsibleforthedevelopmentofinstallationsoftwareforseveralboxedimagingsolutions.
ItwasduringthattimethatIwouldlearntoappreciateandrespecttheartofconfigurationmanagement;becausemyjobcamelast,Iwasalwayslate.
Now,tobeclear,Iwaslatebecausethesoftwarewasalmostalwayslategettingintomyhands,whichmeantmytimelineonthewhiteboardschedulewascompressedtomeetourshrinkwrappingschedule(whichcomprisedanassemblylineofourstaff,stuffingandwrappingboxes).
So,atthekick-offofmyinstallationdevelopmentschedule,myofficewaslinedwithdevelopers,managers,andaChiefTechnicalOfficer(CTO)hoveringandofferingtobringmefood,water,andcoffeeasIcompletedthework.
Evenasimpleinstallationprogramiscriticalbecauseitisthefirstexperienceacustomerhaswithyoursoftware.
Itwilleithermakeorbreaktheirabilitytorunthesoftwaresuccessfully.
Yep,that'simportant,andifyou'veeverwrittenaninstallationfor"release,"thenyouknowtheintricatedetailsinvolvedthatcoulddriveeventhebestdevelopermad!
Agreatdealofpressurecomeswiththeresponsibilityofsoftwaredeployment,andthispressureincreaseswhenyouintroduceotherconfig-urationmanagementconceptssuchassourcecontrol,versioning,andautomatedproductionbuilds.
Thiscanbeevenfurthercomplicatedwhenthetechnologiesarecomplex.
Happily,IwasfortunatetohaveleftmyinstallationdaysbehindmebythetimeweintroducedCOMcomponentsintoourevolvingimagingsolutions.
Justinthenickoftime,too!
InthedaysofearlyCOM(orOLEAutomation1.
0),versioninganddeploymentheadacheswerealmostinsurmountable,especiallywhenyouhadtodealwithsomelegacy16-bitapplicationsandperformthunkingfrom32-bitcom-ponents!
Eventually,Ileftimagingandanimationtoworkondocumentmanagementsolutions.
ThatiswhenImettheauthorofthisbook,SeanKenefick,andlearnedhowaprofessionalconfigurationmanagementexpertgetsthejobdone.
Ourdoc-umentmanagementsolutionwasaclassicclient/serverenterpriseapplicationthatleveragedbothproprietaryandthird-partydatabases,includedemailservercon-figurationforworkflow,andwasbuiltusingdistributedCOMarchitecture(DCOM).
Sean,determinedtomakehisjobasenjoyableaspossible,setouttoautomatethebuild,versioning,anddeploymentprocesstoadesktopshortcuticon.
Andsoitwas.
OurnightlybuildswereautomatedsuchthatthededicatedbuildmachinehadadesktopiconthatwouldpullthelatestsourcecodefromVisualSourceSafe,buildallcomponentsusingascriptthatproperlyarrangedthebuildordertohandlecomponentdependencies,assignanincrementingversiontoallbuildoutput,labelsourcesafedirectorieswiththisversionstamp,andcreateaver-sioneddirectorywiththeresultingCDimage.
Iwasanimmediateadmirerofthis,givenmypriorexperiencewheresourcecontrolwasanightlybackuptotapeandwheredevelopersbuiltandtestedtheirowncomponents.
Fromabusinessperspective,thisautomatedprocesswascritical.
Implementingsourcecontrolensuredthecompanyhadthelatestsourcefromalldevelopers.
Auto-matingthebuildprocessfromthatsourceensuredthecorrectsourcewasusedtobuildcomponentsanddisciplineddeveloperstoavoid"breaking"thebuildbycheckinginpartiallycompletedwork.
Versioningprovideduswithhistoricalfoot-printsthatcouldbereviewedwhenfeatureswerebrokenbetweenbuildsbutalsomadeitpossiblefordevelopmentandQualityAssurance(QA)teamstorecordinwhichbuildtheydiscovereddefects.
ThisautomatedbuildprocesscompletelystreamlinedourabilitytoupdatedevelopmentandQAserverswiththelatestbuild.
Acoresetoftaskssimplymusthaveprocessandautomationintheback-officeofadevelopmentenvironment.
Youmusthavesourcecontroltoprotectyourcompany'scodeassetsandtoprovideversioningandrollbackfunctions.
Youmusthaveastreamlinedbuildprocessthatwillbuildcomponentsfromtheirsourceandorganizethedistributablecomponentsandothercontentfordeployment.
YoumustalsohaveanautomateddeploymentprocessthatcanbereliedupontoaccuratelyupdatethedestinationofthedeploymentbeitaCDinstallation,aWebdownload,orascriptthatdeploysupdatestoahostedenvironment.
We'vecomealongwayin10years.
TothinkIusedtobuildfloppydiskinstalla-tionsthatrequired"jamming"closeto1.
44MBofinformationoneachdisktoreducetheoveralldiskcount.
Infact,Irememberusingtoolsthatrequiredmetohandpickthefilestomakethispossible!
Ughh!
Nowadays,peopledownloadentireCDfootprintsovertheWeb.
AndalthoughthistraditionalCDinstallationisstillaliveandwell,therearemanymorethingstoconsidertodaysuchasWebdeployment,automaticversionupdatesovertheInternet,andapplicationhosting.
Today,aconfigurationmanager,alongwithdevelopmentteamsandman-agers,mustcometogetherontherightdeploymentmodelforanapplication.
Applicationversioningisnolongerassimpleasacomponentstamporasourcecontroldirectory.
So,newdistributionchannels,componentarchitectures,andversionupdatetechnologiesnowmakeitnecessaryforapplicationdeveloperstoassistconfigurationmanagersinformingthecorrectsoftwarearchitecturetocomplementthedeploymentplanandtoremovetheneedforinterventionforautomaticupdates.
Similarly,whenworkinginahostingenvironment,developersandInformationTechnology(IT)staffmustjoinforceswithconfigurationForewordXVForewordxvimanagerstoconstructaneffectiveprocessthatwillallowcompaniestomaintainservicelevelswhileupdatingproductionsites.
Theseconceptstrulycrossplatformboundaries.
DuringthetimeIwasChiefInformationOfficer(CIO)ofa24x7-hostedoperationbuiltonJava2EnterpriseEdition(J2EE),IhadtheopportunitytoworkwithSeanonceagain.
Thistime,hewasbroughtintobuildanentireprocessforconfigurationmanagementthatwouldberesponsibleforstreamliningthedeploymentofcodefromdevelopment,toQA,andfinallytoproduction.
Whenyouworkina24x7environmentandareultimatelyresponsibleforthesafedeploymentofproductionupdates,yourealizehowincrediblyimportantitistobeabletorollbackchanges,deployaccurateupdates,andhavewell-documentedproceduresandconfigurationsteps.
Wehadtobeabletorebuildaproductionmachineimmediatelyifwelostoneoriftherewasaproblemwithadeployment.
IcouldnothaveimaginedentrustingthisprocesstoanyonebutSeanbecauseinmyyearsofexperiencehewastheonlypersonIknewwhohadapassionforandtrulyhadperfectedthisartform.
Configurationmanagementisasmuchaboutprocessasitisimplementation.
Inlargeorganizations,manyofthetasksthatfallundertheumbrellaofconfigu-rationmanagementaredistributedamongseveralindividualsand/ordepartments.
Sean'sbookfocusesonthecoretasksofthe"CMguy,"buthealsoinjectshisvastpracticalexperiencewithprocessandmanagementintothecontenthedeliversineachchapter.
Hewillteachyouhowtoautomatebuildscripts,howtodeployappli-cationsovertheWeb,andhowtobuildtraditionalinstallationapplicationsusingsomeofthecommontoolsavailabletodayformultipleplatforms.
Moreimportant,hewillinspireyoutotakeprideintheperfectionofthisartthatisinmanycasesthecenterofasuccessfulsoftwaredevelopmentoperation.
Youwon'tfindabettersourceofinformationonthissubjectoramorepassionateauthorwillingtosharehisvastexperience!
MicheleLerouxBustamanteAssociate,!
Designhttp://www.
idesign.
netAbouttheAuthorSeanKenefickisoneofthefoundersofcmReadySystems,acompanyspecializinginsoftwareconfigu-rationmanagementservicesandcollocation/hostingsolutions.
Priortothat,hewasthedirectorofnetworkoperationsatConfirmNetCorporationandthemanagerofclientapplicationsatMotivaSoftware.
HehastaughtprogramminglanguagesthroughtheUniversityofCaliforniaatSanDiegoExtensionprogramsince1997.
Inhissparetime,heenjoysreading,biking,andtinkeringwiththesixcomputerslyingaroundhishouse.
HelivesinSanDiego,California,withadognamedGus,acatnamedSable,andfourunnamedgoldfish.
Seancanbereachedviaskenefick@cmready.
comorthroughthecmReadyWebsiteathttp:I/www.
cmready.
com.
xviixviiiAbouttheForewordWritersDavidBirmingham,alsothetechnicalreviewerofthisbook,isanindependentconsultantforMetamorphicSoftwareCorporationinDallas,Texas.
Davidhassuccessfullydeployedawiderangeoflarge-andmedium-scalesoftwaresolutionsinvaryingcomplexity-promotingproducts,services,andmethodologiestohelptechnicalgroupsgainandkeepafootholdinthemarketplace.
Davidhasembracedsoftwareconfigurationmanagementanditssupportingproductsinvariousforms,andhopesthereaderwillfindvalueandsuccessinapplyingtheconceptsofthisbook.
David,hiswife,andthreechildrenliveandplayjustnorthofDallas,Texas.
Seehisbook,alsofromApress,SoftwareDevelopmentonaLeash(Apress,2002).
Davidcanbereachedatdbirmingham@metamorphicsw.
com.
MicheleLerouxBustamanteisanassociateof!
Design,aMicrosoftregionaldirector,amemberoftheInternational.
NETSpeakersAssociation(INETA),andanauthor.
At!
Design,Michelecontributesherdiversebackgroundto.
NETtrainingandhigh-endcorporateconsulting.
ShefocusesontheC#language,ASP.
NET,andWebServicesandalsoprovidesguidancetotechnologyexecutives.
Micheleisalsoafrequentlypublishedwriterandinternationalconferencespeaker.
Formoreinformation,visithttp:Ilwww.
idesign.
netorsubscribetohernewsletterathttp:Ilwww.
dotnetdashboard.
net.
Acknowledgments1'HANKsTOEVERYONEI'veworkedwithatApressincludingthestraight-shootingbutalwayssupportiveKarenWatterson,technicalreviewerDavidBirmingham,copyeditorKim"Willy-Nilly"Wimpsett,andproductioneditorJanetVail-allofwhomwereforcedtoreadthismanuscriptagainandagain.
Special"monsterthanks"toprojectmanagerTracyBrownCollinswhoalwayskeptmepointingintherightdirection.
I'malsogoingtomissemailinghereveryday.
I'dalsoliketoacknowledgesomeofthefolksI'veworkedwithprofessionally,withoutwhomIcouldnot(orwouldnot)havewrittenthisbook.
Specifically,I'dliketomentionPaulHigginsandScottVouri(towhomthisbookisdedicated),BarryKnuttila,AndreaAmes,JoseCepeda,andMicheleLerouxBustamante(whogotmethegiginthefirstplace).
I'dalsoliketothank(andapologizeto)thefriendsandfamilywhosufferedinsilenceasIworkedeveryweekend,holiday,andvacationdayforthepasttwoyears:JerryandBeverlyKenefick(alsoknownasMomandDad),KelleeandRileyBergendahl,JeffPierick,andMikeEllis(thoughherarelysufferedsilently).
Thanksforthesupport!
Butmostimportant,IwanttosavorthismomentwithAudreyOberman-therockwhokeepsmesane.
xixIntroductionUNLESSYOUWORKFOREBENEZERSCROOGE,everybodytypicallywinswhenyourcompanyissuccessful.
Stockoptionsaresuddenlyworthcash.
Paychecksincreaseatreviewtime.
Companiescanofferbetterbenefits,suchas401(k)matchingandopticalcare.
It'sdefinitelyinyourbestinterestforyourcompanytosucceed.
Withthatitmind,buildingyourproductandpresentingittothemarketplacecouldbeconsideredthemostimportantjobinthecompany.
Butthere'sawholelotmoretoreleasingaproductthancomingupwiththeartworkforthebox.
SomeonehastomakesuretherightversionofthesoftwaregetscopiedtotheCD-ROMordeployedtotheWeb.
Thenheorshehastomakesurecustomersaren'tbeingexposedtothenextMelissavirus.
Butmoreimportant,longbeforethecustomereverseesthebox,thissamepersonhastowatchoverthebuildingblocksoftheproducttoensurethatnothinggoeswronglongenoughforthesoftwaretobeplacedonthefinalCD-ROM.
Thepersonistheteamgoalie:Behindeverycornerlurksdisasterthatcandestroyacompany'schanceforsuccess,andheorshehastoblockfate'skicks.
WhoisthepersonwhobearsallthisonhisorhershouldersMeettheSoftwareConfigurationManager(SCM).
WhoIstheSoftwareConfigurationManagerOddlyenough,sometimesthemostjuniorprogrammersarethrustintothisposition.
Withthebestintentions,andoftentimeslearningonthejob,theseapprenticestaketheburdenofensuringthattheprogrammers'outputisconstantlyavailableandthattheproductcanbebuiltandinstalled.
Itmayseemstrangethatcompaniespushthishighlyimportantjobontotheirmostinexperiencedpersonnel.
Butinthefast-pacedworldofsoftwareengineering,thesesamemanagersmustmeetwhatmanyconsidertobeimpossibledeadlineswhilesupervisingastaffofverylargeegos-theycanbeforgivenfortryingtocutcorners.
Especiallynow,afterwe'veenteredanewcenturyandalltheparadigmsinthesoftwareengineeringworldhavechanged.
Companiesnolongerhavetheluxuryofhiringonwhims.
Wheremanagersusedtosearchunsuccessfullyformonthstryingtoattractqualifiedcandidatesandevencreatedpositionsforgoodpeoplewhentheywerechancedupon,nowcompaniesmustmakedowiththestafftheyhave.
Companiesthatfrivolouslyspentmoneyonthe"whatever-it-takes"theoryofsoftwaredevelopmenthavegonethewayofthedinosaurs.
Intoday'smarket,onlythefrugalsurvive.
xxiIntroductionxxiiCompaniesintheknowcraveanddesirehigh-endSCMs(alsoknownbytheconfigurationmanagermoniker)whilesoftwareengineerscurrentlyfacetheworstjobmarketthey'veexperiencedinmemory.
AgoodSCMcanstillgetcallsfromrecruiterstwoorthreetimesamonth.
Andthentherearethecompaniesthatseemtonotknowanybetter.
Forthesecompanies,thejunioremployeesarestillgiventhearduoustaskofmakingsurealltheircoworkersstayemployed.
WhatArethePossibilitiesfortheSCMTodayWhenIstartedinthesoftwareengineeringindustry,IworkedforasmallvideocarddrivercreationcompanyinSanRafael,California.
Immediatelyuponjoiningtheprogrammingstaffasthemost-junioremployee,thebasicsofSCMwereputinmyhands:administeringthesourcedatabase,buildingtheproducts,andcreatinganinstallationforitsdeployment.
Afewyearslater,IwasofferedajobinSanDiegoastheseniorSCMforaproductdevelopmenthouse.
Theychosememoreformyprogrammingback-groundthanmySCMskills.
Iwaswaryabouttakingthejob-afterall,inmanycompanies,configurationmanagersareconsidered(alongwithqualityassuranceandtechnicalsupport)tobesecond-classcitizens.
Iwasalsoworriedaboutnotbeingchallengedbytheposition.
Buthey-itwasajobinSanDiego.
Itookit.
AndI'veneverlookedback.
IthinktheexperienceIgainedatthatcompanyhasgivenmeopportunitiesImightneverbeenaffordedifIstayedinmainstreamprogramming.
Ifindmyselfinanichethatisnoteasilyfilled.
AndIfindmyselfconstantlychallengedtokeepupwithtechnologiesImightneverhaveexploredifIhadstayedaC++programmer.
Inthismarket,atleasthereinCalifornia,programmerspoundthepavementlookingformarginalpositions.
ButSCMsarestillhighindemand.
RecentlyarecruitercalledmesoIcouldconsidertwoopenpositionshehad.
BecauseIwashappyinmycurrentsituation,Ipolitelydeclined.
"Well,haveyougotanyfriendswithsimilarexperiencelevelsYoumustknowsomeone,"hesaid.
Unfortunately,Icouldn'thelphim.
Infact,whenIwasamanagerlookingforastrongSCMcan-didate,Iwentthrougheightmonthsofinterviewing-andfoundonlyonepersonwhowasproperlyqualifiedforthejob.
Heturnedmedownbecausehewasofferedmuchmoremoneyfromacompetingsuitor.
Second-classcitizensNoway!
SmartcompaniesunderstandthenecessityforstrongSCM.
Andthatneedwillnevergoaway.
IntroductionSo,WhyaBookonSCMIdecidedIwantedtowriteabookthatwouldhelppeoplewho,likeIwas,havebeenthrownintoarolethat'stotallyforeigntothem.
Manyofthemhavenoformalprogrammingexperienceand,worse,havenoonetoguideormentorthem.
Almostalloftheirabilitiescomefromlearningthemonthejob.
I'mhopingthisbookmightaidthemintheirworktasks.
WhoShouldReadThisBookWhenIstartedintheSCMrole,Isearchedforabookthatmighthelpmeunder-standthebasicsofthisnewposition;instead,Ifoundplentyofbooksthatcoveredsmallpartsofthejob,butnonethatencompassedthefundamentaltasksandtoolsIwasgoingtohavetomaster.
Timehasmovedon,buttherestillseemstobeadearthofsuchbasicresourcesforthenewSCMonthejob.
BecausetheSCMpositioncanbethrustuponnotonlyprogrammers,butalsoqualityassuranceandtechnicalsupportpersonnel,thisbookisdesignedasa"start-from-scratch"manual.
Itdescribestherudimentaryaspectsofthepositionaswellasstrategiesthatcanhelpyouavoidthetypical"newbie"pitfalls.
MoreexperiencedSCMsmayfindthatthisbookwill"roundout"manyoftheirskillsaswellasdetailspecificstasksthattheymaywanttointegrateintotheirprocesses.
Thisbookisextremelywell-suitedforthoseworkinginbasicsoftwareengineeringhouses.
However,youmaybebuildingcriticalmedicalorengineeringsoftware.
Maybeyou'reprogrammingarollercoaster'sfunctionsorintegratingsoftwareintoanairplanecockpit.
Ifso,thisbookwillgiveyouanexcellentfoundationforyourjob-butthereareotherrulesandlawsyoumustfollowthatareoutsidethescopeofthisbook.
You'llwanttoexploreotherreferencematerialforyourparticularsituation.
HowThisBookIsOrganizedThisbookisdividedintothreeparts,eachmadeupofseveralchapters.
PartOne,"TheRole,"isafundamentalprimerfortheSCMrole.
Init,you'llfindadescriptionoftheroleitself,aswellasbasicinformationregardingsourcecontrolandthetoolsusedtoimplementit:Chapter1:"GettingtoKnowtheSCMRole"Chapter2:"TheSCMandtheSoftwareDevelopmentProcess"Chapter3:"AllAbouttheSource"PartTwo,"TheTools,"includesoverviewsofmanysourcecontroltools,aswellasdetailedchaptersonthetwomostpopularfreewaretools:xxiiiIntroductionxxivChapter4:"SourceControlTools"Chapter5:"CVS"Chapter6:"SourceSafe"PartThree,"TheTasks,"outlinestheresponsibilitiesthatareapartoftheSCMjob.
Thesechapterscoverhowtocareforyoursourcedatabaseandincludetechniquesforbuildingyourproduct.
Furthermore,thispartdiscussesspecificstrategiesfordifferentoperatingsystemsandcompilationtools.
You'llalsofindinformationonWebdeploymentandproductreleases:Chapter7:"IntheSCMLab"Chapter8:"BasicBuilds"Chapter9:"BuildsforWindows.
NET"Chapter10:"Installations"Chapter11:"DeploymentandBuildAfterthoughts"ConventionsUsedinThisBookThisbookusescertainstyleconventionstohelpyouunderstandcertainphrases.
Aconstant-widthfontindicatescodeexamples:suchasthisAconstant-widthfontinasentencesuchasthisdenotescommandsorkeywordsthatmightbecase-sensitivewhenused.
ItalsodenotesWebaddresses.
Italicsindicatenewtermsandimportantconcepts.
The>-symboldenotesamenuhierarchy.
Forexample,selectFile>-OpenProjectindicatesthatyoushouldselecttheFilemenuandthenselecttheOpenProjectcommand.
Unfortunately,bookpagesareonlysowide.
Asmallarrowattheendofacodelineindicatessinglecodelinesthathavebeensplitintomultiplelinesmerelytofittheconfinesoftheprintedpage:AConstantWidthFontwithanEndingArrow~andaFollowingIndentedLine

95IDC香港特价物理机服务器月付299元起,5个ip/BGP+CN2线路;美国CERA服务器仅499元/月起

95idc是一家香港公司,主要产品香港GIA线路沙田CN2线路独服,美国CERA高防服务器,日本CN2直连服务器,即日起,购买香港/日本云主机,在今年3月份,95IDC推出来一款香港物理机/香港多ip站群服务器,BGP+CN2线路终身7折,月付350元起。不过今天,推荐一个价格更美的香港物理机,5个ip,BGP+CN2线路,月付299元起,有需要的,可以关注一下。95idc优惠码:优惠码:596J...

pacificrack7月美国便宜支持win VPS,$19.99/年,2G内存/1核/50gSSD/1T流量

pacificrack发布了7月最新vps优惠,新款促销便宜vps采用的是魔方管理,也就是PR-M系列。提一下有意思的是这次支持Windows server 2003、2008R2、2012R2、2016、2019、Windows 7、Windows 10,当然啦,常规Linux系统是必不可少的!1Gbps带宽、KVM虚拟、纯SSD raid10、自家QN机房洛杉矶数据中心...支持PayPal、...

六一云互联(41元)美国(24元)/香港/湖北/免费CDN/免费VPS

六一云互联六一云互联为西安六一网络科技有限公司的旗下产品。是一个正规持有IDC/ISP/CDN的国内公司,成立于2018年,主要销售海外高防高速大带宽云服务器/CDN,并以高质量.稳定性.售后相应快.支持退款等特点受很多用户的支持!近期公司也推出了很多给力的抽奖和折扣活动如:新用户免费抽奖,最大可获得500元,湖北新购六折续费八折折上折,全场八折等等最新活动:1.湖北100G高防:新购六折续费八折...

sourcegear为你推荐
根目录到底什么是根目录,根文件夹快递打印如何快递打印快递单推广方法最有效的推广方法是什么?真正免费的网络电话谁知道哪个真正免费的网络电话啊?告诉我把3?太感谢了拂晓雅阁?英特尔和AMD有什么区别啊?快速美白好方法快速美白方法怎么在qq空间里添加背景音乐怎么在QQ空间里免费添加背景音乐????照片转手绘美图秀秀可以照片转手绘吗?是手机版的xv播放器下载求手机可以看xv格式的视频播放器mate8价格华为麦特八多少价格
江西服务器租用 万网域名空间 vps代理 山东vps 花生壳域名贝锐 亚洲大于500m 便宜域名 cpanel主机 59.99美元 godaddy续费优惠码 主机屋免费空间 香港新世界电讯 牛人与腾讯客服对话 浙江独立 国外在线代理 已备案删除域名 me空间社区 老左正传 秒杀汇 泉州移动 更多