Live data from Hacker News

Why SQLite does not use Git (2018)

sqlite.org

391–400 of 454 posts

Re: Why SQLite does not use Git (2018)

#391

Earlier quoted context omitted.

git gets bad rep because its cli is a terrible mess if apple designed git's cli it'd be bilion times better from ux perspective while only 10% less powerful I guess

> if apple designed git's cli it'd be bilion times better from ux perspective while only 10% less powerful I guess Why then does every dev I am aware of who use Apple start by installing Homebrew? Also, you are talking about the same Apple that has a menu system that closes the menu if you click at a submenu? I mean, it breaks at least two reasonable assumptions: - clicking on a branch node would work on the branch l…

> Or the same Apple UX where there is a different shortcut depending on whether I want to switch between windows of the same app or windows from different apps?

That one is on purpose, and I vastly prefer it to (what I presume you are implying) the "alt-tab across every window in the universe". I'm delighted that even Ubuntu now honors the alt-backtick versus alt-tab distinction, although I'd bet that is configurable, which is likely what you're asking for, too

My experience is that the Windows windowing system supports keyboard navigation through the UI elements much, much more than Apple (and often Ubuntu, too). I do prefer that, but not enough to use a vastly inferior OS that just happens to have strong keyboard UI navigation support

Re: Why SQLite does not use Git (2018)

#392
post #378

Earlier quoted context omitted.

Even in that case, you can use "rm -d" instead of "rmdir". % mkdir herewulf % rm herewulf rm: herewulf: is a directory % rm -d herewulf % % mkdir herewulf % touch herewulf/nonempty.txt % % rm herewulf/ rm: herewulf/: is a directory % rm -d herewulf/ rm: herewulf/: Directory not empty % rm herewulf/nonempty.txt % rm -d herewulf/ The only distinct feature of rmdir is that it won't remove things that aren't files: % tou…

> Is 'cc' a preprocessor? A compiler? A linker? Yes! It's none of them; it's a driver which calls the preprocessor (cpp), the real compiler, and the linker (ld).

The man pages call it a compiler:

  % man cc
    ...
  DESCRIPTION
       clang is a C, C++, and Objective-C compiler which encompasses
       preprocessing, parsing, optimization, code generation, assembly, and
       linking.

  % man gcc
  ...
  NAME
       gcc - GNU project C and C++ compiler
  ...

Re: Why SQLite does not use Git (2018)

#393
post #331

I'm glad Fossil works for them, but this line is bothered me: > In contrast, Fossil is a single standalone binary which is installed by putting it on $PATH. That one binary contains all the functionality of core Git and also GitHub and/or GitLab. It manages a community server with wiki, bug tracking, and forums, provides packaged downloads for consumers, login managements, and so forth, with no extra software require…

> I do prefer the "do one thing and do it well" approach. I prefer the "do what you do well" approach. If it's one thing, or many things, doesn't matter, as long as it's both efficient and correct. I mean, if Fossil fails at some of these things, then we can criticise it for its failings, but it appears it actually does the things correctly. The comparison with GitLab is quite enlightening. Fossil is a few MB, and Gi…

[deleted]

Re: Why SQLite does not use Git (2018)

#394

Earlier quoted context omitted.

> if apple designed git's cli it'd be bilion times better from ux perspective while only 10% less powerful I guess Why then does every dev I am aware of who use Apple start by installing Homebrew? Also, you are talking about the same Apple that has a menu system that closes the menu if you click at a submenu? I mean, it breaks at least two reasonable assumptions: - clicking on a branch node would work on the branch l…

> Or the same Apple UX where there is a different shortcut depending on whether I want to switch between windows of the same app or windows from different apps? That one is on purpose, and I vastly prefer it to (what I presume you are implying) the "alt-tab across every window in the universe". I'm delighted that even Ubuntu now honors the alt-backtick versus alt-tab distinction, although I'd bet that is configurable…

> My experience is that the Windows windowing system supports keyboard navigation through the UI elements much, much more than Apple (and often Ubuntu, too).

That's due to historical reasons. While both X11 and Apple could assume the presence of a mouse, it was an optional add-on for a PC back in the MS-DOS days; the original 16-bit Windows had to be fully usable even in the absence of a mouse (the only thing which came with Windows and didn't work without a mouse was the image editor Paintbrush). A lot of that keyboard-oriented legacy still survives in the Windows API.

Re: Why SQLite does not use Git (2018)

#395
post #210

Made a list of all the revision control tools I've used over the decades, the year they were created, and the year I last used them: sccs 1973 2000 rcs 1982 2000 cvs 1990 2004 clearcase 1992 2004 perforce 1995 2011 subversion 2000 2015 mercurial 2005 2015 git 2005 present So, at least for me, they last around 15 years or so. But often time when I tell juinors that when they're my age, git will be distant a strange me…

In fairness, the rate of change of any type of tool slows down over time as the problem domain becomes well understood. It's like the Joel on Software article (which annoyingly I can't find at the moment) about how software is always pretty much done by about version 4. His example was office software, especially Excel, and sure enough if you loaded Excel 4 today you'd see it does fundamentally all the main things. I…

Excel has recently introduced 4-5 VERY big changes:

* javascript (arguably 'nobody' knows how to use it though, looking at the scarce resources)

* Lambdas

* Sharepoint integration, which is a type of shared notebook - and arguably this has ruined excel usability completely, since linking one file to another is basically unusable, what means were are back to the stone age, where people fucking copy paste things between files (omg)

* PowerQuery (this is not new, but seems to be the way to "fix" the problem that sharepoint files that can be edited by multiple uses are basically unusable junk)

* Updated PivotTable model that allows some basic connections between tables (this all could have been done in multiple other ways before)

For me the problem is that with the "multiplayer Excel" that seems to be promoted by Microsoft (shared workbooks on sharepoint, where multiple users can edit them at the same time), Excel lost the main functionality for actual power users, who take data from multiple source files and then consolidate them to one final report. Of course this is still "possible", but not as easy as it was before with shared drives.

I see like multiple major regressions at Microsoft that harm "average" office worker productivity now:

1) Excel file linkages broken (as described above)

2) Outlook calendar app on android -> lack of ability to have a custom notification sound (e.g. a 30 second sound), so you can skip fucking reminders, because one "ping" is easy to miss. Why cant I have a fucking calendar reminder that actually reminds me about stuff with sounds?

3) The "new" windows taskbar that combines instances of same program into one button. Do they assume that most users treat windows like a toy? Nearly every office worker has like 3-5 excel files open, 3-5 emails, maybe some PDFs - and has to switch between them. Due to the fact that taskbar is combined by default, incredible amounts od productivity are lost

4) Hibernation is hidden. So you are supposed to turn off your computer every day, then come to the office, wait for 10 minutes for it to turn on (all the antivirus, constant updates, VPN), then turn your programs back, then turn your files / emails back. So you waste another minutes to setup the computer back to work. Compare it with hibernating, where you get your work back exactly the way you left it the day before. (and yes I am aware that updates are important and so on, since they defend against zero-days, but a multi-billion dollar company has the resources to figure out how to do them without productivity loss)

5) Bonus points: your computer can wake up at 3 am to install updates and also wake you up (maybe they changed it recently, or maybe admins control this by policy)

6) Random shutdowns, because some update is so incredibly important that at least once per quarter they have to force you to turn off your computer. Bonus points are when a window pop-up "restart now" and "ok" is the selected default so you accidentally press it while typing (and yes, I do restart my computer at least once per week to get updates)

However Microsoft is no longer interested in doing any productivity studies. They dont care. Now it seems their main goal is to offshore development to low cost countries. So we get software that looks as if it was done by lowest bidder.

Re: Why SQLite does not use Git (2018)

#396

Earlier quoted context omitted.

git gets bad rep because its cli is a terrible mess if apple designed git's cli it'd be bilion times better from ux perspective while only 10% less powerful I guess

> if apple designed git's cli it'd be bilion times better from ux perspective while only 10% less powerful I guess Why then does every dev I am aware of who use Apple start by installing Homebrew? Also, you are talking about the same Apple that has a menu system that closes the menu if you click at a submenu? I mean, it breaks at least two reasonable assumptions: - clicking on a branch node would work on the branch l…

> menu system that closes the menu if you click at a submenu?

Mine doesn't do this, unless I'm misunderstanding what you mean by submenu (I'm thinking of the thing that has a > at the end. Also why would you want to click it when it opens automatically on hover?)

> if I opened a dialog

So close it, or look up the thing before you open a modal, a rather common concept across many platforms.

> there is a different shortcut

Granularity is bad... why exactly? But a tip, get HyperSwitch (this is the real reason for writing this comment)

The last one I don't even get how you mean the OS designer would get involved with how exactly applications are made. What would the alternative mechanism be, forcing (how?) them to put everything in menus? What about right-click menus, should they be banned? How is any of this unique to Apple?

I'm not saying they are infallible, but these are some weird ass examples.

Re: Why SQLite does not use Git (2018)

#397
post #338

Earlier quoted context omitted.

Yes, and the original commenter's point is that git does not support this well, at the data model layer even. Because commits have exactly one parent commit, which is immutable, and because rebasing creates a new commit, rebasing an entire subtree with N nodes under it requires N operations, rather than just 1. Personally I think it's a pretty small price to pay for the advantage of the single-immutable-parent model,…

> Because commits have exactly one parent commit This is not true, merge commits are commits with > 1 parents (octopus merges are merely commits with > 2 parents) But indeed since the parents commits are part of the computation of a commit's sha then by design changing the parents means changing the commit's sha, which is a very nice property to have. That said, the model has what we said as a design consequence, but…

I can't edit anymore, but hopefully people can read my comment with s/commits have exactly one parent/non-merge commits have exactly one parent/ :)

But this did make me realize that the problem with this workflow isn't the "one parent" part at all, it's really just the "immutable parent" part.

But to the main thrust of your comment: Yes, this "porcelain" is what I meant by my surprise that there aren't better tools for this. I think the reason there aren't is that it is really hard to do this well with porcelain, because of requiring a bundle of modifications to the commit tree, where there is no good way to make the whole bundle atomic. So it works fine (and I have a script for it) in the happy path, but it becomes a bit of a nightmare if something doesn't apply quite right.

And that's what I mean by this being unsupported at the data model level, that there is no way to do atomic operations on subtrees as a whole.

Re: Why SQLite does not use Git (2018)

#398
post #210

Made a list of all the revision control tools I've used over the decades, the year they were created, and the year I last used them: sccs 1973 2000 rcs 1982 2000 cvs 1990 2004 clearcase 1992 2004 perforce 1995 2011 subversion 2000 2015 mercurial 2005 2015 git 2005 present So, at least for me, they last around 15 years or so. But often time when I tell juinors that when they're my age, git will be distant a strange me…

Subversion is basically CVS done right. The problem is that CVS was a dead end that didn't scale to a distributed development model. Git goes back to the local RCS model and adds atomic commits to that model. That's how it climbed out of the local optimum that was Subversion. There were a couple controversial choices that Git made, for example not tracking renames and not having linear revision numbers, but they turn…

git-lfs is horrible, at least it was horrible the last few times I tried it out.

More precisely git-lfs is horrible the way it works with Github and its insanely low git-lfs storage and transfer limit.

What ends up happening inevitably is that you add some file to git-lfs that you did not mean to.

Only half sane/insane way to fix this is to just say screw it and start a fresh git repository, hopefully with files that you salvaged before the whole git-lfs mess.

I am quoting Github documentation "To remove Git LFS objects from a repository, delete and recreate the repository."

https://docs.github.com/en/repositories/working-with-files/m...

You say that is user error. Of course, users will make errors.

However your version control tools should get out of your way not make your life hell.

EDIT: I felt fine using Subversion combine with Redmine for issues in mid 2000s

Why did we need to go to git for everything when we still end up remoting to/from centralized hubs?

Re: Why SQLite does not use Git (2018)

#399
post #333

Earlier quoted context omitted.

Yes, and the original commenter's point is that git does not support this well, at the data model layer even. Because commits have exactly one parent commit, which is immutable, and because rebasing creates a new commit, rebasing an entire subtree with N nodes under it requires N operations, rather than just 1. Personally I think it's a pretty small price to pay for the advantage of the single-immutable-parent model,…

You're right that the tooling doesn't support it well but commits have more than one parent all the time, they're just called merge commits. They can actually have as many parent branches as you please but conflicts get harder to deal with the more parents you have.[1] [1]: https://www.freblogg.com/git-octopus-merge

I realized the multiple parents thing was a total red herring. It really is just the immutability.

What I was thinking of was having multiple parents over time rather than at the same time like a merge commit. But that would just be one (not immutable) parent but with a history of what that parent was over time, not "multiple parents".

Re: Why SQLite does not use Git (2018)

#400

Earlier quoted context omitted.

Seems like you are just complaining that something useful to a great many people isn't perfect for you particular use case. Use something thats's a better fit for your use case. There's nothing wrong with a hammer, you just want a screwdriver.

Except it seems the world keeps insisting that I use the hammer to bash on the screws.

Sure, if someone is forcing you to use a tool unfit for the purpose, that's bound to frustrate you.

That's not really a problem with the tool, though. That's a social problem.

Post reply on HN