NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Alternative DVCS to git: hg?



On Wed, 17 Apr 2019 21:31:36 +0000, Johnny Billquist wrote:
...
> And since I'm a curious person as well, it would be interesting to hear 
> what you use and find so useful in git that you don't have in cvs.

Well, practically everything. Not even mentioning the 'distributed' part.

The fact that branches and tags are whole-tree, not per file. (This
is something that some of you don't like, but the restriction that
you can't check out or tag different revisions in a single tree is
the thing that makes git so fast in everyday operation.)

And all of the 'unneeded bloat'. You don't need much of it often,
or even at all, but other people do. git bisect is a godsend when
you need to find a regression. Tools to mail and import commits
as patches. Committing or undoing parts of the changes in a file
(git add -p, git checkout -p).

Removing all the non-version-controlled in the work tree (git clean;
proposing 'svn clean' on that mailing list was an telling experience).

git log -Stext - finding all the commits that contain 'text' in the
changeset. 'git grep' - no hassle with excluding the pristine files
in .svn.

git's 'rename detection' - has surprising positive effects.

Merging, like *correct* merges. cvs requires you to do manual
tracking for that (there is cvsnt which eases that halfways).
And in the timeframe from svn announcing that they support
repeated merges to when they (mostly) did, git grew from
not existing to doing full merges.

Finding the latest tag your current worktree is based on
(git describe, practically impossible in either svn or cvs).

Being able to fix commits before you publish them. Including
fixing up stupid typos in earlier commits.

Despite the grown command syntax, git strives hard to be
*useful* for software developers, and to support them in
a lot of workflows.

Personal history: I was a happy user of cvs(nt), and then
got the job to transfer a project to svn, preserving
history and ideally with some restructuring. Turned
out that the easiest way was to import from cvs into
git, restructure there (filter-branch), and then throw
it into svn (via git-svn). Before I started that, I wanted
to use svn. After that, not so much.

Also, I've only once seen a messed-up repo that I couldn't
fix, but then https://xkcd.com/1597/ esists for a reason.

- Andreas

PS: https://blog.apk.li/2018/02/05/git-like-its-svn.html

-- 
"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800


Home | Main Index | Thread Index | Old Index