Notes for DLang maintainers

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 28 09:18:30 PST 2017


On Tue, Feb 28, 2017 at 11:37:45AM -0500, Nick Sabalausky (Abscissa) via Digitalmars-d wrote:
> On 02/28/2017 02:37 AM, Jacob Carlborg wrote:
> > On 2017-02-28 00:42, Nick Sabalausky (Abscissa) wrote:
> > 
> > > Contributors shouldn't have to know as much about git as a
> > > project's maintainers. So these features, if used, are AWESOME.
> > 
> > Squashing and rebasing is part of the basic git, in my opinion.
> > 
> 
> Maybe they should be, but with the basic git interface, or any
> front-end I've seen, they're terribly convoluted. Particularly
> squashing. Well, either that, or the docs are just really, REALLY bad.
[...]

Whut...?  What can be easier than:

	git checkout my_bug_fix
	git rebase -i master
	# Editor pops up, change "pick" to "squash" (or "s" for short)
	# for every commit you wish to squash.
	git push -f origin


> There's no reason either one of those operations couldn't/shouldn't be
> a (*simple*) one-line command, and yet, they just...aren't. But then,
> that's git :/ (And no, rebasing a PR is NOT a one-line git command,
> and no, add-on scripts don't count towards usability.)

"Add-on scripts" are just user-defined functions.  Is it really that bad
to expect programmers to be able to write their own functions as opposed
to expecting the standard lib to spoonfeed them for every little
conceivable task they might possibly need to accomplish?

(Having said that, though, I agree that your standard average *nix shell
interface is really dumb, and being forced to write scripts in that
broken language can be painful.  One of these days I should write a
shell with D-like syntax that doesn't require memorizing meaningless
30-year-old typographical infelicities like 'grep'.)


> Actually, about a week ago, I finally got around to staring a lib/cli
> front-end for git (github support planned, too) to make everything
> sane. Too early for anything public though, a lot still incomplete, a
> lot that may still be in flux.

Curious to see what you come up with.  AIUI, git is already providing
the 'porcelain' interface by default, so we see today is already far
better than what Linus used to use. (I dread to imagine how one might
use git back then!  I'll bet it's like piloting an airplane by coding in
machine language in real-time. :-P)  Let's see if you can come up with
something even better! ;-)   (Though I'll admit it may be easier than it
sounds. But still... the only sane way to use git is to understand its
innards -- y'know, all that DAG stuff -- 'cos it simply doesn't make any
sense otherwise.)


T

-- 
Don't modify spaghetti code unless you can eat the consequences.


More information about the Digitalmars-d mailing list