Helix Core Vs. Microsoft TFS/TFVC - Perforce Software

Transcription

VSCOMPARISONHelix Core vs. Microsoft TFS/TFVCIn this document, we will compare Perforce Helix Core to Microsoft Team Foundation Server (TFS.)Specifically, we will look at the TFVC (Team Foundation Version Control) functionality. With TFVC,your code is kept on the TFS server, usually on-premises. Developers often work in the popularMicrosoft Visual Studio application on their own Windows workstation. They connect to the TFVCserver to collaborate with other developers.Changes in the Microsoft WorldWhen TFS version control originally shipped, it wasexclusively an on-premises solution – Visual Studio2005 Team System. Since then, of course, Microsofthas made regularly made significant updates.In 2016, Microsoft released a cloud-based service,Visual Studio Team Services (VSTS). This marked adifferent direction for TFS on-premises customers.More recently, VSTS has been rebranded as AzureDevOps, with a variety of developer tools availableon Microsoft’s Azure cloud platform. Although AzureDevOps continues to provide support for TFVCrepositories, the Microsoft vision has a new iteration.Move Over TFSMicrosoft’s acquisition of GitHub — the highly-adopted open source code-hosting and collaboration site— may provide clues to the company’s version control strategy. But analysts believe that the actual VCSfeatures of GitHub are less important to Microsoft.www.perforce.comWhat’s more important? Winning the hearts andminds of some 31 million GitHub users, and keeping them away from the very popular AWS cloud.Because Microsoft’s new Azure and Git strategy isso different from the way TFS and TFVC users worktoday, teams have a big decision looming. Should theymove to the cloud and embrace Microsoft’s DevOpspipelines and other Azure-based technologies? Orshould they choose another VCS that will work onpremises and deliver on their DevOps priorities?Microsoft will continue mainstream support of TFSthrough 2023. Although some older versions (pre 2016)that many teams are still using are no longer supported.TFS has several applications in addition to versioncontrol. These Application Lifecycle Management(ALM) features include task tracking, build management, and testing. Here we will focus entirely the VCSfunctionality. But if you are looking to replace yourentire TFS solution, investigate upgrading to Helix ALM Helix Core. Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON2Helix Core vs. Microsoft TFS/TFVCContentswww.perforce.comSUMMARY3WHY SWITCH TO HELIX CORE3COMPARISON MATRIX4PERFORMANCE AND SCALABILITY5BRANCHING AND MERGING5WORKING WITH CODE6CODE REVIEW6RELEASE MANAGEMENT7WORKING WITH GIT7GLOBAL TEAMS8SECURITY8VISUAL CLIENT9CONCLUSION9 Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON3Helix Core vs. Microsoft TFS/TFVCSummaryWhy Switch to Helix Core?Version control has become a key component forthe foundation for DevOps. A highly performant andscalable version control system is critical to achievingaccelerated Continuous Integration and ContinuousDelivery (CI/CD) workflows. Legacy TFS lacks theeatures and performance to provide the foundationfor DevOps success. And new Azure DevOps isjoined at the hip with the Microsoft cloud, limitingyour deployment choices and development tools.This document examines Helix Core (version2018.2) and Microsoft Team Foundation Server2018 TFVC. Major VCS features are compared.The resulting analysis shows that Perforce’s robustversion management system can enhance teamproductivity with significant advantages in scalability and total cost of ownership. Helix Core easilyhandles basic and advanced version managementoperations more reliably. Perforce and Helix Coregive you DevOps at scale with innovative tools,simpler installation and administration, withoutdeployment, workflow and tool selection limitations.Common frustrations with TFVC include: Performance and Scalability Limitations:The system slows down as the number ofusers, repositories, files, branches, andrevisions increases. Total Cost of Ownership: Lack of tooling andinfrastructure, and the cost in time of systemadministration, increases the total cost ofownership. Time-Consuming Operations: Developers,admins, and build engineers spend too muchtime on low value tasks with TFS. Difficult Release Management: CI/CD is harder than it should be, especially with multiplerelease branches. This can lead to drawn-outcode freezes and potentially delayed releases. Coexistence with Git: The new Azure DevOpshas both TFVC and Git support, but the twoare very separate. In a nutshell, you mustchoose between TFVC and Git, not both.Let’s examine why Helix Coremight be a better choice. Makingthe switch can give you:SUPERIOR PERFORMANCEGLOBAL SCALABILITYMODERN CODE REVIEWWORKFLOWSDEVOPS AT SCALEADDED GIT SUPPORTBETTER SECURITY WITHGRANULAR PERMISSIONS Lack of Support For Global Teams: TFS is asingle-site installation with no geographicreplication. Teams need to rely on infrastructure to support geographically diverse sites.And even with a robust network, daily taskscan cause performance delays. Developerswaiting means productivity suffers.www.perforce.com Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON4Helix Core vs. Microsoft TFS/TFVCComparison MatrixCAPABILITYPERFORMANCE ANDSCALABILITYTFVC is installed on two to five Windowsservers, depending on features andperformance needs. For teams with multipleterabytes of assets, this is a severe limitation.Helix Core effortlessly supports thousandsof users and millions of daily transactions.And it accelerates CI/CD with lightning-fastcommits and concurrent builds.BRANCHING ANDMERGINGIt’s easy to branch with TFVC’s user interface. Merging is also easy, but can be slow.The inability to handle non-contiguouschangesets can lead to delayed deployments. And, over time, this can create aless stable codebase.Helix Core uses Streams — a simple, intelligent, and automatic branching mechanism.Advanced merging provides flexibility, whileat the same time prevents developers frommaking mistakes. Rules are enforced basedon the intended purpose of the branches.WORKING WITH CODEIn TFVC, code is copied to a folder(workspace) on a workstation. It’s a 1:1relationship. Code can then be edited andwhen submitted, a changelist is created.Helix Core’s Client Workspace gives you awindow into the code on the server. It empowers development and provides flexibility.Code is not constrained to a single folder.And submitted work is organized usinguniquely numbered changelists.CODE REVIEWCode reviews are invoked using VisualStudio’s Team Explorer. Code is sharedin TFVC. Then a review is requested inMicrosoft Visual Studio.Helix Swarm is a browser-based code reviewand collaboration interface that is includedat no additional cost with Helix Core. It is alsointegrated with Microsoft Visual Studio.RELEASE MANAGEMENTWith TFVC, the relationship between branches and trunk is not always clear. It is up toyour team to create a naming scheme anddocumentation to keep track of the changes.Streams identifies branches as mainline,development, and release. This hierarchyhelps to easily identify changes that needto be propagated into multiple codelines.WORKING WITH GITWith Visual Studio, you can work with eitherGit, or TFVC— but the two are separate.Having teams collaborating on code requiresselecting one or the other, not both.Helix4Git is an add-on option that allows youto manage Git repos in the high-performance Helix Core server. Developers can useGit seamlessly, while Helix4Git provides highperformance DevOps integrations for CI/CD.GLOBAL TEAMSTFVC doesn’t have a native capability forteams to collaborate across multiple sites.There is no concept of replication.Helix Core offers an unparalleled set of technologies including caching and advancedreplication options. With Perforce FederatedArchitecture, global teams can access andmanage files at LAN speeds.SECURITYTFS security is based on Windowsauthentication, users, and groups.Helix Core has powerful file-level accesscontrol. It integrates with your preferredIdentity Provider (IdP) to secure your IP viaclients, plugins, and even the command line.VISUAL CLIENTSTFVC seamlessly integrates with VisualStudio.P4VS is a plugin for Visual Studio that hasbeen downloaded more than 350,000 times.The plugin supports the most often usedfeatures of Helix Core.www.perforce.com Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON5Helix Core vs. Microsoft TFS/TFVCPerformance and ScalabilityTFSHELIX CORETFS requires multiple Windows servers to support itscomponents. Installation includes TFS itself and yourMicrosoft SQL server installed as a single instance.Because of this, many companies have experiencedlimitations trying to support a large user base, multiple teams, high frequency of automation requestsresulting from CI/CD and delivering high volume ofdata to users.Helix Core outperforms TFS in several performancebenchmarks, such as the number of cores, memory,OS, and IO — even in a single server configuration.Speed has always been a key part of Helix Core. Theability to scale linearly ensures that no matter thenumber of revisions, or the file size, performancenever dips.Despite the complexity of a TFS deployment, simpledata replication is not supported. For teams with multiple terabytes of assets, sharing may be limited. It maybe necessary to simply copy code from one server toanother for reuse, which is an administrative burden.Helix Core has been deployed successfully in environments with tens of thousands of users, petabytes ofversioned content, and tens of millions of revisions.And Perforce Federated Architecture provides manyoptions for scaling out a local and global deployments.Branching and MergingTFSHELIX CORETFVC branching and merging has evolved over theyears. Although it has become more robust, mergingremains slow. Like many VCS systems built a few yearsago, development and release management modelsare built by convention. A directory structure is needed to define different branch types. This can limit theadoption of automated release management processes due to ineffective labeling.Helix Core’s “next generation” branching technology,Streams, is both powerful and flexible. It provides alightweight model capable of branching thousandsof files rapidly, while retaining a complete branch andmerge history. Instead of manually tracking all changesacross branches, users can rely on Helix Core. UsingStreams, a product architect can define the relationshipbetween streams, the modules of a product, and thedirection of merges. This simplifies and automatesmany routine user operations.Visualization for branches is available as a graph inTFS, but it does not indicate the stability of differentbranches or the intended merge pathways. For example, there is no indication that a “rel-1.0 branch” couldbe more stable than “my-task branch.” And there is noindication whether the rel-1.0 branch should accepta change from its parent. There are also no visualindicators to show that merges are pending betweenbranches. Limited visibility can create merge conflictsthat soak up developers’ time and severely impactproductivity.www.perforce.comAutomatically merging file changes across multiplebranches creates fewer conflicts to resolve. Thisenables a variety of development scenarios such asclient-specific versions, experimental branches, personal or task branches, and classic release branchingpatterns. Revision Graph, a built-in graphical tool,displays the detailed branching history of each filefor easy visualization.(CONTINUED ON NEXT PAGE) Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON6Helix Core vs. Microsoft TFS/TFVCHELIX CORE (CONT.)Helix Core’s merge engine can easily handle themost complex merge scenarios including refactoring,indirect merges, and non-content changes. Becauseof this robustness, automation can confidently beincorporated into most branching and releasemanagement workflows.Working with CodeTFSHELIX CORETFVC workspaces consist of simple 1:1 mappingbetween repository directories and the local filesystem. New workspaces can be created using anexisting workspace as a template. TFS’s changesetsare roughly equivalent to Helix Core changelists.Helix Core workspace views are flexible and granular,allowing the selection, exclusion, or remapping offiles. For example, a workspace could exclude all buildartifacts (.obj) and route region-specific translation filesto a different folder for localized builds.They show atomic operations and sync points in therepository. However, TFVC does not allow the creationof pending changesets to organize work. Changesetscannot be created until check-in. Shelvesets can beused to store pending work. But submitting a shelvesetchecks in the file as stored in the shelf. The file thensits on the client, which can create problems for otherdevelopers looking to make changes on the server.Workspaces can be created manually or use existingworkspaces as templates. When working with Streams,workspaces can be generated automatically with onlythe correct set of files needed for the project/task. Andwhen creating a pending changelist, work is effectivelyorganized into several tasks in a workspace. This simple feature helps users avoid submitting unrelated filesby mistake.Code ReviewTFSHELIX CORE HELIX SWARMDepending on the TFS/TFVC version, users may initiatecode reviews from either Visual Studio, or a work itemin TFS. Code reviews consist of comments on codefrom team members. One downside to TFS on-premises installation is the lack of browser-based code reviewfor projects. While the VSTS interface does supportweb-based code reviews for TFVC and for Git projects,they are separate.Helix Swarm is a code review and collaboration tollwith modern features such as code browsing, inlinecommenting, suggested tasks, review “upvoting,” andfinal work submission. Swarm’s web-based interfacesupports extremely large teams, and a large numberof simultaneously open reviews.www.perforce.comIt provides a strong cornerstone for Continuous Integration (CI). Key features include workflow managementat scale, support for build-runners, agile project management integration, customizable dashboards, andnotifications. Helix Swarm part of the Helix Core licenseand is accessed within Visual Studio via the P4VS plugin. Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON7Helix Core vs. Microsoft TFS/TFVCRelease ManagementTFSHELIX COREWith TFVC, you can tag/label each release branch orbug fix. However, the relationship between branchesand the trunk is not always clear. It is up to the team tocreate a naming scheme and documentation to keeptrack of the flow of change.Helix Core also supports labeling. It is a popularfeature for use with automation, such as Jenkins. ButHelix Core’s strongest release management feature isStreams. Developing using Streams simplifies automation because branches are easily identified as mainline,development, and release.This hierarchy makes it possible to automaticallydetermine changes that need to be propagated andto which codeline(s). Streams’ structure supports agile/DevOps environments. It streamlines release management for complex product development cycles andempowers high release frequencies.Working with GitTFSHELIX COREMicrosoft officially began supporting Git in TFS andVisual Studio back in 2013, alongside TFVC. Git cameto the forefront with the release of VSTS and VisualStudio 2017. Today, Azure DevOps has replaced VSTS.And while Git is in first-class, TFVC takes a backseat.There is still support for TFVC repos and workflows, butno ability to co-exist with Git. The primary difference todevelopers? Git has a pull-request workflow versus theshelving/code review workflow in TFVC.Helix Core has a unique add-on technology optioncalled Helix4Git, which stores Git repos natively in ahigh-performance Helix Core server. It lets development teams take advantage of the benefits of both theHelix Core workflow and Git. Teams can build productsusing both solutions.www.perforce.comDevelopers can use Git seamlessly, while Helix4Git provides high-performance DevOps integrations. Whetherit is binary artifacts, graphics, or video from Helix Core,it can be seamlessly combined with code from Git inbuild pipelines. Perforce also has a product called HelixTeamHub, which offers an enterprise-grade web codehosting and collaboration platform for Git. Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON8Helix Core vs. Microsoft TFS/TFVCGlobal TeamsTFSHELIX CORETFS is a single-site installation with no built-in replication. Enterprises need to rely on infrastructure tosupport geographically diverse teams. Teams aredependent on network infrastructure to access TFSand TFVC servers. For teams with multiple terabytesor petabytes of assets, this is a severe limitation in alldimensions of scale.Perforce Federated Architecture is robust native replication technology. It seamlessly scales to meet globaldemands. This provides a real “single source of truth”that lets developers work together, even when teamsare located in diverse geographic locations.Helix Core provides options such as proxy servers,brokers, and a variety of replica types that can betailored to satisfy the most complex environments. Inaddition to supporting teams, replica servers can alsosupport advanced automation processes for accelerated DevOps, whether locally or in remote locations.SecurityTFSHELIX CORETFS offers granular permissions and groups, and itis integrated into Microsoft Active Directory (AD) foridentifying users. TFVC permissions are administeredseparately after your TFS project has been configured.Administrators have explicit permissions to control theuse of features, for example branching and merging,by contributors.One of the most compelling security features of HelixCore is that you can control access down to a singlefile. Individual and group contributors can also haverestricted functionality on a granular basis. Helix Corecan also be integrated with your organization’s IdentityProvider (IdP) using Helix Authentication Service (HAS).It currently supports the OpenID Connect and SAML2.0 authentication protocols. It can be used in conjunction with Helix Core clients and plugins, and thecommand line. his service is internally certified with Microsoft Azure Active Directory (AAD), Okta, and GoogleIdentity. It is also known to be compatible with otherIdPs such as Auth0, OneLogin, and Google G-Suite.www.perforce.com Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

COMPARISON9Helix Core vs. Microsoft TFS/TFVCVisual ClientTFSHELIX COREMicrosoft Visual Studio is the visual client used byTFVC developers. It is arguably the most popular andpowerful IDE in the software development world.Helix Core provides seamless integration with Microsoft Visual Studio. The P4VS plugin is available in theVisual Studio Marketplace, and provides access toall the major functions of Helix Core from within theIDE. This includes branching and merging, exclusivecheckouts with file locking, code reviews, and more. Inaddition, P4V, Helix Core’s multiplatform visual client,provides an easy-to-use interface across Windows,Linux, and Mac.ConclusionTFS is like an old friend. But it’s one who wants to go give you handwritten directions, rather than plug an addressinto Google maps. It’s probably holding you back at this point, or at least delaying your arrival. Helix Core is arobust solution to TFS/TFVC that supports your DevOps and automation initiatives. It can easily handle your versionmanagement operations more reliably. And Helix Core delivers satisfaction to your organization with faster performance, global scalability, better security, and support for DevOps at scale.Want to learn more about how Helix Core stacks up against TFS? We’re here to help!About PerforcePerforce is a leading provider of enterprise scale software solutions to technology developers and development operations (“DevOps”) teamsrequiring productivity, visibility and scale during all phases of the development lifecycle. Enterprises across the globe rely on its agile planningand ALM tools, automated test management, static code analysis, and version control solutions as the foundation for successful DevOps atscale. Perforce is trusted by the world’s most innovative brands, including NVIDIA, Pixar, Scania, Ubisoft, and VMware. For more information,please visit www.perforce.comwww.perforce.com Copyright Perforce Software, Inc. All trademarks and registeredtrademarks are the property of their respective owners.

Helix Core offers an unparalleled set of tech- nologies including caching and advanced replication options. With Perforce Federated Architecture, global teams can access and manage files at LAN speeds. SECURITY TFS security is based on Windows authentication, users, and groups. Helix Core has powerful file-level access control.