🔥 The CLI/Git... it burns! It burns us... It freezes...



  • For the record, gitextensions is a very complete and easy to use GUI for got. I recommended it before, but ratty wouldn't look past they chose poor window decorations.



  • @fbmac said:

    GUI for got

    ...mine?

    We know, you use git.



  • Well git is designed for a completely different and much much more complex task than svn. Whereas most projects that are using git are still doing the same stuff they did with svn when svn was in vogue, viz, check out, modify, update, check in. That workflow is more complicated and error prone to do with git, so it makes total sense to say that git is harder to use.

    I can't comment on blakey's hatred of CLI since I was raised on CLI and therefore have always used it. However, I will note that no successful programming languages are not based primarily on plain text. Not even the programming languages promulgated by Microsoft or Apple.



  • @owatson said:

    That workflow is more complicated and error prone to do with git, so it makes total sense to say that git is harder to use.

    Complex workflow != hard to use.

    When will misinformation like this DIE OUT? It's misconceptions like these that are THE REASON so much software is shitty. "Oh well, our product does complex work, so let's not even fucking BOTHER even trying to attempt to start making it usable. Open source wisdom, right there!"

    @owatson said:

    However, I will note that no successful programming languages are not based primarily on plain text.

    Ask Mr. Progress Database who posts on this forum.



  • @Grunnen said:

    Apparently, all things considered, a lot of people nevertheless preferhave it shoved down their throat because it's the only way to access what they need.

    not empty


  • Discourse touched me in a no-no place

    @blakeyrat said:

    Ask Mr. Progress Database who posts on this forum.

    I have no idea what you mean. Progress source code is text-based and you know that unless you haven't been reading what I wrote, in which case you shouldn't be commenting on it.



  • @owatson said:

    no successful programming languages are not based primarily on plain text.

    And yet, a visual designer does lift languages like classic Visual Basic or Delphi from "who'd ever want to use that?" to "the thing that just wouldn't die".



  • If you compared to mercurial or bazaar I could accept your argument, but fuck svn. Its so shitty with branches that everywhere people asked me to use an external tool like winmerge and ignore svn supposed support for that.


  • 🚽 Regular

    @Fox said:

    Buckfast

    I've got a bottle that's about a decade old. No bugger will drink it. From what I can gather it tastes like liquid hate.

    The Scots did come up with one palatable beverage though. Irn Bru, works wonders as a hangover cure obviously ;)



  • Heh-hey! It sounds like me! Sweet! 🍹

    I gulp have a very good time at the towns, I tell's ya's...very good, very good...💫


  • BINNED

    @blakeyrat said:

    If Git were good software that required learning concepts, it'd teach itself to me as I used it.

    How could the poor Git teach you anything when all gits here could not persuade you even to try to learn?

    @blakeyrat said:

    Why do you think people like me hate open source products?

    I do not give a fuck about open source, I use good software.

    @blakeyrat said:

    people would love computers

    Anyone should be comfortable with the tools of his/her profession. A carpenter does not need to love his chisel and try to make it easy for the public. All car mechanics are assholes then because I cannot debug my car. git is a power tool for programmer, and the best way to use it is CLI. Now go tell a carpenter they all should make their chisels less sharp because of the children and see what you get from those assholes too.



  • @dse said:

    A carpenter does not need to love his chisel and try to make it easy for the public.

    Bullshit. What do you think power tools are?



  • @asdf said:

    git init --bare

    Total time: 0.5s

    It only takes my server 0.049s and it's a pretty shitty hand-me-down.



  • @dcon said:

    @Grunnen said:
    Apparently, all things considered, a lot of people nevertheless preferhave it shoved down their throat because it's the only way to access what they need.

    Well, because of my age I can't say anything about the corporate world, but at least in open-source it was all CVS 10 years ago, and SVN barely managed to make a dent into that. So, apparently, since then, a lot of people have actually voluntarily chosen Git over alternatives.



  • @asdf said:

    @asdf said:
    The last time I touched Git, somehow my commits ended up attributed to a username I'd never seen before. Turned out something somewhere leaked and my commits were ignoring the username I supplied on the command line and instead using some other Git user somewhere else in the world who literally had nothing to do with the project. :wtf: That should not be possible.

    Seriously, I'd like a link to a bug report here, otherwise I'm not going to believe you. Git doesn't do magic to figure out your name, it literally only reads its configuration file and uses whatever is in there. You probably forgot to configure it and so it used user@host.

    And this is the kind of :doing_it_wrong: behavior that makes me stay away from it. I didn't file a bug report, I instantly uninstalled it and went back to SVN where crap Just Works™. If a fresh install of Git from Ubuntu's repos on a fresh install of Ubuntu requires additional configuration to use the username I supply on the command line instead of another username magically plucked from the Internet Aether, I want nothing to do with it.

    I forget who it linked to, but it wasn't user@host, it was a real email of someone else, and when I searched it, it turned up a ton of various mailing lists with his Git commits mentioned.


  • Winner of the 2016 Presidential Election

    @mott555 said:

    username I supply on the command line

    How did you supply it on the command line? The only correct way to do that is to execute:

    git config user.name "mott555"

    git config user.email "mott555@what.thedailywtf.com"

    (--global if you want to set it as the default for all repos)

    It sounds like you did something else, which obviously doesn't work, and now blame git for that.

    Edit: Just to clarify: I'm not saying git is perfect or doesn't have bugs, but this seems like an obvious case of PEBKAC.



  • He probably did something like:

    git clone 'user@host.com/path/to/repo' 'dir'
    

    And then git didn't use 'user' as the name, despite that that's the obvious thing.


  • Winner of the 2016 Presidential Election

    @owatson said:

    despite that that's the obvious thing

    How is that the obvious thing to do?

    • You clone from github.com. All your commits are now attributed to username@github.com, which is not a valid email address. In case of readonly@github.com, it'd be even more stupid.
    • You clone via HTTP instead of SSH. No user name in the remote URL at all.

    No, user@local_system_name is the most sane default, sorry.



  • GitHub uses git as the only SSH username.



  • @asdf said:

    No, user@local_system_name is the most sane default, sorry.

    I'm pretty sure it defaults to not being set nowadays and it gives you an error explaining what you need to do when you try to commit.


  • Winner of the 2016 Presidential Election

    You're right. But in case of a local server, it'd probably at least be your own SSH user name.

    BTW: Literally the first two google results I found:



  • It's the obvious thing when you clone via ssh, because although email might not be set up on the remote server, a user by the name 'user' exists on the server 'host.com'. A string of the form 'user@host.com' could be an email address or simply a user and host.





  • right, this is a good behaviour, but not iirc the behaviour i've observed


  • Winner of the 2016 Presidential Election

    pi@Pi> mkdir test                                                            ~
    pi@Pi> cd test                                                               ~
    pi@Pi> git init                                                         ~/test
    Initialized empty Git repository in /home/pi/test/.git/
    pi@Pi> touch test                                              ~/test (master)
    pi@Pi> git commit -a                                           ~/test (master)
    
    *** Please tell me who you are.
    
    Run
    
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
    
    fatal: empty ident  <pi@Pi.(none)> not allowed
    [128] 
    pi@Pi>                                                         ~/test (master)
    

    Tested 30 seconds ago on my raspberry pi.



  • Oh, good. No complaints on that then.


  • Winner of the 2016 Presidential Election

    Your argument was flawed anyway:

    @owatson said:

    a user by the name 'user' exists on the server 'host.com'

    The same is true for user@local_hostname, which had been the default in the past.



  • That's a good point.


  • Java Dev

    @asdf said:

    @mott555 said:
    I can set up an SVN server from scratch in like 10 minutes.

    git init --bare

    Total time: 0.5s

    $ time svnadmin create test
    
    real    0m0.063s
    user    0m0.004s
    sys     0m0.000s
    

    I think @mot555 needs to more precisely define 'set up an SVN server'.



  • @PleegWat said:

    I think @mot555 needs to more precisely define 'set up an SVN server'.

    It usually starts with a blank VM that has no operating system.



  • Question: Where can I download the TFS API so I can write my own TFS integration for, say, IntelliJ IDEA?



  • @powerlord said:

    Question: Where can I download the TFS API so I can write my own TFS integration for, say, IntelliJ IDEA?

    I would assume here



  • The Team Foundation Server API consists of a set of .NET object models that are grouped by feature area.

    Yes, because that's totally going to work when integrating into a cross-platform Java application.

    (Side note: I already had that page open when I asked the original question.)



  • @owatson said:

    I can't comment on blakey's hatred of CLI since I was raised on CLI and therefore have always used it. However, I will note that no successful programming languages are not based primarily on plain text. Not even the programming languages promulgated by Microsoft or Apple.

    Actually, there's quite a few. You just don't use them because you're a probably traditional programmer with a traditional programming background. They're extremely common in education for teaching the concept of programming (NXT-G) and in where people have an EE background and work with data acquisition (LabVIEW). There's a number of data flow or analysis systems that let you program largely visually, like Orange and SSIS. Report writers like Cognos, Crystal Reports, and SSRS are really just visual programming, too. Flash always strikes me as a primarily visual program, too. The more domain-specific the language and the more non-traditional the programmer, the more likely it is that the language is visual.

    Sure, those systems often result in an XML file or are built using other programming languages but: a) nobody in their right mind codes a Cognos report or SSIS package in XML any more than someone codes in Assembly unless they absolutely have to, and b) you could just keep following that down the rabbit hole and say that all programming languages are just based on logic gates.



  • @BaconBits said:

    Flash always strikes me as a primarily visual program, too.

    Are you sure?


  • Trolleybus Mechanic

    If it does it's routinely ignored by the devs at work who commit stuff as "unknown <username@HOSTNAME>" until they are beaten with a stick to correct their config. Quite why the Windows Git installer doesn't auto-configure it off their domain account is another question.



  • Did you even bother with the most cursory Google search?



  • @blakeyrat said:

    Did you even bother with the most cursory Google search?

    Oh hey, another API written in .NET:

    @powerlord said:

    Yes, because that's totally going to work when integrating into a cross-platform Java application.



  • .net's cross platform, suck it up.

    In any case, if that was the point you were trying to make, maybe JUST FUCKING MAKE IT instead of asking a stupid rhetorical question and wasting everybody's time.



  • Oh, one thing I forgot to clarify in my previous post: The API you linked is a wrapper around the API that BaconBits linked.

    @blakeyrat said:

    In any case, if that was the point you were trying to make, maybe JUST FUCKING MAKE IT instead of asking a stupid rhetorical question and wasting everybody's time.

    OK, here's my FUCKING POINT:

    If you're going to call Git out on not having an API, I'm going to call TFS out on having a useless API that no one else is going to implement.

    After all, how many people do you think are going to write an IDE in .NET when Visual Studio already exists?



  • @powerlord said:

    > The Team Foundation Server API consists of a set of .NET object models that are grouped by feature area.

    Yes, because that's totally going to work when integrating into a cross-platform Java application.

    (Side note: I already had that page open when I asked the original question.)

    You can write a wrapper. Tools like jni4net and such exist. The fact that it's non-trivial to accomplish is irrelevant. There's an API and it exists. The truth is that TFS was built to be a RCS for Visual Studio. It's therefore tightly integrated with it.

    However, if you want to use Team Foundation Server in the future, you can just use git. Since TFS 2013, it's supported git natively, based on libgit2, as one of the RCS options. There's even a TFS plugin for Eclipse.

    And, I mean, come on. I remember a point at which installing TortoiseGit involved downloading about 2.5 GB worth of an MSYS/MinGW environment to get it to work. That is bullshit for version control software. Actually, looking at the TortoiseGit page now, it looks like it might still require that. I can't tell exactly what the preferred Git for Windows will actually install, but it looks like the first step to getting git to work on Windows is still getting a basic bash environment, so I imagine little has changed. That's horrifically bad design for something that's supposed to be multi-platform.



  • @powerlord said:

    @BaconBits said:
    Flash always strikes me as a primarily visual program, too.

    Are you sure?

    Yes. Flash was originally for animation and games, not shitty menus and shitty web apps. You got a timeline and a frame editor, much like what you get with video and audio editors. ActionScript didn't even exist in the first version of Flash.



  • @powerlord said:

    If you're going to call Git out on not having an API, I'm going to call TFS out on having a useless API that no one else is going to implement.

    Ok, but that's not relevant.

    Saying "Git sucks" doesn't imply, "TFS is good". Saying "Git lacks X, that's unacceptable" doesn't imply it's acceptable if TFS also lacks X."

    So you're splitting the world into this weird black-and-white kind of viewpoint that nobody but you shares, then coming into the thread and going, "Aha! Gotcha!"

    Well, uh, ok I guess? If it helps you sleep at night, you can pretend you just scored a million Internetpointzzz off me for pointing out that TFS is also flawed.


  • BINNED

    @BaconBits said:

    nobody in their right mind codes a Cognos report or SSIS package in XML any more than someone codes in Assembly unless they absolutely have to

    True, but if there were an option to code SSIS packages in C# (or any sane language really), I would definitely prefer that.



  • So you're splitting the world into this weird black-and-white kind of viewpoint that nobody but you shares, then coming into the thread and going, "Aha! Gotcha!"

    You're so oblivious sometimes.



  • @antiquarian said:

    @BaconBits said:
    nobody in their right mind codes a Cognos report or SSIS package in XML any more than someone codes in Assembly unless they absolutely have to

    True, but if there were an option to code SSIS packages in C# (or any sane language really), I would definitely prefer that.

    You can. It's called it's called a Script Task. Or, if you prefer, it's called "Not using SSIS," but that's also pretty well in the reinventing the wheel camp.



  • @Cursorkeys said:

    Irn Bru, works wonders as a hangover cure obviously 😉

    Aw, I miss that stuff.

    That and the fact that Western countries seem to do every single soda in a diet flavor. Here, if you don't want to stuff yourself with sugar, you get a choice of water and Diet Coke (Dr Pepper if you're very lucky).


  • Trolleybus Mechanic

    It also doesn't do reflog expiry and gc, which is what I want it to do right now in a C# program I'm writing to monitor our repos, so I'm going to have to use the CLI for that. So that's three things at least libgit2 can't do.

    Issue 3247 in libgit2, closed as won't fix. I'd link it but I'm on mobile which is painful enough already.


Log in to reply