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

舍利云30元/月起;美国CERA云服务器,原生ip,低至28元/月起

目前舍利云服务器的主要特色是适合seo和建站,性价比方面非常不错,舍利云的产品以BGP线路速度优质稳定而著称,对于产品的线路和带宽有着极其严格的讲究,这主要表现在其对母鸡的超售有严格的管控,与此同时舍利云也尽心尽力为用户提供完美服务。目前,香港cn2云服务器,5M/10M带宽,价格低至30元/月,可试用1天;;美国cera云服务器,原生ip,低至28元/月起。一、香港CN2云服务器香港CN2精品线...

Virmach:1核/512M1核M1核512M/夏季美国vps促销,年付$7.2,9月更换AMD平台

virmach怎么样?virmach家这几年非常火,从商家的黑五闪购开始,以超低的价格吸引了大批的国人客户,而且商家的机器还是非常稳定的,站长手里的4.75刀年付已经用了两年了,非常稳定,不过商家到国内的线路一般,目前商家新上了夏季优惠促销,价格低到发指,年付7.2美元起,商家反馈将在9月开始更换AMD+NVMe平台,这个消息从年初就有了,不过一直没有更换,目前这个时间也不确定是否准确。点击进入:...

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

sourcegear为你推荐
百度k站百度K站是什么原因呢?安装程序配置服务器失败sql server 2000 安装程序配置服务器失败网易公开课怎么下载如何下载网易公开课开机滚动条如何关闭开机滚动条?创维云电视功能创维电视怎么用,我买了个创维云电视,现在不知道怎么用手机往电视上传照片,谁能解答以下,idc前线永恒之塔内侧 删档吗 ?分词技术百度的中文分词原理是什么?与IK分词有区别吗?系统分析员一个优秀的系统分析师应该具备哪些方面的知识和素质?gbk编码表gbk内码表怎么看微信电话本怎么用微信电话本如何使用?
短域名 电信服务器租赁 网易域名邮箱 免费cn域名 优惠码 英文简历模板word godaddy域名转出 中国特价网 panel1 合租空间 谁的qq空间最好看 刀片服务器的优势 傲盾官网 paypal注册教程 便宜空间 监控服务器 西安主机 贵阳电信 浙江服务器 腾讯网盘 更多