Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft...

14
Comparison: Perforce and Microsoft Team Foundation Server (TFS) Perforce 2012.1 and Microsoft Team Foundation Server (TFS) 2012 This document compares Perforce (version 2012.1) with Microsoft TFS (version 2012). Read this comparison to: Understand Perforce and TFS’s major feature differences • Explore differences in architecture, administration, and scalability See where Perforce and TFS can work together

Transcript of Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft...

Page 1: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

Comparison: Perforce and Microsoft Team

Foundation Server (TFS)

Perforce 2012.1 and Microsoft Team Foundation Server (TFS) 2012

This document compares Perforce (version 2012.1) with Microsoft TFS (version 2012). Read this comparison to:•Understand Perforce and TFS’s major feature differences

•Exploredifferencesinarchitecture,administration,and scalability

•See where Perforce and TFS can work together

Page 2: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Table of Contents

Executive Summary _______________________________________________________________ 1

Overview ________________________________________________________________________ 1

Branching, Merging, and Release Management ______________________________________ 2TFS _________________________________________________________________________ 2

Basic Branching and Merging _______________________________________________ 2

Inefficient Merges Lead to Conflicts __________________________________________ 2

Ignored Merge History Loses Data ___________________________________________ 2

Indirect Merging Not Supported in TFS _______________________________________ 4

Branching Model and Guidance _____________________________________________ 4

Perforce _____________________________________________________________________ 5

Basic Branching and Merging _______________________________________________ 5

Branching Model and Guidance _____________________________________________ 5

Workspace Management __________________________________________________________ 6TFS _________________________________________________________________________ 6

Perforce _____________________________________________________________________ 6

Visual Tools ______________________________________________________________________ 6TFS _________________________________________________________________________ 6

Perforce _____________________________________________________________________ 6

Integration with Related Tools _____________________________________________________ 8TFS _________________________________________________________________________ 8

Administration and Support _______________________________________________________ 9TFS _________________________________________________________________________ 9

Distributed Development and DVCS Support _______________________________________ 10

TFS ________________________________________________________________________ 10Perforce ____________________________________________________________________ 10

Scalability and Performance ______________________________________________________ 10TFS ________________________________________________________________________ 10

Perforce ____________________________________________________________________ 10

Learn More _____________________________________________________________________ 11Evaluating Perforce __________________________________________________________ 11

Scheduling a Demo of Perforce ________________________________________________ 11

Migrating to Perforce _________________________________________________________ 11

Page 3: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

1 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

EXECUTIVE SUMMARYThe choice of software version management system profoundly affectsthoseinvolvedindigitalassetmanagement,fromsoftwaredeveloperstoartiststomanagers.Aneffectivesoftwareversionmanagement system is one that:

• Provides a full history of the evolution of digital assets

• Enables parallel development and concurrent team activity

• Helpstheentireteamworkmoreefficiently

• Meets modern development and scalability challenges

• Offersfast,flexible,andreliableservice

While Microsoft Team Foundation Server (TFS) has several otherApplicationLifecycleManagement(ALM)components,includingtasktrackingandbuildmanagement,thispaperwillconcentrate on the versioning component of TFS.

This document compares Perforce (version 2012.1) with MicrosoftTeamFoundationServer(version2012),contrastingmajorfeaturedifferencesandexploringsystemarchitecture,administration,andscalability.ForthoseusingTFSasaworkitem(issue)managementsystem,amethodofintegratingPerforcesoftware version managment with TFS work items is explored.

The analysis in this paper suggests that Perforce is a more productive and robust software version management system withsignificantadvantagesinscalabilityandtotalcostofownership. Perforce handles basic and advanced software version managementoperationsmorereliably,providesinnovativetools,issimplertoinstallandscale,anddoesnotdictateworkflowandtool selection.

Usability and Collaboration

Attribute Team Foundation Server (TFS) Perforce

Branching, Merging, and Release Management

TFS offers basic branching and merging. TFS’s lack of support for advanced merging hampers productivity. Branching framework and release model mostly designated by convention.

Perforce automatically tracks the history of all branch operations with its advanced merge tracking mechanisms. Streams provide best-practices branching framework. Granular triggers and broker available for guidance.

Workspace Management Changelists are not created until work is submitted. Workspace views are simple 1:1 mappings.

Changelists can be used to organize work in a workspace. Workspace views allow more flexible selection of working files.

Visual Tools TFSclientsavailableinVisualStudio,Eclipse,andaweb client. A simple branch graph is provided.

Full-featured multiplatform standalone visual clientavailable,aswellasfullysupportedintegrations for Visual Studio and Eclipse. Third-party integrations support several other IDEs.VisualizationtoolsincludeStreamGraph,MergeQuest,RevisionGraph,Time-lapseView,andmore.

Integration with Related Tools TFS includes several Application Lifecycle Management (ALM) components. Integrations are available from third parties. APIs available for .NET,Java,andwebservices..

Perforce follows a best-of-breed approach and offers fully supported integrations with leading defecttrackingandbuildtools,includingTFSworkitems. Integration tools include the Defect Tracking Gateway and several Perforce APIs. Third-party integrations are also available for tools in many other categories.

OVERVIEW

Page 4: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

2 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

BRANCHING, MERGING, AND RELEASE MANAGEMENT

TFS

Basic Branching and MergingAlthoughTFSoffersbasicbranchingandmerging,itsmergealgorithms do not support common merge scenarios such as indirectmerges,andsometimescreatemergeproblems.Thelackofadvancedmergesupportcandecreaseproductivity,asdeveloperswastetimefixingmergeproblemsandadjustingtheirworkflowstoworkaroundthelimitations.Similarly,uncertaintyabout merging results will slow the adoption of automated release management processes.

Inefficient Merges Lead to ConflictsAs a simple example of a case where TFS merging does not work properly,considerthescenarioillustratedinFigure1.Inthisscenario,afilewasbranchedimmediatelyaftercreation,several

editsweremadeonbothbranches,andsomechangesfromthechildbranch(DEV)weremergedback(intoMAIN).InStep7,we try to merge the latest changes from the parent (MAIN) to the child (DEV). TFS does not properly consider prior merge credit fromStep5,leadingtoanunnecessarymergeconflict.AlthoughTFSdoesnotreporttheselectedbase,itismostlikelyselectingthe wrong base for the merge.

Ignored Merge History Loses DataTFS’s merge engine also causes data loss by failing to properly consider prior merge history. Consider the scenario illustrated in Figure 2.

Inthisscenario,afilewasbranchedimmediatelyaftercreation.Achangewasmadetothefileintheparentbranch(MAIN)andmergedintothechildbranch(DEV),butthechangewasignored.A change was then made on the child branch. When merging this changebacktotheparentinStep6,TFSoverwritesthefirstlineofthefile.Inreality,theonlyuniquechangeonthechildbranchwastheintroductionofthenewlineattheendofthefile,soremovingtheeditonthefirstlineisunexpected.

Administration and Scalability

Attribute Team Foundation Server (TFS) Perforce

Administration and Support SupportedbyMicrosoft.Administrationrequiresknowledge of several components including TFS,SQLServer,IIS,andSharePoint.Allserver components are Windows only. Upgrade procedures can be complex.

World-classtechnicalsupport,training,andprofessional services provided by Perforce. Simple and consistent deployment results in lower administration costs. Excellent multiplatform support. Simple upgrade procedures with good interoperability across versions.

Remote Development Proxy servers cache file content at remote sites. Local workspaces allow some operations to be performed while disconnected.

Perforce Git Fusion provides seamless collaboration for Git users. Proxy and replication services offer file and data caching solutions for remote sites for several scenarios.

Scalability and Performance ScalingTFSmayrequireacomplextopologywithmultiple clustered data and application tiers. The datatiercanbepartitionedacrosssites,butnoreplication is available.

Perforce scales up to many terabytes and tens of millions of versioned files. Perforce is currently deployedinenvironmentswith10,000+usersandheavyautomation.Proxies,Brokers,ReplicationServices,andGitFusionprovidepowerfulandflexible deployment architectures.

Page 5: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

3 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

STEP 2

STEP 1 STEP 3

STEP 5

STEP 4 STEP 6

STEP 7

1:1 ----2:2 ----

Rev 1

DEV

MAIN

1:1 ----2: foo2 ----

Rev 2

1:1 ----2: bar2 ----

Rev 3

1:1 ----2:2 ----

Rev 1

1: edit1 ----2:2 ----

Rev 2

1: edit1 ----2: foo2 ----

Rev 3

1: edit1 ---<<<<<< .working2: bar======2: foo>>>>>> .merge-right2: ----

Rev 4

CONFLICT

STEP 2 STEP 4 STEP 6

STEP 5

STEP 1 STEP 3

1:1 ----2:2 ----3:3 ----

1:1 ----2:2 ----3:3 ----

1:1 ----2:2 ----3:3 ----4: new line4 ----

Rev 1

DEV

MAIN

Rev 2 Rev 3

1:1 ----2:2 ----3:3 ----

Rev 1

1: edit1 ----2:2 ----3:3 ----

Rev 2

1: <removed>1 ----2:2 ----3:3 ----4: new line4 ----

Rev 3

Igno

re

Figure 1: A simple merge scenario in which TFS causes a merge conflict.

Figure 2: A merge scenario in which TFS causes data loss due to ignoring merge history.

Page 6: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

4 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Indirect Merging Not Supported in TFSIndirect merging (merging between sibling branches) is common inadvancedenvironments.Althoughnotabestpractice,indirectmergingissometimesnecessarytoquicklypropagateabugfixbetweenindirectlyrelatedbranches.Indirectmergingalsoprovidesflexibilityformovingworkfromonetaskbranchtoanother.

TFS does not support indirect merging. Attempting amergebetweensiblingbranchesgivesanerror,asshowninFigure3.Indirectmergingcanbeforcedusingthebaselessoption,butthatignorespriorindirectmergehistory,greatlyincreasingthechancesofmergeconflicts.

Branching Model and GuidanceDevelopment and release management models are built by convention,usuallyusingaknowndirectorystructurefordifferentbranchtypes.BranchgraphvisualizationisavailableinTFSasshowninFigure4,butitdoesnotindicatetherelativestabilityofdifferentbranchesortheintendedmergepathways.Forinstance,thereisnoindicationthattherel-1.0branchismorestablethanthemy-taskbranch,andnoindicationwhethertherel-1.0branchshouldacceptachangefromitsparent.Also, no visual indicator exists when merges are pending between branches.

TFSlackssomeoftheusualtoolstoguideacustomworkflowforbranchingandreleasemanagementtasks,suchashooksor triggers that respond to SCM events. TFS does have some workflowcapabilitiesinitsothercomponents.Forexample,theTFS build system can enforce a policy that prevents check-ins unless the code builds successfully. TFS also has an event system thatcanbeusedforpost-processingofSCMevents,suchasemailnotificationsofcheck-ins.

STEP 1edit

STEP 2branch

STEP 2branch

STEP 4edit

STEP 3edit

DEV A

DEV B

MAIN

Merge toparent: ok

Merge tosibling fails

Figure 3: TFS cannot handle indirect merges.

Figure 4: TFS Branch Graph showing the branch hierarchy for the Jam project.

Page 7: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

5 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Perforce

Basic Branching and MergingThePerforceInter-FileBranchingmodelispowerfulandflexible,capableofbranchingthousandsoffilesrapidlywhileretaininga complete branch and merge history (including the method of resolving merges). Instead of manually tracking all changes across branches,userscanrelyuponPerforcetomergefilechangesacrossmultiplebranchesautomaticallywithfewerconflictstoresolve. This enables a variety of development scenarios such as client-specificversions,experimentalbranches,personalortaskbranches,andtheclassicreleasebranchingpatterns.Abuilt-ingraphicaltool,RevisionGraph,displaysthedetailedbranchinghistoryofeachfileforeasyvisualizationofcodepropagation.

Perforce’smergeengineisbothrobustandflexible. Themostcomplexmergescenariosaresupported,includingrefactoring,indirectmerges,andhandlingnon-contentchanges.Becauseofthisrobustness,automationcanconfidentlybeincorporated into most branching and release management workflows.

Inthethreemergingscenariosdescribedearlier,Perforceperforms the merges correctly:

• InthescenariodescribedinFigure1,Perforceselectsthecorrectbasewhichresultsinamergewithnoconflicts.

• InthescenariodescribedinFigure2,Perforcecorrectlyconsiders prior merge history and merges cleanly.

• InthescenariodescribedinFigure3,Perforceisabletoseamlessly merge between the sibling branches using the indirect merge history.

Branching Model and GuidancePerforce Streams provide a lightweight but powerful branching model.Usingstreams,aproductarchitectdefinestherelationshipbetweenstreams,themodulesthatcomposeaproduct,andthedirection of change (merges) between streams. This information simplifiesandautomatesmanyroutineuseroperations.

Whenusingeitherstreamsorregularbranching,Perforceoffersseveral tools to guide and enforce policy. Triggers and access controlaregranular,whilethePerforceBrokerprovidescommandfiltering.

dev2.3

rel2.1 rel2.2 rel2.3

main

Figure 5: Perforce Revision Graph.

Figure 6: Perforce Stream Graph.

Page 8: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

6 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

WORKSPACE MANAGEMENT

TFSTFS workspaces consist of simple 1:1 mappings between repositorydirectoriesandthelocalfilesystem.Newworkspacescan be created using an existing workspace as a template.

TFS’schangesetsareroughlyequivalenttoPerforcechangelists,representing atomic units of work and sync points in the repository.However,TFSdoesnotallowthecreationofpendingchangesets to organize work. Changesets cannot be created until check-in(Shelvesetscanbeusedtoshelvependingwork,butsubmittingashelvesetchecksinthefilecontentasstoredintheshelf).

Perforce Perforceworkspacesareflexibleandgranular,allowingtheselection,exclusion,orremappingoffiles.Forexample,aPerforceworkspacecouldexcludeallbuildartifacts(fileswitha.objextension)andmoveregion-specifictranslationfilestoadifferentfolder for localized builds.

Perforce workspaces can be generated automatically when workingwithstreams,allowingteamleadstoensurealldevelopersusethecorrectsetoffiles.Users can also create Perforce workspaces manually or use existing workspaces as templates.

Userscancreatependingchangeliststoeffectivelyorganizeworkon several tasks in a workspace. This simple feature helps users avoidsubmittingunrelatedfilesbymistake.

VISUAL TOOLS

TFSTFS’s visual tools are available in Visual Studio and Eclipse. BesidestheBranchGraph(Figure4),TFSprovidesothertechniquesfordisplayingthebranchinghistoryofachangeset(Figures8and9).However,thesetoolsdonotshowthefulllifecycleofafilelikePerforce’sRevisionGraph(Figure6).

Perforce P4V,Perforce’smultiplatformvisualapplication,providesconsistent visual tools for all major platforms that are generally morefeature-richthantheirTFSequivalents.Forinstance,Perforce’s annotation tool includes lifecycle indicators and can showasubsetoffilehistory.

Innovative visualizations including the Stream Graph and HTML5appletsenhanceproductivity.BesidesP4V,fullysupported integrations are available for Visual Studio and Eclipse. Third-party integrations support several other IDEs.

Source code

Repository WorkspaceView Mapping

Build artifacts

English translations

Japanese translations

Source code

Build artifacts not required

Local translation

Figure 7: A flexible workspace view in Perforce.

Page 9: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

7 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Figure 8: Branch history of a changeset (hierarchy) in TFS. Figure 9: Branch history of a changeset (timeline) in TFS.

Figure 10: TFS Time Lapse View.

Figure 11: Perforce Time-lapse View.

Page 10: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

8 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

INTEGRATION WITH RELATED TOOLS

TFSandPerforcefollowradicallydifferentphilosophiesinthisarea.TFS,aspartoftheVisualStudioTeamSystem,providesalargelymonolithicALMpackage.Perforcepracticesabest-of-breedstrategy,providingthebestversioningsolutionpossibleandintegratingwithpowerful tools in other categories.

TFSTFSincludesotherALMcomponents,includingabuildmanagementsystem,testagents,reporting,andSharePointforcollaborationportals.Indeed,everynewTFSprojectrequirestheselection of a process template.

TFS integrates with Microsoft Excel and Project for work item tracking. Custom tools provide basic check-in/checkout features inotherMicrosoftOfficeproducts.

Third-party integrations are available for non-Microsoft tools. TFSprovidesAPIsforthe.NETenvironment,Java,andwebservices.

PerforcePerforceusesabest-of-breedapproach,providingpowerfulsoftware version managment and integrating with leading tools in other categories. Although using a single solution for ALM may seemsimpler,preselectingonetoolthatworkswellforallteamsproves challenging. Assembling an ALM package from best-of-breedproductsprovidestheflexibilitytochangeandadaptprocesses over time.

Forexample,asiteusingVisualStudioforsomedevelopmenteffortsmaychoosetouseTFSworkitemsandprojectmanagement. As the public project in Assembla shows (assembla.com/spaces/tfs-perforce-work-item-sync/wiki),PerforcejobscanbelinkedtoTFSworkitems,providingthelinkbetween checkins and work items. Other parts of the company using other ALM tools can integrate with Perforce as well.

Integration tools include the Defect Tracking Gateway and fully supportedAPIsforC/C++,Perl,Python,Ruby,PHP,Java,iOS,and Android. Perforce also integrates with popular applications in several categories including:

• IDEs

• Web and graphical tools

• Software build tools

• MicrosoftOffice(versioningforWord,Excel,PowerPoint,andProjectfiles)

• Mergeanddifftools

Page 11: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

9 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

ADMINISTRATION AND SUPPORT

InstallingandadministeringaPerforceSharedVersioningServiceissignificantlysimplerthanTFS,resultinginalowertotalcostofownership.

TFSTFS is a complex application with several components.1 A TFSinstanceincludesSQLServer,IIS,andTFSitself,andmayincludeSharePointandothermodules.Architecturally,TFS is minimally divided into data and application tiers with several databases and optional SharePoint and reporting tiers. Dependingondeploymentsize,TFSmayrunononetoseveralservers.Therequirementforproductcomponentsdistributedovermultipleserversaddstothetraining,maintenance,anddiagnostic responsibilities of system administrators.

InstallingandmaintainingTFSrequiresexpertiseinallthecomponents and a considerable investment in planning the deployment architecture. Backup and recovery procedures must be implemented and tested for each tier and component. Upgradesmaybecomplexandtime-consuming;forinstance,upgrading the application tier usually involves uninstalling the old version of TFS and then installing the new version.

ScalingoutaTFSdeploymentrequiresexpertiseinseveralareas,includingSQLServer,IIS,SharePoint,hardwareandnetworkloadbalancing,andclustering.

TheTFSserverrunsonlyonWindows,althoughclientsareavailable for other platforms. TFS is supported by Microsoft.

1 http://msdn.microsoft.com/en-us/library/ms252473.aspx

Perforce Perforce imposes minimal administrative overhead. Perforce deployment is simple and consistent. Working in a multiplatform environmentposesnoproblem,andPerforcehasexcellentsupport for mixed services and application versions. Upgrade proceduresaresimpleandfast,oftenrequiringnothingbutreplacing the service binary and running a single upgrade command.

ScalingoutaPerforcedeploymentrequiresverylittleadditionalexpertise.Proxyservicesandbrokersrequirelittlemaintenance,whileGitFusionrequiresnoextrasoftwareorprocessfordevelopers.Replicationservicesrequireasmallsetofconfigurationchanges,butareotherwiseidenticaltoaregularPerforce service. The Perforce service runs on all major platforms.

ExpertandresponsivetechnicalsupportisahallmarkofPerforce,and full technical support is included during an evaluation. Becausesupportisbetterexperiencedthandescribed,Perforceencourages prospective customers to judge for themselves during a 45-day trial.

Perforcealsooffersafullrangeoftrainingandprofessionalservices. Perforce provides technical support for past releases for anextendedduration,andhasadefinedpolicythatprovides12months’ minimum notice before an older product is retired.

Page 12: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

10 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

DISTRIBUTED DEVELOPMENT AND DVCS SUPPORT

TFSTFSofferssimpleproxyservicesthatcachefilecontentstosupport remote sites or build farms. TFS 2012 introduced local workspaces,whichcacheenoughinformationinaworkspacetoallowcommandslike‘diff’and‘status’torunwithoutaserverconnection. Local workspaces support the modify-merge-commit workflow.However,localworkspacesarenottrulyindependent:they do not support private local branching or even committing while disconnected.

PerforceDistributed development with Perforce is supported by several tools. These tools are typically transparent to the end user.

Git Fusion allows seamless collaboration on the same data for developers working either in Git or Perforce. Git developers enjoy Perforce as a master repository with Git’s distributed features.

Perforce proxies at remote locations support Perforce’s distributed architecture.ThePerforceProxyServicecachesandservesfilestousersatremotelocations,reducingtrafficacrossslowerWANlinks.Allusers,localorremote,connecttothesamecentraldepotandlookatthesameprojectfiles.ThePerforceProxyServicerequiresminimaladministrativeattention.

PerforceReplicationServicessupportautomatedbuildprocesses,simpledisasterrecovery,andtheread-onlyactivityofendusersatanysite.Usingreplicasprovidessignificantperformanceimprovements.

SCALABILITY AND PERFORMANCE

TFSScalingTFStosupportalargeuserbase,distributedwork,orheavy data volume can be a daunting task. Examples of scaled-out TFSdeploymentsincludemultipleapplicationanddatatiers,eachrunninginclusters,withseveralindependentdatatiersfordifferentsites.2

DespitethecomplexityofaTFSdeployment,simpledatareplication is not supported.

PerforcePerforceisbuiltprimarilyforspeed.Perforcescaleslinearly,so there is no performance penalty imposed by the number of revisionsorthesizeofanygivenfile(s).ThePerforceVersioningService has been deployed successfully in environments with severalthousandusers,terabytesofversionedcontent,andmillions of revisions. Perforce’s deployment architecture includes proxies,brokers,replicasandGitFusion,andthesetoolscanbetailored to satisfy demanding environments.

Replication Services are particularly useful for supporting automated processes such as aggressive continuous integration; the performance burden of such processes is shifted entirely away from the Shared Versioning Service.

ToolsavailableforscalingoutaPerforcedeploymentrequireverylittleextraconfigurationincomparisontosimilareffortsinTFS.

2 http://msdn.microsoft.com/en-us/library/ms400682.aspx

Shared Versioning Service

Proxy Service

ReplicationService

P4Sandbox P4Sandbox

Figure 12: Perforce’s distributed architecture.

Page 13: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

11 Comparison: Perforce and Microsoft Team Foundation Server (TFS)

LEARN MORE

Evaluating PerforceMorethan400,000usersat5,500companiesrelyonPerforceforenterprise version management. Perforce encourages prospective customers to judge for themselves during a typical 45-day trial evaluation. Free technical support is included with your evaluation. Get started: perforce.com/trial

OnceyouhavedownloadedPerforce,learnmoreaboutourVisualStudio integrations:

Learn more about P4VS,thePerforcePlug-inforVisualStudio,afully-compliant Visual Studio plug-in with one-stop access to all of the tools you need.

Visit the VSIP gallery: http://goo.gl/twQII

Try the Perforce and TFS Work Item Integration: assembla.com/spaces/tfs-perforce-work-item-sync/wiki

Scheduling a Demo of PerforceTolearnmoreaboutPerforce,scheduleaninteractivedemotailoredtoyourrequirements: perforce.com/product/demos

Migrating to PerforcePerforce Consulting Services has experience assisting customers with migrations from various software version management systems.Formoreinformation,visit: perforce.com/consulting

Page 14: Comparison: Perforce and Microsoft Team Foundation Server ... · Comparison: Perforce and Microsoft Team Foundation Server (TFS) 5 Perforce Basic Branching and Merging The Perforce

North America Perforce Software Inc.2320 Blanding AveAlameda, CA 94501USAPhone: +1 [email protected]

EuropePerforce Software UK Ltd. West Forest GateWellington RoadWokinghamBerkshire RG40 2ATUKPhone: +44 (0) 845 345 [email protected]

Australia Perforce Software Pty. Ltd.Suite 3, Level 10221 Miller StreetNorth SydneyNSW 2060AUSTRALIAPhone: +61 (0)2 [email protected]

p e r f o r c e . c o m

Copyright © 2012 Perforce Software Inc. All rights reserved. All trademarks or registered trademarks used herein are property of their respective owners.