关闭

关闭

关闭

封号提示

内容

首页 MagxGit.pdf

MagxGit.pdf

MagxGit.pdf

胜歌 2011-06-03 评分 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

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/26
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料