Perforce P4 (formerly Helix Core) is the company's version control and peer code review solution. Perforce offers add-on products for code review for free, and Git support products.
N/A
Sourcetree
Score 7.5 out of 10
N/A
Sourcetree, by Atlassian, is a free version control client for Mac and Windows that works with Git and Mercurial repositories. It's distributed version control allows developers to visualize code, review changesets, stash, cherry-pick between branches or commit with a single click.
$0
per month
Pricing
Git
Perforce P4
Sourcetree
Editions & Modules
No answers on this topic
No answers on this topic
No answers on this topic
Offerings
Pricing Offerings
Git
Perforce P4
Sourcetree
Free Trial
No
No
No
Free/Freemium Version
No
No
Yes
Premium Consulting/Integration Services
No
No
No
Entry-level Setup Fee
No setup fee
No setup fee
No setup fee
Additional Details
—
—
—
More Pricing Information
Community Pulse
Git
Perforce P4
Sourcetree
Considered Multiple Products
Git
Verified User
Employee
Chose Git
We migrated from svn to Git and the transition was smooth. We have tools that migrate the complete history along with the authors of the various files and the history from svn to Git. The migration was seamless and easy. We can see complete history of check-in as if we were …
What I know is Perforce and CVS, such other repos tend to store deltas while Git stores the snapshots of the stuff as their commit ID's. This is what makes Git much much faster when you are developing on huge repos, since the checkouts are just instantaneous.
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 …
Git is great, I love Git. But it's not great for dealing with binary assets, even when using Git LFS. Locking is not as simple as on perforce. Git presents some problems on using for non-tech people it can get overwhelming and tech people have to come by and help.
Perforce has more features than SVN. However even the simpler tasks in SVN require a degree more technical aptitude with Perforce. Git offers most of the same features, however most of these are only really supported via the command-line in Git, where as most tasks can be …
GIT is good to be used for faster and high availability operations during code release cycle. Git provides a complete replica of the repository on the developer's local system which is why every developer will have complete repository available for quick access on his system and they can merge the specific branches that they have worked on back to the centralized repository. The limitations with GIT are seen when checking in large files.
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.
Sourcetree is a great tool for any Git user. Whether you're well versed using Git commands in the terminal or a newbie, this tool wonderfully supplements your workflow. A quick glance at the UI and you know where your project stands. I find it most helpful when I need to determine what changed in a particular file in past commits. Having a visual graph of branches helps me to understand the big picture. Even though I'm comfortable operating Git most often in the command line, I always have Sourcetree open to check my work and see where my colleagues are.
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.
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.
As an Atlassian product i'd have expected smart integrations/features with their other developer products like Jira or BitBucket, but this is not the case. It can sometimes pick up on Jira ticket IDs and show them as a label or as a unique piece of work to follow. But there's no actual integration to Jira and is just simple pattern matching.
For the majority of developers it's just overwhelming and overkill. There's a plethora of metadata, supporting information, and many many actions/tools to help perform complex git actions. This is great if you're managing complex repos or need to perform an audit, but to the average user it's just not a user friendly experience due to how bloated it can feel.
Very simple git actions such as 'git pull' have been massively overcomplicated. When pressing the pull button you get a popup with multiple dropdowns, checkboxes and settings on how you want to pull and the followup actions to run after the pull, both on the remote repo and local repo. It's just unnecessary and adding complexity where it's not needed.
Git has met all standards for a source control tool and even exceeded those standards. Git is so integrated with our work that I can't imagine a day without it.
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!
It is one of the best Git GUIs out there, I have worked with multiple GUIs and this provides more insights and features compared to others, the Tree view and History helps keeping track and reverting commits, With help of different UI elements it helps the new developers to learn git using standards as well.
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 am not sure what the official Git support channels are like as I have never needed to use any official support. Because Git is so popular among all developers now, it is pretty easy to find the answer to almost any Git question with a quick Google search. I've never had trouble finding what I'm looking for.
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.
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.
I've used both Apache Subversion & Git over the years and have maintained my allegiance to Git. Git is not objectively better than Subversion. It's different. The key difference is that it is decentralized. With Subversion, you have a problem here: The SVN Repository may be in a location you can't reach (behind a VPN, intranet - etc), you cannot commit. If you want to make a copy of your code, you have to literally copy/paste it. With Git, you do not have this problem. Your local copy is a repository, and you can commit to it and get all benefits of source control. When you regain connectivity to the main repository, you can commit against it. Another thing for consideration is that Git tracks content rather than files. Branches are lightweight and merging is easy, and I mean really easy. It's distributed, basically every repository is a branch. It's much easier to develop concurrently and collaboratively than with Subversion, in my opinion. It also makes offline development possible. It doesn't impose any workflow, as seen on the above linked website, there are many workflows possible with Git. A Subversion-style workflow is easily mimicked.
Git is great, I love Git. But it's not great for dealing with binary assets, even when using Git LFS. Locking is not as simple as on perforce. Git presents some problems on using for non-tech people it can get overwhelming and tech people have to come by and help.
Sourcetree allows seamless integration across all widely used GIT services and is cross-platform compatible. This client is capable of managing workflows of any difficulty and its cross-compatibility eliminates the need to use different or multiple GIT clients altogether.
Git has saved our organization countless hours having to manually trace code to a breaking change or manage conflicting changes. It has no equal when it comes to scalability or manageability.
Git has allowed our engineering team to build code reviews into its workflow by preventing a developer from approving or merging in their own code; instead, all proposed changes are reviewed by another engineer to assess the impact of the code and whether or not it should be merged in first. This greatly reduces the likelihood of breaking changes getting into production.
Git has at times created some confusion among developers about what to do if they accidentally commit a change they decide later they want to roll back. There are multiple ways to address this problem and the best available option may not be obvious in all cases.