groff
[Top][All Lists]
Advanced

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

Re: lots of fatal build system bugs on OpenBSD


From: Ingo Schwarze
Subject: Re: lots of fatal build system bugs on OpenBSD
Date: Tue, 22 Mar 2022 15:02:32 +0100

Hi Doug,

Douglas McIlroy wrote on Tue, Mar 22, 2022 at 08:58:19AM -0400:

> Tangential comment:
> I have always recoiled from git.

I agree to some extent.  Git does get a number of things right, but
there are also many aspects of its user interface and design that make
it harder to use than necessary.  It's hard to call those issues fatal
though because git is so configurable that you can configure away almost
anything you dislike - *if* you figure out what you need to configure
away and how that works, which can occasionally take quite some time.
It is certainly suffering from some overengineering and even more from
rampant featuritis and an overall design that is in some aspects more
labyrinthine than cleanly layered and cleanly modularized...

> The appearance of "diff --git" in Ingo's  post reinforced my
> aversion..

Yes, a few years ago diffs prepared with git(1) and submitted
to OpenBSD caused so many subtle problems that a general rule
was made that creating diffs with git(1) is strictly forbidden
and most developers rejected diffs created with git(1) without
even looking at them.

But it's an uphill battle.  The popularity of git(1) keeps constantly
growing and it has become so popular even with a sizeable fraction of
OpenBSD developers that banning it outright is no longer tenable.

Besides, it is the SCM officially chosen for the GNU troff project
years ago, and that's why i am using it to send diffs to this list.

Arguably, in spite of all its bloat, it might still be on par,
or likely even batter than, most other distributed SCMs...

> --git is not mentioned in any
> documentation (man or texinfo) I could get my hands on.

In fact, it doesn't even work:

  schwarze@isnote $ gdiff --version
  diff (GNU diffutils) 3.8
  Copyright (C) 2021 Free Software Foundation, Inc.
  schwarze@isnote $ gdiff --git /dev/null /dev/null
  gdiff: unknown option -- git
  gdiff: Try 'gdiff --help' for more information.

It is documented in the git-diff(1) manual page below "GENERATING PATCH
TEXT WITH -P".  The text is vague though and doesn't really explain what
the "--git" option is supposed to mean.  Maybe just "This diff was
created with git(1) and may contain some syntax that plain patch(1)
does not fully understand."

> Gnu diff's 100-line help message is depressing enough even without
> --git. Where did --git come from and what special pleading justifies
> it?

To be fair, the diff(1) help message is depressing even in a system
like OpenBSD:

  schwarze@isnote $ diff -y
  diff: unknown option -- y
  usage: diff [-abdipTtw] [-c | -e | -f | -n | -q | -u] [-I pattern]
              [-L label] file1 file2
         diff [-abdipTtw] [-I pattern] [-L label] -C number file1 file2
         diff [-abditw] [-I pattern] -D string file1 file2
         diff [-abdipTtw] [-I pattern] [-L label] -U number file1 file2
         diff [-abdiNPprsTtw] [-c | -e | -f | -n | -q | -u] [-I pattern]
              [-L label] [-S name] [-X file] [-x pattern] dir1 dir2

or even in something ancient and bare-bony like Solaris 9:

  schwarze@unstable9s :~ > diff -y          
  diff: illegal option -- y
  usage: diff [-bitw] [-c | -e | -f | -h | -n | -u] file1 file2
         diff [-bitw] [-C number | -U number] file1 file2
         diff [-bitw] [-D string] file1 file2
         diff [-bitw] [-c | -e | -f | -h | -n | -u] [-l] [-r] [-s]
              [-S name] directory1 directory2

Then again, extending this *a bit* maybe wasn't a bad idea;
for example, unified diffs *are* useful:

  schwarze@isnote $ man -hM /co/v7/usr/man diff
  diff [ -efbh ] file1 file2

Yours,
  Ingo

P.S.
Oops, getting into an SCM war is probably a bad idea, sorry for that.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]