关闭

关闭

封号提示

内容

首页 MagxGit.pdf

MagxGit.pdf

MagxGit.pdf

上传者: 胜歌 2011-06-03 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《MagxGitpdf》,可适用于IT/计算机领域,主题内容包含PlatformCMToolsandDistributedDevelopmentJune,DRAFTSTATUSSteveWoodruffPoint符等。

PlatformCMToolsandDistributedDevelopmentJune,DRAFTSTATUSSteveWoodruffPointsofDiscussionPointsofDiscussionPartI–AlookatthecurrentplatformsituationPartII–CMToolsPartIII–ChallengestoImplementationPartICurrentSituationPartICurrentSituationFullsourceinClearCaseFullbuildsbydevelopersandCMs:–Nonpackaging:Anywherefrommin–hrs–Packagingbinarybuilds:minminVeryfewcomponentsusebuildavoidanceinLJ(moredoin)CentralizedsourcecontrolwithMultiSite:ReplicationonthehourMustbenetworkconnectedtobuildorusesnapshotviewswhichareinefficientGBsnapshowviewcreationtimeis~hoursComponentsdeliversourcelabelstoplatformPlatformdeliverssourcelabelstoproductswteamOpensourcecodemustbemassagedbeforeitsfullyintegratedintothebuildsystemTheDetailsTheDetailsLRTDevelopersWorldwideDomainsProjectsDeliverablesfromProjectTeamsAboutMillionLOC(excludingkernelandtoolchainlibs)LJregionsreplicaswithdevelopmentaboutofthoseregionsSnapshotviewsareaboutGBinsizeWhat'swrongwithitWhat'swrongwithitWe'renotoperatinginatrulydistributeddevelopmentenvironmentWiththemovetopackaging,wenolongerneedcentralizedsourcecoderepositoriesDeveloperswanttheabilitytowork“offline”innetworkdisconnectedscenarios(airplane,home,etc)Mustwaitforlabels,branches,andothermetadatatoreplicatetoeachsitebeforereleasingsoftwareorbeforebuildingsoftwareifyou'renotinilhNowaytovalidatesourcecodeintegrityWorkingWithoutBoundariesWorkingWithoutBoundariesWiththerolloutofpackaging,wearenolongertiedtobuildingoursourcecodeintheVOB–Thetoolchaincanbemadeavailableasabinarypackage–Developerscanbuildtheircomponentorthewholesbfimageusingwithoutaccesstoanysourcetoday(throughtheuseofpackaging)–WithsomechangestothebuildsystemtosupportGNUmakeinsteadof(orinadditionto)Clearmake,developerswillbeabletodotheirworkwithoutboundariesWorkfromhome,airport,orevenanairplane!Onlyneednetworkconnectivitytogetthepackages–MustcomplywithiProtectrulessuchasusingPointSEConWindowsworkstationsandanothersolutionmustbeinplaceforLinuxworkstationsPartIICMToolAlternativesPartIICMToolAlternativesIfwe'renowabletoworkwithoutboundaries,isClearCasetherightCMtoolfordevelopersPreviouslyexaminedCMtoolalternatives–RCS,CVS:Oldtechnologieswithnumerousdrawbacks–Subversion:VerypopularCMtool,butnotgreatfordistributeddevelopmentandiswastefulwithstorageresourcesandhaspoorbranchinglabeling–Git:ArelativelynewCMtoolthatsupportstruedistributeddevelopmentandmeetsourbasicrequirements–alsothetoolofchoicefortheLinuxkernelLets“Git”toknowGitLets“Git”toknowGitHaslightweightandrapidmethodforbranchingandmergingHasvisualtoolsfornavigatingnonlineardevelopmenthistory(gitk,gitgui)Supportstruedistributeddevelopment(nocentralizedrepository)SupportslargeprojectsandhasconceptofsuperprojectswithpointerstoprojectsIndividualprojectswouldmaptobuildcomponentsGuaranteedintegrityofcodeinrepositoryviaSHA'GoogleTechTalks'aboutGit'GoogleTechTalks'aboutGitTwoveryinformativeGoogleTechTalksessionswereheldwithGitasthesubject–LinusTorvoldsdiscussesthehistoryandbenefitsofGitoverotherCMtoolshttp:wwwyoutubecomwatchv=XpnKHJAok–RandalSchwartzdiscussestheuseanddesignofGitasaCMtoolhttp:videogooglecomvideoplaydocid=HowwecanuseGitforMAGXHowwecanuseGitforMAGXMigrateeachplatformLRTbasedcomponenttoanewGitrepositorywhereitbecomesastandaloneprojectEachprojectCMwouldmaintaintheirownGitrepositoryforthatdomainThereisno“true”mastercopy,buttheprojectCMswouldmaintainthe“logical”mastercopyBecauseeachprojectrepositorycanbemirroredbyothercomponentsandtheplatformnoofflinebackupsarerequiredasarewithClearCase–Backupsareneeded,butthesecanbetaken“live”WeDOneedadisasterrecoveryplanandbackupsmightberequiredforlegalpurposes–solutionprovidedbyITEasyMigrationswithGitEasyMigrationswithGitVOBmigrationstookseveralmonthstocompleteinWithGit,amigrationisassimpleascreatinganewrepositorywiththeselectedcontentfromabranchthatyouwant,intheformatdirectorystructurethatyouwantChangingCMroles(jobrotation)acrosssitesbecomesmucheasieralsoasthereisnobranchmastershiptoworryaboutGitatthePlatformLevelGitatthePlatformLevelPlatformintegrationteamwoulduseasuperprojecttoaccesstherepositoriesprojectsofeachdomainandverifyplatformreleasesPlatformcurrentlymaintainsa'release'repositorywhichcontainsthebinaryandSDKpackagesforeachplatformreleaseInthefuture,thiscouldalsoholdthesourcepackagesforeachprojectcomponentThisrepositoryiscurrentlyaccessedbyeachdeveloperwhowishestobuildfrombinarypackagesIfweallowcomponentCMstoreleasebinarypackages,theplatformteamwouldneedtodoverificationtoensurecomponentsourcepackagesmatchthebinaryreleasesPlatformInternalReleaseswithGitPlatformInternalReleaseswithGitWiththeadventofpackaging,theplatformIntegrationteamnolongerexecutesfullbuildsfromsourceintheVOBforeachreleaseTheintegrationteam'sfunctionisnolongerthatofa“builder”butratheran“assembler”and“integrityverifier”(buildfromsourcemust=binaryreleases)IntegrationteamverifiesthatprojectbinarypackagesworktogethertogenerateaSBFandthencanreleasea“recipe”ofcomponentprojectpackageswhichareusedtocreateaplatformreleaseTherearesomecaseswhentheplatformmustregeneratethebinarypackagesforcomponentsBuildPlanningBuildPlanningBuildplanningisstillcriticalattheplatformlevelPlannersmustcoordinateAPIchangeswhichoccasionallyoccurPlatformwouldneedtoregeneratebinarypackagesforsomeorallcomponentswhenanAPIchangesinoneoftheplatformcomponentsprojectsPrivateAPIswhichareillegallyusedbyothercomponentswouldpresentaproblemandmustbeaddressedaspartofmakelintcompliance–MakelintcomplianceisnotenforcedbythePRTcurrentlyGitattheComponentProjectLevelGitattheComponentProjectLevelPlatformdeveloperscheckouttheirproject'sGitrepositoryforsourcecodeaccessontheirworkstationProjectCMscanusesuperprojectsforeachdomainintheirdeliverableForexample,TherecanbeonesuperprojectwhichpointstoprojectsforAM,DM,andAFWCI,sincetheCMcurrentlymanageseachofthoselogicalcomponentsPlatformdevelopersalsoclonetheplatform'sreleaserepositorywhichcontainsthebinaryandSDKpackageofeachprojectforeachrelease(label)Thisallowsdeveloperstowork“offline”andthentheProjectCMscan“pull”thechangesfromthedevelopersintotheproject'smainlineparbranchbeforeBR'ingtotheplatformRebasingMadeEasy!RebasingMadeEasy!Developerswillstarttheircodingononebaselinebutbythetimetheyfinish,theycouldbeseverallabels“behind”Githasarebasefeaturewhichwill“catchup”yourbranchtothelabelyouspecifyAfterrebaseinginGit,youstillcaneasilydeterminewhatchangesyoumade–AfterrebaseinginClearCase,ALLofthechangesthattookplacebetweenyouroriginalbaselabelandthenewlabelnowappeartobe“newchanges”onyourbranchThisskewsthingslikeDLCmetricsandmakescodereviewdifficultbecauseyoucan'tdeterminewhatchangesyoumadeandwhatwas“pulledin”fromtherebaseingComponentIntegrationwithGitComponentIntegrationwithGitDevelopers'pull'fromataggedlabeledbranchthatthecomponentCMhasreleasedDevelopersmakechangesonabranchandwhenready,theBRtothecomponentwouldbetheinfofortheirbranchComponentCMdoesa'pull'tobringthedeveloper'schangesintoanintegrationbranchandresolveanymergeconflictsComponentCMdoesamergebacktotheparbranchforthedrumbeatThe“pulling”isdoneviascp,http,oroneofseveralotherprotocolsthatGitsupports,includingitsownnativeprotocolforcommunicatingbetweenreposComponentProjectReleaseswithGitComponentProjectReleaseswithGitProjectCMsgeneratethebinary,sourceandSDKpackageforeachdomainreleaseandcankeepthisinthesamerepositoryoraseparatereleaserepositorywithGitProjectCMsBRthesepackages(includingBinarypackages)totheplatformteamPlatformdropstothePRTPlatformdropstothePRTAtsomepoint,theplatformwillwanttoreleaseabaselinetotheproductintegrationteamsDropsconsistofsource,binaryandSDKpackagesforeachplatformprojectPRTshoulduseBinaryandSDKpackagesandthepackagebasedbuildenvironmentAnymodificationofplatformsourcebythePRTisattheirownriskandunsupportedbytheplatformPRTshouldmaintainseparatepatcheswhichcanbeappliedtoplatformreleasedpackagesandareeasilymanagedwithopensourcepackagingtoolssuchasQuiltGitTransitionPlansGitTransitionPlansWecurrentlysupportpackagingfromaVOBClearCaseenvironmentWedonotsupportsourcepackagebuildsyet,duetoproblemsincomponentarchitectureandcomponentmakefiles–NeedArchitectureteamtodrivethisPlatformreleaseswillbeavailableinbothClearCaseandaGitrepositoryComponentscanmigratetoGitinphasesandtheplatformcanbuildmomentumtowardsafullydistributeddevelopmentenvironmentCreatetoolstoimportexportbetweenGitandClearCasePhasedTransitiontoGitPhasedTransitiontoGitIndividualprojectscanmaketheswitchtoGitwithoutworryingabouttheotherplatformprojectsPlatformscriptstoolswillprovideforbuildingsoftwareinthismixedenvironmentChangesareneededinCMstrategyandtoolstosupportGitrepositoriesCMToolsandConcernsCMToolsandConcernsEzBRtoolswillbemodifiedtosupportGitrepositoriesDDTScancontinuetobetheCRtrackingtool,butanytoolwhichmeetsourCRtrackingandreportingneedscanbeused,suchasBugzillaorTracBRsite(wsdbuild)willneedminorchangestosupportBRsfromGitrepositories(noconfigspec–onlythebranchname)orwecanusesomethingentirelydifferent–MaybeaproductsuchasTracinsteadofDDTSWSDBuildLOCToolsmightneedtobeupdatedtoworkoutsideofclearcase(cleardlc)NeedtodetermineaprocedureprocessforGitrepositorypruningtopreventoutofcontrolgrowthWewillloseClearCasetriggershowdoweenforceourcurrentbranchlabelnamestandardsIsthisevenimportantLRTPRTInterfaceSuggestionsLRTPRTInterfaceSuggestionsPRTreceivesdropsinpackageformatfromtheplatformTheplatformdoesnotdictatewhatCMtoolthePRTusesPRTcanchoosetouseGit,ClearCaseoranythingelsebutusingGitwouldallowthemtoleveragetheadvantagesofGitfortheirownworkPRTwouldnothaveaccesstofullsourcecodehistoryofplatformprojects–onlysnapshotsofthesourcecodePRTchangestoplatformsourcecodearehandledmanagedbythePETPartIIIQuestionsPartIIIQuestionsThefollowingaresomequestionsorchallengeswehavetoimplementingGitattheplatformorcomponentlevelWebelievethatwecanfullyanswerthesequestionsandgetpastthechallengesaspartoffurtherinvestigationandprototypinginthebuildenvteamStillundecided:Whatisplatformandwhatisproduct–Security:Howtocontrolaccesstocertainrepositories–GitsupportsseveralmethodsofaccesscontrolHowdoweenforcebranchlabelnamestandards–EzBRcoulddothisforusHowdowepruneGitrepositories–MoreQuestionsMoreQuestionsDoweneedtodomoreVOBmigrationsnowtoremoveaccesstoproductSWcode–Nothehistoryisstillthere,sowe'renothidinganythingIsthereanequivalenttoPointSECforLinuxworkstations–ConceptofencryptedpartitionsexistsaswellasvirtualpartitionsviaTrueCrypt(OSS)WillwelookforanalternativetoDDTS–SeenextquestionWillwelookforanalternativetothewsdbuildBRwebsite–SomethinglikeTracmightallowustocombinebuildandCRtrackingintoasingleopensourcetoolEvenMoreQuestionsEvenMoreQuestionsWhatareourbackupandDRplanswhenusingGit–NeedtoworkwithCSC–CanwehostGitreposonsourceforgemotcomCurrentlyMOSTsupportsCVSandSubversion,butnotGityetRamiLevyknowsaboutothersaskingforthisAfteryoudetecttamperingofalabelrelease(viaSHA),howdoyourepairthis–SlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlideSlide

职业精品

精彩专题

上传我的资料

热门资料

资料评价:

/ 26
所需积分:0 立即下载

意见
反馈

返回
顶部

Q