background preloader

Configuration Management

Facebook Twitter

Tutorial-EclipseCon-2012-03. (Saving...) Practical Git: A Workflow to Preserve Your Sanity. Practical Git: A Workflow to Preserve Your Sanity Several years ago I made a blog post that questioned whether distributed version control systems were really generally useful. Its theme was “if the only reason that you need a DVCS is so that you can work on a plane, you don't really need a DVCS.” I still believe that. A DVCS brings a lot of complexity to your development process, and given the depressingly large number of developers out there who can't be bothered to do an update and test build before they commit, you're in for a world of pain if you suddenly make them go through the stage-commit-merge-push cycle of Git.

For a single person or small, colocated team, I just don't think it's worthwhile. Especially if you're already comfortable with Subversion, which in recent versions has become a lot better at handling branches. That said, over the past year I've been using Git quite a bit. It's easy to use git-push to maintain a personal backup repository. Git push backup Well, almost. Version Control for Multiple Agile Teams. If we have several agile development teams working on the same codebase, how do we minimize the risk of stumbling over each other? How do we ensure that there always is a clean, releasable version at the end of each iteration? This paper describes an example of how to handle version control in an agile environment with multiple teams - it is the scheme that we migrated to at the company described in "Scrum and XP from the Trenches".

This paper is not primarily targeted for version control experts, in fact such experts probably won't find anything new here. This paper is aimed at the rest of us, those of us that just want to learn simple and useful ways to collaborate. If, after reading it here, you'd like a copy for reference, scroll down for downloadable pdf versions of the cheatsheet and of the entire article. Table of contents Introduction This paper describes an example of how to handle version control in an agile environment with multiple teams. Goals The version control pattern Hmmmm. Version Control for Multiple Agile Teams. 10 things I hate about Git « Steve Bennett blogs. Git is the source code version control system that is rapidly becoming the standard for open source projects. It has a powerful distributed model which allows advanced users to do tricky things with branches, and rewriting history.

What a pity that it’s so hard to learn, has such an unpleasant command line interface, and treats its users with such utter contempt. 1. Complex information model The information model is complicated – and you need to know all of it. 2. The command line syntax is completely arbitrary and inconsistent. The most spectacular example of this is the command “git am”, which as far as I can tell, is something Linus hacked up and forced into the main codebase to solve a problem he was having one night. 3. The man pages are one almighty “fuck you”. Git-push – Update remote refs along with associated objects Here’s a description for humans: git-push – Upload changes from your local repository into a remote repository Update, another example: (thanks cgd) 4. 5. 6. 7. 8. 9. Basic workflow using Git and Dropbox - Albert Mata. Git howto. A successful Git branching model » nvie.com.

Note of reflection (March 5, 2020)This model was conceived in 2010, now more than 10 years ago, and not very long after Git itself came into being. In those 10 years, git-flow (the branching model laid out in this article) has become hugely popular in many a software team to the point where people have started treating it like a standard of sorts — but unfortunately also as a dogma or panacea.During those 10 years, Git itself has taken the world by a storm, and the most popular type of software that is being developed with Git is shifting more towards web apps — at least in my filter bubble.

Web apps are typically continuously delivered, not rolled back, and you don't have to support multiple versions of the software running in the wild.This is not the class of software that I had in mind when I wrote the blog post 10 years ago. Why git? ¶ For a thorough discussion on the pros and cons of Git compared to centralized source code control systems, see the web. The main branches ¶ develop.