Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Rant - I hate GIT

Rant - I hate GIT

Scheduled Pinned Locked Moved The Lounge
csharpphpcomcollaborationtutorial
60 Posts 32 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T thrakazog

    Well take heart. Some of us are still using VSS 6.0. Until starting this gig I didn't even know VS2010 would work with that. :~

    Play my game Gravity: IOS[^], Android[^], Windows Phone 7[^]

    M Offline
    M Offline
    Mycroft Holmes
    wrote on last edited by
    #17

    We went from VSS to TFS a few years ago, marginally more complex but much better integration and control.

    Never underestimate the power of human stupidity RAH

    1 Reply Last reply
    0
    • M Marc Clifton

      This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

      Reverse Engineering Legacy Applications
      How To Think Like a Functional Programmer
      My Blog
      Computational Types in C# and F#

      N Offline
      N Offline
      Nemanja Trifunovic
      wrote on last edited by
      #18

      As much as I would like to disagree, I can't really. There's just too much work babysitting it. SVN is pretty much invisible, and I like it that way.

      utf8-cpp

      1 Reply Last reply
      0
      • M Marc Clifton

        This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

        Reverse Engineering Legacy Applications
        How To Think Like a Functional Programmer
        My Blog
        Computational Types in C# and F#

        P Offline
        P Offline
        PIEBALDconsult
        wrote on last edited by
        #19

        Yikes. Glad I don't have to use that. Subversion is bad enough and I'm supposed to start using TFS last year :~ . Oh, how I long for the blissful (*) days of CMS[^]. * Well, no, we weren't writing in BLISS.

        1 Reply Last reply
        0
        • M Marc Clifton

          This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

          Reverse Engineering Legacy Applications
          How To Think Like a Functional Programmer
          My Blog
          Computational Types in C# and F#

          P Offline
          P Offline
          peterchen
          wrote on last edited by
          #20

          Learning curve: Two miles through the snow, uphill, both ways. But then: enlightment. I was lucky, had someone to hold my hand, still took me some weeks of daily use to get used to it. It is a pinnacle of "developers aren't users" software, so yeah, I see you pain. Yet I do not want to miss the workflow anymore I can have with git. All attempts to plaster a decent UI on top of it somehow make it worse, though.

          ORDER BY what user wants

          M 1 Reply Last reply
          0
          • M Marc Clifton

            This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

            Reverse Engineering Legacy Applications
            How To Think Like a Functional Programmer
            My Blog
            Computational Types in C# and F#

            N Offline
            N Offline
            Nagy Vilmos
            wrote on last edited by
            #21

            Good news Marc, there is help[^]. :-D


            Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

            M 1 Reply Last reply
            0
            • M Marc Clifton

              lewax00 wrote:

              get latest code

              which involves checkouts, fetches, and pulls, none of which make any sense to me in my angry state. I want to simply check out the latest version. How hard should that be?

              lewax00 wrote:

              run script to make commits, pushes, etc.

              The fact that you have SCRIPTS to do those things shows how complex they are. Commit to staging area. Push to remote. Rebase, pull, checkout, WTF??? Again, a simple "commit the changes to the repository" would be sufficient, and again, because I'm so angry that every time I try to start some productive work I end up first spending an hour (YES, A F***ING HOUR) fighting Git, I really have no patience for listening to how "it's my workflow." Maybe tomorrow I'll be in a better mood. Care to share your scripts? I might learn something! Marc

              Reverse Engineering Legacy Applications
              How To Think Like a Functional Programmer
              My Blog
              Computational Types in C# and F#

              P Offline
              P Offline
              peterchen
              wrote on last edited by
              #22

              Yeah, each step requires multiple commands; I'm not sure if I should like that. My typical workflow, when working on the main branch: hacka hacka hacka because that's part of our job, too. git gui Sort the mess I coded into easily digestable commits. UI sucks, but does the job. (at command line, this would be git add, git commit) alternatively / if this is not good enough: git rebase -i pub/master to reorder, clean up and combine commits. git fetch pub to get all changes from the other guys. git rebase pub/master Put my pending changes on top of the other guys changes gitk Look at the commits the other guys made, just to get an idea what they are on. git push peterchen master backup current state to remote repo (often involving -f) ph mk Build the code. If it compiles, it's good to go! git push pub master Push my changes to the main repo Sometimes, curse at whoever made a push pub master in the meantime repeat the recent steps since fetch, omitting all the quality checks to get the code pushed and pray that I didn't break the pub repo


              The data model takes a bit to wrap your head around. git stores revisions, but most commands actually move around changes between revisions. Branches and tags act like "pins", everything that is not directly or indirectly pinned gets garbage collected. I have a local "temp" branch that I use for intermediates I want to save before messing around. (you could use git stash, but it's only good if you are 101% sure it will be short-lived). Larger independent developments go on a branch. master is merged into that dev branch from time to time, when the code is good to go, dev branch is merged into master. That's it. peterchens 5 minutes of git.

              ORDER BY what user wants

              M 1 Reply Last reply
              0
              • L lewax00

                Sounds more like your workflow is the problem to me. I tend to script any repeated tasks with more than a couple steps, so my workflow generally becomes: get latest code -> make changes -> run script to make commits, pushes, etc. which is basically the same as using anything else. Personally, I wish we used Git or Mercurial here, because our commit process strongly discourages putting partially complete things in the repository, and I'd like to have some of the benefits of version control (especially revert) when I'm working on something larger that has be made as one commit to the repository. I wonder if there's a way to set up Git locally to push to CVS...

                B Offline
                B Offline
                BobJanova
                wrote on last edited by
                #23

                The fact that you even have "repeated tasks with more than a couple steps" is WTF-worthy in something which is supposed to make your life easier. In SVN you have one-click (or one-command) 'update' and 'commit' for the most common tasks. If you can't do that in GIT without scripting then it is objectively worse for the 99% case.

                L 1 Reply Last reply
                0
                • N Nagy Vilmos

                  Good news Marc, there is help[^]. :-D


                  Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

                  M Offline
                  M Offline
                  Marc Clifton
                  wrote on last edited by
                  #24

                  Nagy Vilmos wrote:

                  Good news Marc, there is help[^].

                  In my case, no, because it's a Ruby on Rails app, and I'm using RubyMine as the editor (pretty slick product) but it's figuring out RM's support of Git without first understanding how to use Git from the command line is not a good idea. Once I get the command line stuff under my belt, then I can poke around RM's GUI support and see what it's doing (it has a nice display of what it's telling Git to do.) Marc

                  Reverse Engineering Legacy Applications
                  How To Think Like a Functional Programmer
                  My Blog
                  Computational Types in C# and F#

                  R 1 Reply Last reply
                  0
                  • P peterchen

                    Yeah, each step requires multiple commands; I'm not sure if I should like that. My typical workflow, when working on the main branch: hacka hacka hacka because that's part of our job, too. git gui Sort the mess I coded into easily digestable commits. UI sucks, but does the job. (at command line, this would be git add, git commit) alternatively / if this is not good enough: git rebase -i pub/master to reorder, clean up and combine commits. git fetch pub to get all changes from the other guys. git rebase pub/master Put my pending changes on top of the other guys changes gitk Look at the commits the other guys made, just to get an idea what they are on. git push peterchen master backup current state to remote repo (often involving -f) ph mk Build the code. If it compiles, it's good to go! git push pub master Push my changes to the main repo Sometimes, curse at whoever made a push pub master in the meantime repeat the recent steps since fetch, omitting all the quality checks to get the code pushed and pray that I didn't break the pub repo


                    The data model takes a bit to wrap your head around. git stores revisions, but most commands actually move around changes between revisions. Branches and tags act like "pins", everything that is not directly or indirectly pinned gets garbage collected. I have a local "temp" branch that I use for intermediates I want to save before messing around. (you could use git stash, but it's only good if you are 101% sure it will be short-lived). Larger independent developments go on a branch. master is merged into that dev branch from time to time, when the code is good to go, dev branch is merged into master. That's it. peterchens 5 minutes of git.

                    ORDER BY what user wants

                    M Offline
                    M Offline
                    Marc Clifton
                    wrote on last edited by
                    #25

                    Thanks, that is helpful! Marc

                    Reverse Engineering Legacy Applications
                    How To Think Like a Functional Programmer
                    My Blog
                    Computational Types in C# and F#

                    1 Reply Last reply
                    0
                    • P peterchen

                      Learning curve: Two miles through the snow, uphill, both ways. But then: enlightment. I was lucky, had someone to hold my hand, still took me some weeks of daily use to get used to it. It is a pinnacle of "developers aren't users" software, so yeah, I see you pain. Yet I do not want to miss the workflow anymore I can have with git. All attempts to plaster a decent UI on top of it somehow make it worse, though.

                      ORDER BY what user wants

                      M Offline
                      M Offline
                      Marc Clifton
                      wrote on last edited by
                      #26

                      peterchen wrote:

                      I was lucky, had someone to hold my hand,

                      Fortunately, I do to, but I work at home and my client works at home, and we don't live in the same home, so often enough I have to figure things out on my own. Worse thing is, I thought I had it under control, but then discovered something yesterday that I couldn't work around. My solution? Deleted the whole project and re-cloned it from the remote. Maybe that's what I'll just do as s.o.p, hahaha. Marc

                      Reverse Engineering Legacy Applications
                      How To Think Like a Functional Programmer
                      My Blog
                      Computational Types in C# and F#

                      1 Reply Last reply
                      0
                      • B BobJanova

                        The fact that you even have "repeated tasks with more than a couple steps" is WTF-worthy in something which is supposed to make your life easier. In SVN you have one-click (or one-command) 'update' and 'commit' for the most common tasks. If you can't do that in GIT without scripting then it is objectively worse for the 99% case.

                        L Offline
                        L Offline
                        lewax00
                        wrote on last edited by
                        #27

                        I meant that as a general statement, not as Git specific. I script anything and everything I can. For example, since I find myself working with Base64 encoded files often, I now have scripts on my path to encode and decode Base64, a set for strings and a set for files (I could combine them, but that would be more work than having 2 sets honestly). As far as Git goes, the only common task I've encountered with more than one step is commit+push, but not every commit needs a push.

                        1 Reply Last reply
                        0
                        • M Marc Clifton

                          Pete O'Hanlon wrote:

                          I've just tried the TFS Online and it's incredibly simple.

                          I use SVN for my own projects and one of my clients used SVN, which I find incredibly easy to use. A new client is using Git, and they love it. I'm trying to see the inner beauty, but right now, Git looks like a wrinkled, fat, ugly w**** with sallow alcoholic skin and cigarette stained teeth. Marc

                          Reverse Engineering Legacy Applications
                          How To Think Like a Functional Programmer
                          My Blog
                          Computational Types in C# and F#

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #28

                          Marc Clifton wrote:

                          I'm trying to see the inner beauty, but right now, Git looks like a wrinkled, fat, ugly w**** with sallow alcoholic skin and cigarette stained teeth.

                          Beer googles which is presumably how most of the advocates operate.

                          1 Reply Last reply
                          0
                          • M Marc Clifton

                            This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

                            Reverse Engineering Legacy Applications
                            How To Think Like a Functional Programmer
                            My Blog
                            Computational Types in C# and F#

                            S Offline
                            S Offline
                            S Douglas
                            wrote on last edited by
                            #29

                            I now work with a guy who is completely confused about how to use SVN...Constantly complaining about how someone else used to manage making commits for his source code. X|


                            Common sense is admitting there is cause and effect and that you can exert some control over what you understand.

                            M 1 Reply Last reply
                            0
                            • S S Douglas

                              I now work with a guy who is completely confused about how to use SVN...Constantly complaining about how someone else used to manage making commits for his source code. X|


                              Common sense is admitting there is cause and effect and that you can exert some control over what you understand.

                              M Offline
                              M Offline
                              Marc Clifton
                              wrote on last edited by
                              #30

                              S Douglas wrote:

                              Constantly complaining about how someone else used to manage making commits for his source code.

                              Wow. How dificult is right-click on a folder and select Commit? Well, if you're using Tortoise SVN. Marc

                              Reverse Engineering Legacy Applications
                              How To Think Like a Functional Programmer
                              My Blog
                              Computational Types in C# and F#

                              S 1 Reply Last reply
                              0
                              • M Marc Clifton

                                S Douglas wrote:

                                Constantly complaining about how someone else used to manage making commits for his source code.

                                Wow. How dificult is right-click on a folder and select Commit? Well, if you're using Tortoise SVN. Marc

                                Reverse Engineering Legacy Applications
                                How To Think Like a Functional Programmer
                                My Blog
                                Computational Types in C# and F#

                                S Offline
                                S Offline
                                S Douglas
                                wrote on last edited by
                                #31

                                Marc Clifton wrote:

                                if you're using Tortoise SVN.

                                Yea, we are and it is that easy... I am beginning to believe he just wants something to complain about. X|


                                Common sense is admitting there is cause and effect and that you can exert some control over what you understand.

                                1 Reply Last reply
                                0
                                • M Marc Clifton

                                  This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

                                  Reverse Engineering Legacy Applications
                                  How To Think Like a Functional Programmer
                                  My Blog
                                  Computational Types in C# and F#

                                  J Offline
                                  J Offline
                                  jschell
                                  wrote on last edited by
                                  #32

                                  It was created to solve a specific task in a specific context. And then everyone wanted to use it for everything and rationalized the usage due to the perceived acceptance.

                                  1 Reply Last reply
                                  0
                                  • M Marc Clifton

                                    This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

                                    Reverse Engineering Legacy Applications
                                    How To Think Like a Functional Programmer
                                    My Blog
                                    Computational Types in C# and F#

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #33

                                    *cough* SmartGit[^] *cough*

                                    M 2 Replies Last reply
                                    0
                                    • L Lost User

                                      *cough* SmartGit[^] *cough*

                                      M Offline
                                      M Offline
                                      Marc Clifton
                                      wrote on last edited by
                                      #34

                                      Amrykid wrote:

                                      *cough* SmartGit[^] *cough*

                                      OK, that looks really useful. Much appreciated!!! Marc

                                      Reverse Engineering Legacy Applications
                                      How To Think Like a Functional Programmer
                                      My Blog
                                      Computational Types in C# and F#

                                      1 Reply Last reply
                                      0
                                      • M Marc Clifton

                                        This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

                                        Reverse Engineering Legacy Applications
                                        How To Think Like a Functional Programmer
                                        My Blog
                                        Computational Types in C# and F#

                                        A Offline
                                        A Offline
                                        Adhir Ramjiawan
                                        wrote on last edited by
                                        #35

                                        Git and SVN solve different problems. You should use the one most suited to your current project/needs. SVN is a centralized whereas Git is a distributed. With SVN, you have a local working copy and with Git you have a local repository. It is for this reason it may seem that Git is overly complex. If you want to fork a repo and add features that will be different from the projects original goals then Git might just work best for you. If you want a group of individuals contributing to a common code base then SVN will be your best bet. :)

                                        1 Reply Last reply
                                        0
                                        • M Marc Clifton

                                          This is one of the most pathetically complex things I've ever had to work with. It CONSTANTLY gets in the way of actually getting work done - I spend more time f***ing around with pushes and adds and branches and checkouts that I do actually making code changes!!! What a P.O.S. This diagram[^] near the bottom of the post says it all. Marc

                                          Reverse Engineering Legacy Applications
                                          How To Think Like a Functional Programmer
                                          My Blog
                                          Computational Types in C# and F#

                                          L Offline
                                          L Offline
                                          Lost User
                                          wrote on last edited by
                                          #36

                                          I strongly disagree with you guys. I have working with Git and SVN for quite a while - in different environments and at different companies, and I prefer Git to SVN. At the end of the day - I found that Git is much stronger and you are able to do so much more with it that thing SVN. Yes sure to get to all the nice interesting stuff it takes some understanding - but if you think about it development is the same. If you think you will become a developer with only a bit of understanding of general concepts you are wrong. <-- this is especially to all the Graphic Designer who this that they are developers thanks to WordPress and Drupal :mad: Git is not all that complex and the features (pros) out way the learning curve (cons) I would say. I am not saying that there is something wrong with SVN or that Git is better - it different and its all dependent on what you want to do, and how much you are willing to learn. :doh: This is quite a good blog regarding Git and SVN:[why is git better than subversion]<-- don't judge the blog by the title In the defense of git:[10 things i love about git]

                                          "Always code as if the person who will maintain your code is a maniac serial killer that knows where you live."

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups