On Thu, Feb 25, 2016 at 5:54 AM, David Quintana (gigaherz)
<gigaherz(a)gmail.com> wrote:
I think the real goal with moving to a platform such
as github is reducing
the entry barriers for new contributors. As it has been mentioned already,
almost all projects who moved from SVN with "send patches" contribution
system, to Git/Hg with Pull Requests have got non-negligible growth in
contributions.
The reason I'd agree with using github as a target, is simply their svn
bridge that allows developers who want to avoid git to still commit to a
fork with SVN and be able to send pull requests afterward.
I have no experience with Hg beyond cloning one or two repositories that I
needed code from (years ago), so I don't know how they compare feature-wise,
or what the best GUI interfaces are for it. I do however know that without
tortoiseGit, I'd probably still be pushing to remain on SVN.
There are several excellent graphical interfaces for Mercurial. The
most popular one is TortoiseHg[0], which provide desktop shell
integration like TortoiseSVN and TortoiseGit do. For those who don't
care for shell integration, but want a good graphical workflow,
there's Atlassian SourceTree[1] (which also works for Git).
Smart(Git/Hg)[2] is a lesser-known alternative to SourceTree.
On the IDE integration front, Mercurial support is integrated into
CLion[3], NetBeans[4], and two actively maintained Visual Studio
source control extensions[5][6].
Other frontends and integration extensions are listed on the Mercurial site[7].
And for anyone reading this who knows SVN but
hasn't really learned to use
DVCSs yet, there is one key concept that makes all the difference for
someone used to SVN to understand how git works: the fact that the
operations you normally do with SVN are THE SAME on git, they just work on
the local repository clone, instead of the server:
Svn checkout -> git checkout from local clone
Svn commit -> git commit to local clone
Svn diff -> git diff from local clone
...
Git simply has a separate set of concepts for interacting with remotes:
Clone, Pull, Fetch, Rebase, Push, Force-push, Squash, etc. The whole thing
becomes much less confusing if you get that idea.
And this is all true for Mercurial, as well. Virtually all DVCSes work
in this manner (though the syntax and semantics might slightly
differ).
[0]:
http://tortoisehg.bitbucket.org/
[1]:
https://www.sourcetreeapp.com/
[2]:
http://www.syntevo.com/smartgit/
[3]:
https://www.jetbrains.com/clion/help/using-mercurial-integration.html
[4]:
http://wiki.netbeans.org/MercurialVersionControl
[5]:
http://www.newsupaplex.pp.ru/hgscc_news_eng.html
[6]:
http://visualhg.codeplex.com/
[7]:
https://www.mercurial-scm.org/wiki/OtherTools
--
真実はいつも一つ!/ Always, there's only one truth!