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

特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

ZJI:香港物理服务器,2*E5-2630L/32G/480G SSD/30Mbps/2IP/香港BGP,月付520元

zji怎么样?zji是一家老牌国人主机商家,公司开办在香港,这个平台主要销售独立服务器业务,和hostkvm是同一样,两个平台销售的产品类别不一平,商家的技术非常不错,机器非常稳定。昨天收到商家的优惠推送,目前针对香港邦联四型推出了65折优惠BGP线路服务器,性价比非常不错,有需要香港独立服务器的朋友可以入手,非常适合做站。zji优惠码:月付/年付优惠码:zji 物理服务器/VDS/虚拟主机空间订...

SugarHosts糖果主机,(67元/年)云服务器/虚拟主机低至半价

SugarHosts 糖果主机商也算是比较老牌的主机商,从2009年开始推出虚拟主机以来,目前当然还是以虚拟主机为主,也有新增云服务器和独立服务器。早年很多网友也比较争议他们家是不是国人商家,其实这些不是特别重要,我们很多国人商家或者国外商家主要还是看重的是品质和服务。一晃十二年过去,有看到SugarHosts糖果主机商12周年的促销活动。如果我们有需要香港、美国、德国虚拟主机的可以选择,他们家的...

sourcegear为你推荐
绵阳电信绵阳电信宽带套餐…具体点怎么在qq空间里添加背景音乐怎么在QQ空间里插入背景音乐??数码资源网有什么网站弄相片效果比较好的?开机滚动条怎么减少开机滚动条?保护气球为什么会那么害怕气球qq空间打扮QQ空间怎么打扮如何打扮分词技术搜索引擎采用的是什么技术?网站营运网站运营要学些什么?网站排名靠前网站排名靠前是否就意味着运营成功?阐述原因怎样申请支付宝如何申请支付宝
绍兴服务器租用 国内免备案主机 t牌 特价空间 42u机柜尺寸 搜狗抢票助手 私有云存储 嘟牛 宁波服务器 柚子舍官网 可外链网盘 raid10 太原联通测速 英国伦敦 徐州电信 稳定空间 测试网速命令 googlevoice 第八届中美互联网论坛 美国asp空间 更多