Does distributed source control, such as Mercurial, use for a single command?

I am currently using Subversion for my uniprocessor company. Should I upgrade to Hg (Mercurial)? Or can the benefits be realized only with the multiperson command?

+4
source share
7 answers

In my experience, Git and Mercurial are currently more suitable for an open source project or a small team or one person team. Therefore, in your case, I would recommend them. Subversion is more suitable for large organizations that need a centralized repo and finer access control.

+5
source

I think it's worth it, even for one person - but I'm kind of biased since I'm a Mercurial developer :-) Even if you never join branches and don't merge, Mercurial is the best Subversion for basic operations like commit and tag:

  • hg commit : very fast, so you'll make finer-grained commits than with Subversion. The end is also really atomic in Mercurial, since we don't have mixed versions . I consider this an advantage, but people may clearly disagree here.
  • hg tag : indicates a specific point in the history, not a copy in /tags . The problem with Subversion tags is that the copy may or may not be identical to how /trunk looked at a particular revision. Subversion really has no built-in tags, and emulating them can ruin the ways you cannot do in Mercurial.

Because Mercurial is so fast, people use it differently than using Subversion. A good example of this is hg bisect . You use it to find the first revision where a specific error is present. It works in binary search, where you shorten the search intervals at each step. You can also do this with Subversion, but there is no built-in support for it, and it will be slower because you need to connect to the server over the network.

Recording extension is another really nice feature of Mercurial. It allows you to commit only some changes within the file. This is nice because it allows you to make small and autonomous commits.

+9
source

Almost everything is better than using Subversion IMO. I like Mercurial (hg) and Darcs, but my favorite so far is Fossil for personal projects (as well as for sharing). With one binary file and one file in the repository, it’s easy to track my work, it’s easy to maintain, it’s easy to move, etc. In addition, the built-in wiki allows me to brainstorm along with my sources, the ability to check my documentation (generated or otherwise) and access it through the built-in server, puts all my work in one place, and the built-in error tracker allows me to keep a history work of what I worked on, or should work in the future.

Oh, and Windows is not so much second-class citizens with Fossil, as well as with a few other DSCMs that I can name. (I'm looking at you here, Git.)

+4
source

I highly recommend you read hginit . This is a great tutorial for Hg, and there is a chance that after reading it you will be sold :-)

+3
source

Yes it is. Despite the "distributed" designation of mercury, I would say that it is especially good for a lone developer. You get similar features for SVN (plus many others), but overall they work better and faster. Setting up, backing up, and maintaining your storage is much easier. It was designed to allow many single developers to work together, so many features are useful before you need to work with someone else.

My favorite benefits are simple backup and copying and the ability to clone storage for an instant sandbox environment. I am a bit scattered, so it's nice to create a new environment, try out the idea and decide if I want to integrate it into the main code base. I can do this without violating the original task I was working on.

When I first switched to hg, it was a constant feeling "oh, it works much better than svn". At the moment, I would not consider SVN for myself or with a small team and would only consider Mercurial, Git, or similar DVCS. (I prefer mercury though)

+3
source

One of the advantages is that you can work offline, for example, when you encode a client without connecting to a version control server. how often do you do this?

otherwise, I would just be subversive. if you need them, find out how to properly use release branches and functions. there is no reason to switch to hg for this, even if hginit tells you how bad subversion is;)

+1
source

I would recommend using version control for solo development. It doesn't matter what you use, SVN, Git, Hg, etc. The reason is that it allows you to roll back in the event of a regressive error, loss of code, corruption, and, of course, branching and merging (you should always develop in the branch and only merge with the trunk when fully checking for a new function / error), etc. You cannot use all these things (and more) without a version control system.

-2
source

Source: https://habr.com/ru/post/1304134/


All Articles