Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
JawnV6
Jul 4, 2004

So hot ...

Khorne posted:

Especially once you understand what git is doing under the hood and want to make sure the right things are happening.
this is some faint praise

Adbot
ADBOT LOVES YOU

Absurd Alhazred
Mar 27, 2010

by Athanatos

Khorne posted:

I don't get why people use anything other than command line for git. Everything else is awkward in comparison. Especially once you understand what git is doing under the hood and want to make sure the right things are happening.

I work with plenty of people who use GUIs for git stuff. I'm not knocking it too much, but you're putting in way more effort to learn a cumbersome gui than it would take to just learn git.

I like seeing the branching tree in front of me. Makes it easier for me to pick out what's new after a pull and to choose where to go when I need to revert to search for where a feature might have broken in the past.

It's also easier to immediately spot when you've made a terrible mistake.

putin is a cunt
Apr 5, 2007

BOY DO I SURE ENJOY TRASH. THERE'S NOTHING MORE I LOVE THAN TO SIT DOWN IN FRONT OF THE BIG SCREEN AND EAT A BIIIIG STEAMY BOWL OF SHIT. WARNER BROS CAN COME OVER TO MY HOUSE AND ASSFUCK MY MOM WHILE I WATCH AND I WOULD CERTIFY IT FRESH, NO QUESTION

Khorne posted:

I don't get why people use anything other than command line for git. Everything else is awkward in comparison. Especially once you understand what git is doing under the hood and want to make sure the right things are happening.

I work with plenty of people who use GUIs for git stuff. I'm not knocking it too much, but you're putting in way more effort to learn a cumbersome gui than it would take to just learn git.

I agreed. Sourcetree was the one that made me give up in frustration and just learn the command line because the GUIs are all so cumbersome. Especially since (this obviously depends on what you're building, I'm just speaking for myself here) there's a good chance I have a terminal open that I'm working in anyway. The only thing I can think of that particularly sucks from the command line is merging, but you can set VS Code up as your merge tool and it works well enough.

Some of the comments here about commit messages and rebasing make me think you guys are leaving your feature branches around for waaaaayyyy too long.

Xarn
Jun 26, 2015
I just mix git cli and tig :shrug:

JawnV6
Jul 4, 2004

So hot ...

yeah i used mig at one place, just awful! buncha ==== >>>'s all over the place after a merge, tig's so much cleaner in the hands of a pro

MononcQc
May 29, 2007

Yeah tig is the one tool that makes git palatable to me

Khorne
May 1, 2002
Just wanna say thanks for the replies everybody. I asked you something I didn't want to ask my coworkers because people get all high and mighty about their preferred way of doing things, feel like you're calling them out and start questioning their life choices, or think but don't say "who cares can we talk about something else".

Some good, insightful reasons as to why some people prefer GUI. A few of you just need to spam "git status" between every breath and use git diff with either HEAD~N or a remote branch name to solve your CLI woes. But some others had good points, like if you're regularly but not frequently doing complex staging workflows the CLI is going to be a pain. And some people will prefer visualization. Which makes sense, because you made me realize I sometimes check bitbucket or github or whatever for similar things. So truly, I am inferior for using a web interface instead of a GUI.

I never even considered the "I use both" workflow, either. Most GUI users I know use the GUI until they're forced not to because they accidentally broke everything with the GUI.

JawnV6 posted:

this is some faint praise
Git's one of the top 5 advances in software engineering in the past 20 years. It's just significantly more complex than what came before it and takes actual effort to learn.

If you meant that the other way, like for me, I didn't mean it that way. I consider lots of people who replied better at programming and probably git.

Khorne fucked around with this message at 05:19 on Oct 1, 2019

Qwertycoatl
Dec 31, 2008

I wish mercurial had won the battle of source control systems built on the (still-twitching) corpse of bitkeeper

Volte
Oct 4, 2004

woosh woosh

a hot gujju bhabhi posted:

Some of the comments here about commit messages and rebasing make me think you guys are leaving your feature branches around for waaaaayyyy too long.
They're around for however long the feature takes to develop, presumably.

Khorne posted:

Git's one of the top 5 advances in software engineering in the past 20 years. It's just significantly more complex than what came before it and takes actual effort to learn.
Learning how git works and learning its hot garbage of a CLI are two different things. Git isn't really that complicated if you have a good mental model of how it works.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

Volte posted:

Learning how git works and learning its hot garbage of a CLI are two different things. Git isn't really that complicated if you have a good mental model of how it works.

Yeah, I was going to say something like this.

Like, yeah I agree git is a big advance for software development. It's a shame it has such a terribly designed CLI. I feel like we've reached yet another path dependence nightmare wherein git has made such inroads that we're all stuck with what we've got for the next two decades.

Presto
Nov 22, 2002

Keep calm and Harry on.

Khorne posted:

Git's one of the top 5 advances in software engineering in the past 20 years. It's just significantly more complex than what came before it and takes actual effort to learn.

Counterargument: git is one of the worst things to happen to software engineering in the past 20 years.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


An unsupported claim isn't an argument.

taqueso
Mar 8, 2004


:911:
:wookie: :thermidor: :wookie:
:dehumanize:

:pirate::hf::tinfoil:

Distributed Version Control is one of the top things to happen in the last 20 years, at least.

Xarn
Jun 26, 2015

Presto posted:

Counterargument: git is one of the worst things to happen to software engineering in the past 20 years.

Take this hot needs some supporting arguments.

Soricidus
Oct 21, 2010
freedom-hating statist shill
as someone who was previously forced to use clearcase, I can say that the git user experience is a comparative delight, and its ubiquity forcing places to move away from old proprietary poo poo is a great step forward for professional software development

it doesn’t matter how much better hg was, nobody used it so it’s irrelevant

NtotheTC
Dec 31, 2007


Soricidus posted:

it doesn’t matter how much better hg was, nobody used it so it’s irrelevant

Can anyone even claim hg was better? It's fine to call git "bad software" in terms of it being unintuitive or whatever but hg was a loving nightmare unless you live your developer life commiting straight to master or working on monolithic features without ever having to merge in other people's changes.

:v: "Just use bookmarks they're just like git branches!"

No they're not. They're a liability.

Kazinsal
Dec 13, 2011
I think I've intentionally used hg once. It was on an open source, from scratch operating system project that fell apart about a month and a half in. This was probably about a decade ago.

I know that's not empirical evidence that hg is dead, but I don't think I've ever used it even to check a repo out since then. By contrast, I'm not a programmer by trade or even a heavy FOSS user and I use Git a lot. Hell, I think I've typed "cvs" into a terminal more often than I have "hg".

Sometimes software just doesn't go anywhere, because something better came along, but a subset of people stayed committed (heh) enough for some maintainer to keep cranking out maintenance releases.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
FWIW, mercurial is far better than git for building additional tooling on top of, since it actually has an api for programmatic access that isn't "invoke the command line tool, or go poking through a bunch of files in a hidden directory and try to mimic what the official tool does with them".

Master_Odin
Apr 15, 2010

My spear never misses its mark...

ladies
I know code found from academia/research is cheating, but still...
code:

const wav = require('wav');

// Get binary wav buffer from API

let writer = wav.Writer(binary_buffer)
let buffer = writer.read();

let save_wav = wav.FileWriter('file')
save_wav.write(buffer);
save_wav.end();
save_wav.on('finish',function(){console.log("finish")})

//Todo: Change timeouts to actual callbacks on stream finish. This is not great code, but it works
setTimeout(function() {
  // send wav file for further processing
}, 1000);

xtal
Jan 9, 2011

by Fluffdaddy
git is not hard, at all

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

I mean, I guess you could say that a door with a pull handle that you're supposed to push is not hard to use either.

xtal
Jan 9, 2011

by Fluffdaddy

Thermopyle posted:

I mean, I guess you could say that a door with a pull handle that you're supposed to push is not hard to use either.

Just because you pulled a push handle doesn't make it a pull handle

dick traceroute
Feb 24, 2010

Open the pod bay doors, Hal.
Grimey Drawer

xtal posted:

Just because you pulled a push handle doesn't make it a pull handle

alias git-pull="git push origin master --force"

Kazinsal
Dec 13, 2011

xtal posted:

Just because you pulled a push handle doesn't make it a pull handle

CVS is an old doorknob that slips once in a while and needs a couple tries to open. SVN is a bare latch with a screwdriver jammed into it as a pry-bar.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

xtal posted:

Just because you pulled a push handle doesn't make it a pull handle

https://99percentinvisible.org/article/norman-doors-dont-know-whether-push-pull-blame-design/

taqueso
Mar 8, 2004


:911:
:wookie: :thermidor: :wookie:
:dehumanize:

:pirate::hf::tinfoil:

Kazinsal posted:

CVS is an old doorknob that slips once in a while and needs a couple tries to open. SVN is a bare latch with a screwdriver jammed into it as a pry-bar.

Perforce is a big pit with spikes at the bottom.

Zopotantor
Feb 24, 2013

...und ist er drin dann lassen wir ihn niemals wieder raus...

taqueso posted:

Perforce is a big pit with spikes at the bottom.
ClearCase is like that, but the spikes are covered in poison. And on fire.

Kazinsal
Dec 13, 2011

Zopotantor posted:

ClearCase is like that, but the spikes are covered in poison. And on fire.

Visual SourceSafe is a portcullis that opens and slams shut at random intervals. A life insurance broker has a booth outside where he sells contracts consisting mostly of fine print at an exorbitant premium.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

taqueso posted:

Perforce is a big pit with spikes at the bottom.

You have to request to fall on each spike individually though

Winter Stormer
Oct 17, 2012

Jabor posted:

FWIW, mercurial is far better than git for building additional tooling on top of, since it actually has an api for programmatic access that isn't "invoke the command line tool, or go poking through a bunch of files in a hidden directory and try to mimic what the official tool does with them".

Isn't this the problem libgit2 solves? (I haven't used it myself.)

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
Yes, but the fact that it's a reimplementation of git and not the library used by git itself is inherently a source of problems.

Xarn
Jun 26, 2015
I just inserted an assert before the last label in a fall-through switch. I feel dirty.

Tei
Feb 19, 2011
Probation
Can't post for 39 hours!

xtal posted:

git is not hard, at all

the difficulty on git is like the difficulty on dynamic typed languages

if you are on the surface it can be easier than other options

if you dig down you can find complex stuff

Ola
Jul 19, 2004

I think git is fine, but what I don't like about it is something I get annoyed by in other areas, most of them in computer science. Giving annoying names to things. For instance, picking everyday words for something that has extremely specific meaning in that domain, but isn't the same as the dictionary definition. It might even have nothing to do with the dictionary meaning, or worse it's almost the same so your previous understanding messes you up. You don't revert something in everyday life, you revert to something. But in git, you revert something. So one might think doing git revert c on commits a, b, c, d, e will undo commits d and e, but you'd be very wrong.

Also, picking random slang words that emerged in the group's discourse. It's released so it can be used by people who didn't take part in that chat, and so they don't have the mutual established understanding of the slang word's meaning. But the releasing group are so used to it, they confuse their own lingo with common intuition or vernacular. What the hell does "git cherry" do?

quote:

Determine whether there are commits in <head>..<upstream> that are equivalent to those in the range <limit>..<head>.

Yeah...right. Cherry pick or something I guess? Real useful name.

Xarn
Jun 26, 2015
TIL about git cherry...

From reading the help, it seems to be a thing mostly complementary for git cherry-pick, so I am tempted to give it a pass though :shrug: Also it is slowly getting better, with things like git switch and git restore.

Steve French
Sep 8, 2003

Naming things is hard.

Eggnogium
Jun 1, 2010

Never give an inch! Hnnnghhhhhh!

Ola posted:

I think git is fine, but what I don't like about it is something I get annoyed by in other areas, most of them in computer science. Giving annoying names to things. For instance, picking everyday words for something that has extremely specific meaning in that domain, but isn't the same as the dictionary definition. It might even have nothing to do with the dictionary meaning, or worse it's almost the same so your previous understanding messes you up. You don't revert something in everyday life, you revert to something. But in git, you revert something. So one might think doing git revert c on commits a, b, c, d, e will undo commits d and e, but you'd be very wrong.

I don't know, I think "revert <object>" and "revert to <object>" having different meanings does not originate with git and is pretty well understood.

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
Yeah, “revert” long predates git, and “cherry” is a shortening (that I’ve personally never heard of or used) of “cherry-pick”, which I think is an American idiom but a really common one.

Ola
Jul 19, 2004

Fair enough that I might be wrong about revert. But picking something that wasn't ambiguous might be better. They probably had a huge screaming fight over why "undo" wouldn't work. "Cherry pick" is obviously a well known idiom, but what exactly do you cherry pick with that command?

quote:

Determine whether there are commits in <head>..<upstream> that are equivalent to those in the range <limit>..<head>.

Is that really the act of cherry picking?

Adbot
ADBOT LOVES YOU

necrotic
Aug 2, 2005
I owe my brother big time for this!

quote:

Given one or more existing commits, apply the change each one introduces, recording a new commit for each.

That's cherry-pick. Cherry can help you find commits you might want to pick.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply