What kind of git created this software?
-
git branch my_new_branch
git commit -m "My message"
git push origin my_new_branch
Wait a sec... whaddya mean nothing got pushed? *check check check* Why am I still on the old branch?!?
Apparently
git branch
creates a new branch, but doesn't actually switch you to it!Can anyone think of any (non-ridiculously-contrived) scenario in which I would want to create a new branch for any reason at all other than immediately switching to it and continuing to work on that newly-created branch?
-
I never use
git branch
to create.git checkout -b my_new_branch
-
@masonwheeler Maybe you want to create a branch to serve as a backup before you do some commits that can break stuff?
It shouldn't be the default, I'm just answering to your challenge
-
@masonwheeler said in What kind of git created this software?:
Apparently git branch creates a new branch, but doesn't actually switch you to it!
I don't think that's a bad thing. One command should do one operation. I mean God knows Git is garbage, but you're expecting it to read your mind here which is an unfair expectation.
-
@blakeyrat it's not hard to read mind if almost every single user has exact same set of use cases.
-
@gąska It's possible that if Git studied the issue, they'd find that overwhelmingly users want to switch to the branch immediately after creating it. Fair enough.
Yet that should be priority #34782462346234651375417547215371 when fixing problems with Git.
-
@blakeyrat said in What kind of git created this software?:
you're expecting it to read your mind here which is an unfair expectation.
I'm expecting it to have reasonable default behavior based on sensible expectations.
You know, the sort of thing you're always ranting about?
-
@masonwheeler said in What kind of git created this software?:
Apparently git branch creates a new branch, but doesn't actually switch you to it!
This bites me nearly every time. Not that I use git very much.
-
@masonwheeler said in What kind of git created this software?:
@blakeyrat said in What kind of git created this software?:
you're expecting it to read your mind here which is an unfair expectation.
I'm expecting it to have reasonable default behavior based on sensible expectations.
You know, the sort of thing you're always ranting about?
But you're trying to define "sensible" instead of asking blakey what it is.
-
Why are you people using command line git?
What's wrong with tortoiseGit?
-
@dangeruss said in What kind of git created this software?:
What's wrong with tortoiseGit?
It's not available for Linux? Also, it's nowhere near as good as TortoiseSVN is for SVN.
-
@raceprouk said in What kind of git created this software?:
@dangeruss said in What kind of git created this software?:
What's wrong with tortoiseGit?
It's not available for Linux? Also, it's nowhere near as good as TortoiseSVN is for SVN.
It's nowhere close to as good. It's much, much better.
-
@raceprouk said in What kind of git created this software?:
It's not available for Linux?
This.
Also, it's nowhere near as good as TortoiseSVN is for SVN.
This is true. Mostly because the underlying platform is far worse and there's only so much that lipstick can do; there's still a very visible pig underneath.
-
@dangeruss said in What kind of git created this software?:
Why are you people using command line git?
Command line is the Right Way to use version control software.
-
@boomzilla said in What kind of git created this software?:
@dangeruss said in What kind of git created this software?:
Why are you people using command line git?
Command line is the Right Way to use version control software.
Very debatable. Git cli sux, and Tortoise does a good job of hiding the ugly stuff.
-
@dangeruss said in What kind of git created this software?:
Very debatable.
Not for me, but I'm also not using Windows' crippled terminal.
-
@boomzilla No; your use of the word "terminal" suggests that you're intead using a big mass of designed by folks who don't realize that CLIs have been obsolete for over 3 decades now.
-
@masonwheeler said in What kind of git created this software?:
@boomzilla No; your use of the word "terminal" suggests that you're intead using a big mass of designed by folks who don't realize that CLIs have been obsolete for over 3 decades now.
You can take it from my cold dead hands because as I've already demonstrated previously you're dead wrong about this.
-
@masonwheeler said in What kind of git created this software?:
folks who don't realize that CLIs have been obsolete for over 3 decades now
That must be why Microsoft is developing PowerShell
-
@timebandit PowerShell is a scripting system. It's designed for what command lines are actually good at: scripting.
As a user interface, CLIs have been obsolete for decades.
-
@masonwheeler said in What kind of git created this software?:
As a user interface, CLIs have been obsolete for decades.
@timebandit said in What kind of git created this software?:
That must be why Microsoft is developing PowerShell
-
@dangeruss said in What kind of git created this software?:
Why are you people using command line git?
What's wrong with tortoiseGit?
Sooner or later it farts and you start a blakeyrant against git, not mentioning that you are not using git, but a stupid gui wrapper. Learn the damn thing, then use gui if you really want.
Do you also avoid JavaScript and only use a framework?
-
@dangeruss said in What kind of git created this software?:
Git cli sux
That's what aliases/hooks/shell scripts are for. Git's CLI interface is an awful ball of yarn, but generally you only have to figure things out once and then it's easy to script them so that your common tasks are a matter of writing
git dowhatiwant
.I have utterly no idea how in Git I would list all commits I've made that aren't merge commits and aren't on the master branch, but I figured it out once, stuffed it into an alias, and now
git mydelta
shows me a nice list of them.Of course that still means you're calling git from a terminal (if only because Git's underlying implementation of aliases and hooks is a WTF in itself, especially on Windows where it calls to its personal bash no matter what shell you're running), but if you do that anyway, at least make things simple for yourself.
-
@maciejasjmj There's some useful stuff you can install via
pip
too. One I use a lot is thegit-up
package: once installed,git up
automatically pulls and merges all local branches from remote, automatically stashing and unstashing local changes as it goes
-
@blakeyrat said in What kind of git created this software?:
Yet that should be priority #34782462346234651375417547215371 when fixing problems with Git.
So, in the top 10%?
-
@dse said in What kind of git created this software?:
@dangeruss said in What kind of git created this software?:
Why are you people using command line git?
What's wrong with tortoiseGit?
Sooner or later it farts and you start a blakeyrant against git, not mentioning that you are not using git, but a stupid gui wrapper. Learn the damn thing, then use gui if you really want.
Do you also avoid JavaScript and only use a framework?
Yea, I probably should learn it. If it wasn't so damn difficult. I've learned a good chunk of svn, but git is just so unintuitive, and I CBA to actually read the manual, although I should sometime.
On the other hand TortoiseGit and Stash make it almost painless to the point where I can just guess what I'm supposed to do and use the GUI to do it. The only time I've had to use command line is either git gc (since I don't see an option for that in the GUI. The only other time is when I'm following some instructions in stash about fixing conflicts on a PR.
-
@masonwheeler said in What kind of git created this software?:
Apparently
git branch
creates a new branch, but doesn't actually switch you to it!Can anyone think of any (non-ridiculously-contrived) scenario in which I would want to create a new branch for any reason at all other than immediately switching to it and continuing to work on that newly-created branch?
Probably a similar scenario to the one in which you right-click on a link on a web page, choose “Open in new tab”, and then want to continue reading in the same tab instead of the new one. That is: not one I can say I’ve encountered often. Yet web browsers by default usually open a new tab in the background.
-
@masonwheeler ever heard you can define your own git subcommands?
You can create a branch, switch to it, brew a coffee, and make a sandwich with one of those.
-
@gurth said in What kind of git created this software?:
Probably a similar scenario to the one in which you right-click on a link on a web page, choose “Open in new tab”, and then want to continue reading in the same tab instead of the new one. That is: not one I can say I’ve encountered often. Yet web browsers by default usually open a new tab in the background.
You probably don't remember the time when "open new tab in foreground" was the default I needed to change in settings every damn time. Then they invented ways of gathering analytics from the real actual users and changed the defaults accordingly.
-
@wft said in What kind of git created this software?:
You can create a branch, switch to it, brew a coffee, and make a sandwich with one of those.
Only if you have
sudo
privileges :P
-
@dangeruss said in What kind of git created this software?:
The only time I've had to use command line is either git gc
You should not run
git gc
unless you're really, really running out of disk space. In other words, you should never, ever rungit gc
and should instead smite the idiot who told you to do so with a clue morning-star +15 cluinggit gc
reclaims disk space by removing objects which aren't being explicitly referenced. Would you like to be able to recover a commit that was lost during a rebase? If so, don't rungit gc
-
-
@masonwheeler said in What kind of git created this software?:
As a user interface, CLIs have been obsolete for decades.
Like passenger trains?
-
@dangeruss said in What kind of git created this software?:
and I CBA to actually read the manual, although I should sometime.
You can get all the relevant git information you need right here:
-
@raceprouk said in What kind of git created this software?:
@wft said in What kind of git created this software?:
You can create a branch, switch to it, brew a coffee, and make a sandwich with one of those.
Only if you have
sudo
privileges :PObligatory xkcd:
-
@masonwheeler said in What kind of git created this software?:
Can anyone think of any (non-ridiculously-contrived) scenario in which I would want to create a new branch for any reason at all other than immediately switching to it and continuing to work on that newly-created branch?
For new tickets you know you'll be working on soon/next, but are currently working on an older one.
@dse said in What kind of git created this software?:
Learn the damn thing, then use gui if you really want.
This. I started off (svn) using RapidSVN, then when PCLinuxOS broke it for a while, kdeSVN, then I can't remember why, the command line.
I found the command line to be quicker and more granular when doing stuff. Both GUI's insisted on pulling far too much from the server; for example while they had a method of viewing the history, you couldn't restrict it to a period - it was either all or nothing.
And then there's crap like this - just fired up RapidSVN for the first time in ages and pointed it to my working branches:
And, of course, your mental model of what's going on behind the scenes is a bit more accurate if you know how to work the CLI, and makes all the holes in the GUI's that much more evident. Like, from memory - because I'm sorting out the above error - I don't think you can
switch
subdirectories using the GUIs.
-
@pjh said in What kind of git created this software?:
I found the command line to be quicker and more granular when doing stuff. Both GUI's insisted on pulling far too much from the server; for example while they had a method of viewing the history, you couldn't restrict it to a period - it was either all or nothing.
Clicking around in directory trees has got to be responsible for 10 points on my blood pressure.
-
@boomzilla said in What kind of git created this software?:
Clicking around in directory trees has got to be responsible for 10 points on my blood pressure.
Depends on how long it takes each level to load when you've clicked the and how long it takes to scroll once you've got a few of them open...
-
@pjh Oh, for sure. That 10 points was by no means an upper limit.
-
@masonwheeler said in What kind of git created this software?:
git branch my_new_branch
git commit -m "My message"
git push origin my_new_branch
Wait a sec... whaddya mean nothing got pushed? *check check check* Why am I still on the old branch?!?
Apparently
git branch
creates a new branch, but doesn't actually switch you to it!Can anyone think of any (non-ridiculously-contrived) scenario in which I would want to create a new branch for any reason at all other than immediately switching to it and continuing to work on that newly-created branch?
Creating a release branch before deploying to a pre-prod environment.
-
@masonwheeler said in What kind of git created this software?:
CLIs have been obsolete for over 3 decades now.
CLI is the best interface for expressiveness, to get that in a GUI you will end up with dialogs that look like cockpits.
-
@dse Or you can have a well-designed gui
-
@dse said in What kind of git created this software?:
@masonwheeler said in What kind of git created this software?:
CLIs have been obsolete for over 3 decades now.
CLI is the best interface for expressiveness, to get that in a GUI you will end up with dialogs that look like cockpits.
GUIs are great for happy path usage or if you're not exactly sure what you want a well laid out GUI can help you discover what's going on. CLI can also be great for happy path usage assuming the number of arguments isn't more than 2-3. And like @dse said it can enable expressiveness that would probably require a crazy GUI. When I think of this I think of ffmpeg's filters. Learning the filter syntax is a pain in the ass but once you know it the CLI is better than a GUI video editor. Unless, as I said before, you're doing just the basics.
-
@dse said in What kind of git created this software?:
CLI is the best interface for expressiveness, to get that in a GUI you will end up with dialogs that look like cockpits.
Only if the GUI is designed by an idiot. Like the guy who designed SourceTree for Git.
@mikehurley said in What kind of git created this software?:
And like @dse said it can enable expressiveness that would probably require a crazy GUI. When I think of this I think of ffmpeg's filters. Learning the filter syntax is a pain in the ass but once you know it the CLI is better than a GUI video editor.
Wow. I can't say bullshit enough to that.
Everybody who does film editing as a profession, every single person, uses Vegas, Premiere, or some other GUI tool for it. You are so wrong it's hurting my head. Using a CLI to edit video is moronic beyond all belief, and the only reason I can think of why anybody would even want to try it is they're so cheap they won't pay $60 for a basic version of Vegas.
Anyway, Git's main problem isn't that its primary user interface is a CLI, Git's problem is that its only interface is a CLI. So humans and machines have to share the same interface.
If anybody ever tells you Linus Torvalds is a good software developer, feel free to kick their shins.
-
@wft said in What kind of git created this software?:
You probably don't remember the time when "open new tab in foreground" was the default
Was that before late 1994?
I needed to change in settings every damn time.
Whereas I have to deal with tabs opening in the background every time I use a computer other than my own.
-
@dse said in What kind of git created this software?:
CLI is the best interface for expressiveness, to get that in a GUI you will end up with dialogs that look like cockpits.
Cockpit designers recognised that problem sometime ago already, but unlike computer software designers, didn’t have a way around it until technology advanced far enough to make something like this:
http://m6.i.pbase.com/o9/96/635896/1/107048686.oXKYwwbt.CXcockpitcloseupStandardemailview.jpg
-
@gurth said in What kind of git created this software?:
Cockpit designers recognised that problem sometime ago already, but unlike computer software designers, didn’t have a way around it until technology advanced far enough to make something like this:
For software, we can use a tabbed interface to make multiple control sets occupy the same position in 2D space. You can't do that in a physical instrument panel.
-
@masonwheeler Yes, that was kind of my point :) But the screens in the image I posted have probably the nearest physical equivalent: buttons along the edge, pointing to the function displayed above them.
-
@blakeyrat said in What kind of git created this software?:
@dse said in What kind of git created this software?:
CLI is the best interface for expressiveness, to get that in a GUI you will end up with dialogs that look like cockpits.
Only if the GUI is designed by an idiot. Like the guy who designed SourceTree for Git.
@mikehurley said in What kind of git created this software?:
And like @dse said it can enable expressiveness that would probably require a crazy GUI. When I think of this I think of ffmpeg's filters. Learning the filter syntax is a pain in the ass but once you know it the CLI is better than a GUI video editor.
Wow. I can't say bullshit enough to that.
Everybody who does film editing as a profession, every single person, uses Vegas, Premiere, or some other GUI tool for it. You are so wrong it's hurting my head. Using a CLI to edit video is moronic beyond all belief, and the only reason I can think of why anybody would even want to try it is they're so cheap they won't pay $60 for a basic version of Vegas.
Anyway, Git's main problem isn't that its primary user interface is a CLI, Git's problem is that its only interface is a CLI. So humans and machines have to share the same interface.
If anybody ever tells you Linus Torvalds is a good software developer, feel free to kick their shins.
I haven't really done traditional video editing (like home movies or whatever).
Here's the last audio/video project I did. This is something that should kick off whenever a recorded "jail visit" is complete.
For video:- The video should have a static image for its background.
- Put the inmate in the top-left. Put the visitor in the top-right. Make sure to detect gaps where one, the other, or both are missing (network drops & reconnects, etc). Either or both could have one input file or many depending on who blipped out.
For audio: - Mix the inmate and visitor audio tracks together with the same type of gap detection.
At the time I did this 5 years ago you had to process each chunk/gap and then concatenate them at the end. I believe the current ffmpeg would allow you to do this all in one shot assuming you've already detected the different chunks/gaps. Also from what I remember you can do similar filter chaining within VLC.
Also, ffmpeg has a library that we could have used to do this but it'd be a nasty object graph you'd need to make. From what I remember the library was a reasonable exposure of ffmpeg's features. It was literally cleaner to use the string syntax for filters on the command line.
-
@mikehurley You could have done that in like 1998 using AppleScript and QuickTime, without ever once touching a CLI. (In fact, the OS you'd be on didn't even have a CLI.)
Your problem isn't "the CLI is more expressive", it's "software in 2017 (or I suppose 2012) sucks", which is undoubtedly true. Software is progressing backwards in usability, features, stability, etc. Backwards. Just sayin'.