When comparing RhodeCode vs TFS, the Slant community recommends TFS for most people. In the question“What are the best alternatives to GitHub for Open Source projects?” TFS is ranked 5th while RhodeCode is ranked 9th. The most important reason people chose TFS is:
TFS contains very few locks and aims to be as suitable for multithreaded systems as possible. It makes use of multiple truly concurrent structures to manage the data, and scales linearly by the number of cores. This is perhaps the most important feature of TFS.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro High security
It's open source and it can be installed on your own machine, which gives high security and isolated environment for the codes. Whole application installation is super easy and independent from the Linux distribution.
Pro Supports 3 major version control systems
RhodeCode supports Mercurial, Git and Subversion in a unified way that allows you to do code-reviews and other stuff on each of them.
Pro Centralized user management
User management is centralized around administrators which can give granular permissions to individual users or user groups/. These permissions can be related to allowing contributions, editing, or simply giving read-only access to users.
Pro Powerful and flexible code review
Code reviews can be done via Pull Requests, or simply commit-by-commit. There are voting rules, random reviewers pools, and smart comment invalidation logic. Pull requests are also versioned so it's easy to review partial changes after the author has updated his code.
When you create a Pull-request you can add set of reviewers. They all have to vote and approve the PR. There's some flexibility on how the voting is accepted, it can be majority wins, or all-agree. Good practice is to add BOT accounts like jenkins, that also will vote on the review, based on for example tests run, and can forbid a merge because of a negative vote. In addition users can leave special type of comments that will also prevent merges, aka TODO notes. Once TODOs are resolved a Pull Request can be merged.
Pro Free and Open Source
RhodeCode CE (Community Edition ) is free and open source. Enterprise Edition (EE) adds premium support, corporate authentication. and tool integrations on top of the RhodeCode CE.
Pro Integrates fully with LDAP/AD and others
RhodeCode has auth plugins, now supported include: LDAP, LDAP with user groups, TOKEN, Container auth, PAM
Pro Online editing with preview
Files can be added, modified and deleted from the web interface, including adding directories, and uploading files.
Pro Best in class permission system
RhodeCode have the most advanced Permission system on the market, allowing things like permission inheritance, permission delegation. All comes in a format that doesn't get hard to manage at scale.
Pro Header authentication plugin allows auth delegation to 3rd party systems
The builtin header auth can delegate authentication to other existing systems for further validation chain.
Pro Concurrent
TFS contains very few locks and aims to be as suitable for multithreaded
systems as possible. It makes use of multiple truly concurrent structures
to manage the data, and scales linearly by the number of cores. This is
perhaps the most important feature of TFS.
Pro Usable in other systems
It was never planned to be Redox-only.
Pro Revision history
TFS stores a revision history of every file without imposing extra
overhead. This means that you can revert any file into an earlier version,
backing up the system automatically and without imposed overhead from
copying.
Pro Data integrity
TFS, like ZFS, stores full checksums of the file (not just metadata), and
on top of that, it is done in the parent block. That means that almost all
data corruption will be detected upon read.
Pro Copy-on-write semantics
Similarly to Btrfs and ZFS, TFS uses CoW semantics, meaning that no cluster
is ever overwritten directly, but instead it is copied and written to a new
cluster.
Pro O(1) recursive copies
Like some other file systems, TFS can do recursive copies in constant time,
but there is an unique addition: TFS doesn't copy even after it is mutated.
How? It maintains segments of the file individually, such that only the
updated segment needs copying.
Pro Guaranteed atomicity
The system will never enter an inconsistent state (unless there is hardware
failure), meaning that unexpected power-off won't ever damage the system.
Pro Improved caching
TFS puts a lot of effort into caching the disk to speed up disk accesses.
It uses machine learning to learn patterns and predict future uses to
reduce the number of cache misses. TFS also compresses the in-memory cache,
reducing the amount of memory needed.
Pro Better file monitoring
CoW is very suitable for high-performance, scalable file monitoring, but
unfortunately only few file systems incorporate that. TFS is one of those.
Pro All memory safe
TFS uses only components written in Rust. As such, memory unsafety is only
possible in code marked unsafe, which is checked extra carefully.
Pro Full coverage testing
TFS aims to be full coverage with respect to testing. This gives relatively
strong guarantees on correctness by instantly revealing large classes of
bugs.
Pro Improved garbage collection
TFS uses Bloom filters for space-efficient and fast garbage collection. TFS
allows the FS garbage collector to run in the background without blocking
the rest of the file system.
Pro SSD friendly
TFS tries to avoid the write limitation in SSD by repositioning dead sectors.
Pro Full-disk compression
TFS is the first file system to incorporate complete full-disk compression
through a scheme we call RACC (random-access cluster compression). This
means that every cluster is compressed only affecting performance slightly.
It is estimated that you get 60-120% more usable space.
Pro Asynchronous
TFS is asynchronous: operations can happen independently; writes and
reads from the disk need not block.
Cons
Con Hard to maintain and upgrade
The documentation is not very clear and it's hard to troubleshoot if there is a failure.
Con Not ready for use
While many components are complete, TFS itself is not ready for use.