@feliks I like how the railroad switch (the tracks to be more precise) are still there. Making it ambiguous if the trolly will hit nobody and derail or all of them.
@agowa338 @feliks I feel like the guy's frown should be turned upside down too because he uses git
@agowa338 @feliks (to quote my uncle, ‘git, or more specifically github, usage tends to exacerbate psychopathic tendencies’)

@mia @feliks

git != github

git > github

@agowa338 honestly, I never really understood git's design approach and still prefer Mercurial and Subversion because they do not actively try to subvert my ideas about what consistent command-line interfaces are like
@mia never used either of these much. As someone that started with git both mercurial and subversion always are quite annoying and difficult to work with. The first thing I usually do after having managed to get them locally is "git init ." to track my own changes in it properly...

@agowa338 it might be because I am not a programmer — since childhood I only ever dealt with hobby-tier stuff (Z80/8080/M680x0/PowerPC Assembler, Ada, C#, Rust) and as a linguistics major only had 2 years of mandatory C in the university

so git is inscrutable to me; I do not understand why is it git stash list but git branch --list, etc.

@agowa338 obviously, everyone is just about forced to use git (and the pull request workflow) these days, so there is simply no real choice

@mia @agowa338 What are the alternatives to the pull request / merge request workflow?

Every place I worked at (including places that used Clear Case or Perforce) used a very similar workflow with a web-based code review tool.

@agowa338 @mia I totally loathe the pull request workflow and especially the platforming and web dependency.

Send me a tarball of patches any day.

@mia but to be fair these aren't the things you need all of the time either. I can't remember when I last used "git branch --list" if at all.

@agowa338 a project that I collaborate on has dozens of branches and it is easy to get lost sometimes haha

git stash list is used by me a lot for weird reasons: I have a git checkout of the FreeBSD ports tree that I want to keep as close to the original as possible, so all my temporary patches are stashed when I'm updating the tree

@mia But how often do you really need to know about all of them?

Like even for big projects it's at most 2-3 branches.
1 The main/master branch of the upstream project
2 Your patch-* branch
3 When someone sent you a diff/patch for your patch or you want to merge in some of their changes into yours.

And even for bigger projects like ansible where backporting is a thing that is basically because of the process not really different either just switch "main/master" with whatever version that pr is

@agowa338 it's a mobile game and they have separate branches for separate features/events/etc… and loc strings are spread all over those

it's terrible but that's what they have

@mia That sounds like a dumb project structure and not like a git issue tbh.
@agowa338 dumb projects aside, I am still convinced that git command line interface lacks consistency
@mia that's undisputed. It could have more consistency.
@mia Also this sounds like you should look into git worktrees.
@agowa338 that's one of my issues with git: with svn and mercurial I only needed to know a few basics; with git I need a Ph. D. in git administration \o/

@mia Not really. You could also just do a git clone and use your local folder as a remote too. Everything else is just advanced usages that has some benefits compared to the simpler ways. Like you'll need less disk space.

But all you need is still:
* git clone
* git push
* git pull --all
* git status
* git add
* git commit
* (maybe) git remote add myfork $url
* (maybe, but most of the time you're doing something wrong when you think you need it) git lfs

@agowa338 I am not the one doing git clone, it's poudriere updating its local copy from FreeBSD's main ports repository and I am working on that local copy
@[email protected]
hobby-tier stuff
PowerPC Assembler
😏

@mia @agowa338 Yeah... the command line is a bit inconsistent. And it could be better.

But as a linguistics major, you must know that language itself is super inconsistent, as it was created gradually, by multiple people, and now they call you out if you deviate from the standard.

@mia @agowa338 Also, git is simple in the same way quantum mechanics is simple.

It is the simplest solution to a complex problem. The complex problem being: a distributed version control system that you can adapt to a lot of different situations.

I can use git without ever configuring a server, I can make a repo, I can clone it to a USB or CD. I can give it to a friend. In fact, I included the whole source repo of my thesis on a CD when I handed in my thesis.

@mia @agowa338 svn… ugh.

I use cvs and git daily, though with git adopting rust will move more usages of git to cvs.

(I wrote an svn2cvs.sh if you’re interested.)

@mia @agowa338 this. also i still say that git branches aren't really branches.