Multinational company Perforce, headquartered in Alameda, California offers a version control and peer code review solution. Perforce version control is built around Helix Core with add-on products for code review (Helix Swarm) for free, and add Git support products (Helix4Git and Helix TeamHub). The original Perforce SCM solution was expanded via the Surround SCM, a software configuration management application which was developed by Seapine Software and now owned by Perforce since that…
N/A
SonarQube
Score 8.6 out of 10
N/A
SonarQube, a core component of the Sonar solution, is an open source, self-managed tool that systematically helps developers and organizations deliver Clean Code.
While Perforce Helix is the best version control software out there, it can also be used to track your documentation, training videos and materials, and requirements. If you have strict compliance requirements, it can be used to ensure that those requirements are satisfied. Perforce Helix is incredibly flexible and can meet the needs of individual users as well as companies with thousands of users.
SonarQube is excellent if you start using it at the beginning when developing a new system, in this situation you will be able to fix things before they become spread and expensive to correct. It’s a bit less suitable to use on existing code with bad design as it’s usually too expensive to fix everything and only allows you to ensure the situation doesn’t get worse.
The branching mechanisms in Perforce allow for an enormous codebase to be duplicated into release versions weekly with little impact upon things such as the speed of queries against the version control.
Action triggers permit such things as automated builds of software versions, dynamic messaging when issues are identified either within or prior to a build process, and much more.
Locking provides the ability to prevent modifications of stable, tested versions in order to ensure validity when they are released.
Detecting bugs and vulnerabilities: SonarQube can identify a wide range of bugs and vulnerabilities in code, such as null pointer exceptions, SQL injection, and cross-site scripting (XSS) attacks. It uses static analysis to analyze the code and identify potential issues, and it can also integrate with dynamic analysis tools to provide even more detailed analysis.
Measuring code quality: SonarQube can measure a wide range of code quality metrics, such as cyclomatic complexity, duplicated code, and code coverage. This can help teams understand the quality of their code and identify areas that need improvement.
Providing actionable insights: SonarQube provides detailed information about issues in the code, including the file and line number where the issue occurs and the severity of the issue. This makes it easy for developers to understand and address issues in the code.
Integrating with other tools: SonarQube can be integrated with a wide range of development tools and programming languages, such as Git, Maven, and Java. This allows teams to use SonarQube in their existing development workflow and take advantage of its powerful code analysis capabilities.
Managing technical debt: SonarQube provides metrics and insights on the technical debt on the codebase, enabling teams to better prioritize issues to improve the quality of the code.
Compliance with coding standards: SonarQube can check the code against industry standards like OWASP, CWE and more, making sure the code is compliant with security and coding standards.
Perforce tends to feel backwards in how it approaches certain tasks, like branching and integrating - even once you figure out how it wants you to perform these tasks, you will likely forget when it comes around to the next time you need to do them again.
Perforce has a higher price tag, comparatively.
Perforce make some tasks very easy, and yet other tasks very difficult - it doesn't always seem to have found its target user's proficiency.
Importing a new custom quality profile on SonarQube is a bit tricky, it can be made easier
Every second time when we want to rerun the server, we have to restart the whole system, otherwise, the server stops and closes automatically
When we generate a new report a second time and try to access the report, it shows details of the old report only and takes a lot of time to get updated with the details of the new and fresh report generated
We are fully committed to our use of Perforce. It works well within our organization and our desire to share our code base with our customers. Their support staff are responsive, inquisitive, and eager to improve their software. I feel like we have a direct line to their design/feature team as they often solicit our feedback.
With Perforce Helix, you can use it via the command line, via P4V, or any of the other APIs included with the product. It is extremely easy for new users to get up and running. Users of Perforce Helix only have to pull in the files of interest to them. Also, Perforce is very easy to script and integrate into your CI/CD pipeline. Streams allows you to have pinpoint control of your workflow, and P4Search is the absolute best--I wish Perforce (the company) would talk more about this. It is absolutely fabulous!
In our large environment, Perforce is rarely "down". We have regular maintenance windows and from time to time Perforce can feel a little slow, but its always available. Tech support has always worked with our engineers and IT department to make sure that any real performance or stability issues are addressed quickly.
I had two representatives from Perforce contact me after downloading it but never responded when I had questions. I also had a difficult time finding good training material for getting started. There is a lot of available support material when running into issues, though, because of how many large companies use it.
We we easily able to integrate the SonarQube steps into our TFS process via the Microsoft Marektplace, we didn't have the need to call SonarQube support. We've used their online documentation and community forum if we ran into any issues.
This rating is related to setting up an environment from an existing Perforce repository. Initial setup of Perforce as the repository for the company was done by a separate team long prior to my inception.
Perforce has a better built native visual client that is much simpler to use than Git's. It has a lot of optimizations in the workflow that can execute common patterns during a usual workday. Perforce also has an easier to understand method of presenting merge conflicts and does a better overall job of handling merges.
SonarQube is an open-source. It's a scalable product. The costs for this application, for the kind of job it does, are pretty descent. Pipeline scan is more secured in SonarQube. Its a very good tool and its support multiple languages. Its main core competency is of static code analysis and that is why SonarQube exists and it does it exceedingly well. The quality of scan on code convention, best practices, coding standards, unit test coverage etc makes them one of the best competent tool in the market