I think git gets a bad rep because no one can agree how to use it. GitHub PRs vs pushing a branch, rebase vs merge are just two examples of tools that do identical things in fundamentally different ways. And the problem is none of them are wrong. Rebasing minor commits simplifies unnecessary complexity in your history. Merging preserves what actually happened which can provide insight into why changes occurred. Of co…
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
Why SQLite does not use Git (2018)
291–300 of 454 posts
Re: Why SQLite does not use Git (2018)
#292I think git gets a bad rep because no one can agree how to use it. GitHub PRs vs pushing a branch, rebase vs merge are just two examples of tools that do identical things in fundamentally different ways. And the problem is none of them are wrong. Rebasing minor commits simplifies unnecessary complexity in your history. Merging preserves what actually happened which can provide insight into why changes occurred. Of co…
Re: Why SQLite does not use Git (2018)
#293I think git gets a bad rep because no one can agree how to use it. GitHub PRs vs pushing a branch, rebase vs merge are just two examples of tools that do identical things in fundamentally different ways. And the problem is none of them are wrong. Rebasing minor commits simplifies unnecessary complexity in your history. Merging preserves what actually happened which can provide insight into why changes occurred. Of co…
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
Re: Why SQLite does not use Git (2018)
#294I think git gets a bad rep because no one can agree how to use it. GitHub PRs vs pushing a branch, rebase vs merge are just two examples of tools that do identical things in fundamentally different ways. And the problem is none of them are wrong. Rebasing minor commits simplifies unnecessary complexity in your history. Merging preserves what actually happened which can provide insight into why changes occurred. Of co…
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
As bad as git is, and god knows it’s bad, launchctl is in an other galaxy of unusability.
Re: Why SQLite does not use Git (2018)
#295Made 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…
Point could be made people don't really use git anymore - they use github as the primary interface. Branching, merging, review, etc.
Re: Why SQLite does not use Git (2018)
#296Earlier quoted context omitted.
Generally git‘s support for a stacked PR workflow is poor [0], but imho that is the future of team collab (git is great for very asynchronously built projects, like the linux kernel). I also wonder, how much better git could be if it was based on DAGs not trees (I may want to use a changeset that is still developing in more than one branch without maintaining copies of it) and corollarily I‘d like to rebase subtrees…
> I also wonder, how much better git could be if it was based on DAGs not trees [...] Git generally supports DAGs. > [...] corollarily I‘d like to rebase subtrees (sub-DAGs) instead of single branches. Rebasing is something you do to the commit graph, which is a DAG. Branches only come in incidentally. Branches in git are really just mutable pointer to immutable commits. What you are describing is probably some usefu…
IOW
git rebase --onto shaX shaY shaZ
ends at shaZ, git walks backwards from it until the commit whose parent is shaY to produce the list of commits to cherry-pick onto shaXSo presumably this would be useful:
git rebase --onto shaX shaY [shaZ1 shaZ2 shaZ3 ...]
with shaZn being optional and consisting of all leaves down from shaYThis is achievable with git but it's not just doing n rebases like so:
git rebase --onto shaX shaY shaZ1
git rebase --onto shaX shaY shaZ2
git rebase --onto shaX shaY shaZ3
...
because each rebase would produce different commits for parts that are common to shaZ n1 and shaZn2 ancestry, so one would have to first find all the branching points and do partial rebases onto the rebased parent commits in order.It definitely can be done (manually or automatically) but is not as trivial as one might think.
Re: Why SQLite does not use Git (2018)
#297Earlier quoted context omitted.
> I also wonder, how much better git could be if it was based on DAGs not trees [...] Git generally supports DAGs. > [...] corollarily I‘d like to rebase subtrees (sub-DAGs) instead of single branches. Rebasing is something you do to the commit graph, which is a DAG. Branches only come in incidentally. Branches in git are really just mutable pointer to immutable commits. What you are describing is probably some usefu…
Not only it's useful, it's as easy to do in git as typing `git rebase -r`. Recently it even gained support for rewriting branch pointers in the process.
Almost always means: it's better eg when communicating with other humans, whether that's on a forum like HN or in code or scripts. Long options are easier for humans to understand and to 'google'. They also provide some redundancy against typos.
The sole exception, where short options can be useful, is when you are actually using a command line interactively. Use short options to your heart's content there.
Re: Why SQLite does not use Git (2018)
#298Earlier quoted context omitted.
I think mostly it will depend on what we will call the replacement to git. We might end up calling it 'git', too. Less weirdly: ethernet has been replaced a few times already, but they always just end up branding the replacement as a new version of 'ethernet'.
Many of those variations of ethernet remain compatible, 10g switches can often negotiate down to 10/100.
(In an extreme case, git can talk svn via git-svn. In a weird alternative history, you could imagine git being treated as a new version of svn; but apart from the names, nothing much else would change compared to our universe.)
Re: Why SQLite does not use Git (2018)
#299I agree that it may be complex if you don't take the time to understand the fundamentals.
I made the mistake to jump right at it on a very large project thinking my experience with other non distributed systems would be enough.
So I had to take a step back and dedicate some time to read documentation including visual examples of the most common situations I encounter.
Merging and resolving conflicts are those of two situations where I struggled the most particularly when working with sub branches in large projects (5+ developers) with a very fast pace of development.
Once you understand the fundamentals (you can confidently draw on paper the current and future state of the tree after your changes) Git is not difficult IMO and 99% of the time you can work with a dozen of commands if you have discipline to use standards and do frequent housekeeping.
If you let changes and branches go for two long without committing, merging and deleting them, never tag and release, write poor commit messages and don't reference issue numbers, lack naming conventions, submit dirty PRs and let PRs sit for days and weeks before approval, etc, then the problem isn't Git.
Re: Why SQLite does not use Git (2018)
#300Earlier quoted context omitted.
Git BASH (from that page) is what they referred to when they said "you literally have to bring half of a whole unix with you to run git".
GitBash, AutoHotkey, Notepad++, 7zip and PowerToys are the basic installs I do on any Windows I am given. Any dev opening a CMD is suspect, to me.