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

Friendhosting 黑色星期五 VDS/VPS可享四五折优惠促销

Friendhosting商家在前面的篇幅中也又陆续介绍到,是一家保加利亚主机商,主要提供销售VPS和独立服务器出租业务,数据中心分布在:荷兰、保加利亚、立陶宛、捷克、乌克兰和美国洛杉矶等。这不近期黑色星期五活动,商家也有推出了黑五优惠,VPS全场一次性45折,虚拟主机4折,全球多机房可选,老用户续费可获9折加送1个月使用时长,VDS折后最低仅€14.53/年,有需要的可以看看。Friendhos...

百纵科技,美国独立服务器 E52670*1 32G 50M 200G防御 899元/月

百纵科技:美国高防服务器,洛杉矶C3机房 独家接入zenlayer清洗 带金盾硬防,CPU全系列E52670、E52680v3 DDR4内存 三星固态盘阵列!带宽接入了cn2/bgp线路,速度快,无需备案,非常适合国内外用户群体的外贸、搭建网站等用途。C3机房,双程CN2线路,默认200G高防,3+1(高防IP),不限流量,季付送带宽美国洛杉矶C3机房套餐处理器内存硬盘IP数带宽线路防御价格/月套...

WHloud Date鲸云数据($9.00/月), 韩国,日本,香港

WHloud Date(鲸云数据),原做大数据和软件开发的团队,现在转变成云计算服务,面对海内外用户提供中国大陆,韩国,日本,香港等多个地方节点服务。24*7小时的在线支持,较为全面的虚拟化构架以及全方面的技术支持!官方网站:https://www.whloud.com/WHloud Date 韩国BGP云主机少量补货随时可以开通,随时可以用,两小时内提交退款,可在工作日期间全额原路返回!支持pa...

sourcegear为你推荐
推广方法如何做推广?天府热线天府热线怎么老是进不去?bbsxpbbsxp 2008 无法创建数据库如何免费开通黄钻如何免费开通黄钻??ghostxp3ghost xp sp3 和 windows xp3有啥区别今日热点怎么删除youku今日热点怎么卸载镜像文件是什么什么是镜像文件啊淘宝店推广淘宝店铺推广有哪些渠道?畅想中国20年后中国会变成什么样?--畅想一下未来的中国!!xp系统停止服务XP系统停止服务后电脑怎么办?
vps虚拟服务器 便宜服务器 香港服务器99idc 秒解服务器 贵州电信宽带测速 青果网 500m空间 灵动鬼影 空间出租 jsp空间 静态空间 共享主机 佛山高防服务器 metalink cloudlink 789 百度云加速 申请免费空间 万网空间 如何登陆阿里云邮箱 更多