background preloader

Git: Your New Best Friend [Server Side Essentials]

Git: Your New Best Friend [Server Side Essentials]
Introduction This article introduces version control and Git without assuming you have any prior knowledge or programming experience. Because of its introductory nature, certain details are simplified or omitted and the use of the Git Graphical User Interface (Git GUI) is emphasized. Afterwards the reader should be able to use Git for basic version control and know where to locate further information. Version control is the process of recording the history of changes to files as they are modified. protect against changes – accidental or otherwise – and be able to access a known good version of a filetrack down problems and make fixes to previous versions of filesallow more than one person to modify project files simultaneously (programmers refer to this as parallel development)retrieve an older set of files (if requested by a customer or manager, for example) Git runs on Windows, Mac OS X, Linux and UNIX. Concepts Installing Git Starting to Use Git $ git init The Git Index Configuration <! ... Related:  Git howto

A successful Git branching model » In this post I present the development model that I’ve introduced for some of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management. Why git? For a thorough discussion on the pros and cons of Git compared to centralized source code control systems, see the web. But with Git, these actions are extremely cheap and simple, and they are considered one of the core parts of your daily workflow, really. As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Enough about the tools, let’s head onto the development model. Decentralized but centralized ¶ Each developer pulls and pushes to origin. The main branches ¶ masterdevelop Supporting branches ¶ develop

What is "Modern Software Development"? Joel Spolsky came up with a twelve-item checklist in August, 2000 that provides a rough measure of-- in his words-- "how good a software team is": Do you use source control? Can you make a build in one step? Do you make daily builds?Do you have a bug database? Steve McConnell enumerated Software's Ten Essentials in 1997, ten things that every software project should have: A product specificationA detailed user interface prototypeA realistic scheduleExplicit prioritiesActive risk managementA quality assurance planDetailed activity listsSoftware configuration managementSoftware architectureAn integration plan These are great lists. The lists are still highly relevant and definitely worth revisiting today. So here's my question to you: what core set of practices constitutes modern software development in 2006?

Set Up a Git Server through SSH Connection - Git and SSH are both powerful tools, and git/ssh work well together. We introduce how to set up git server via ssh in this post. Git server through SSH is easy and fast to set up, although every user will have access to all repositories in the git server over SSH and every user is the git administrator. If you need to set up a git server for multiple users which may contain contributors and administrator, you may try gitolite as recommended by the gitolite author. If you prefer gitosis, please refer to: Setting Up a Git Server Using Gitosis and Managing Repositories on Git Server Using Gitosis. In this post how to set up a basic git server and a more complex one (the git server is a server inside of a local area network) will be introduced. A basic git server through SSH tutorial In this part we will build up a git server through ssh connection. Server side git user and home # yum install git Add the user for git # useradd -m -d /lhome/git -u 1005 git Configure the git user’s shell

Visual SourceSafe Best Practices Microsoft Corporation Created: March 1999 Updated: December 2000 Summary: Outlines recommended practices to help prevent data corruption in Microsoft Visual SourceSafe. Contents Note These topics are not intended to be the sole reference for Microsoft® Visual SourceSafe™. Introduction Under normal operation in a stable environment, Microsoft Visual SourceSafe provides excellent storage and security for your current source data and past revisions. Important When using Visual SourceSafe, be sure to run the latest version of the application. General Database Recommendations Database Size Under normal use, your Visual SourceSafe database should not exceed 3 to 5 GB. To reduce potential file size, keep projects that are not interrelated in separate databases. Location Although you can store Visual SourceSafe databases on any Microsoft® Windows®-compatible file server (Windows NT®, Novell, Banyan, and so on), database performance is best on Windows NT. Analyze Frequency Free Disk Space Server Rights

MvcContrib: Howto use git & github User contributions for the ASP.NET MVC Framework Guide for contributing to MvcContrib using git. Downloading and Installing Git Install git by downloading the latest msysGit installer from Once downloaded, run the installer and proceed through the wizard until you are asked to adjust your PATH environment: The default setting is to "use Git Bash only" which means you will only be able to use git commands from within the Bash shell. Next, you will be asked which SSH client you wish to use. The next stage is to choose your line endings. Pressing 'Next' will install msysGit to your system. Configuring SSH Keys Now that msysGit is installed, you will need to generate SSH keys in order to commit code to GitHub. First, open "Git GUI" from the Start menu: From the "Help" menu select "Show SSH Key": Next, click the "Generate Key" button: This will generate your public and private OpenSSH keys. Signing up to GitHub Getting the Source Option 1: Zip file git push origin master

Visual SourceSafe — Bazaar Migration Docs There is currently no direct migration recipe for VSS repositories. The suggested approach is to: Convert from VSS to Subversion using VSSMigrate or vss2svn, or PolarionImporter. vss2svn processes the backend VSS database and does not require VSS itselfMost of the other solutions require the VSS program Migrate the data from Subversion to Bazaar. Most of the solutions require the Visual SourceSafe “SS.exe” program to operate, except vss2svn. As it processes the backend database, vss2svn would be the best candidate for porting to a vss-fast-export, but bear in mind that most of these projects are very mature ; vss2svn seems to be the most active and the source hasn’t been touched in a year. All the solutions seem to suffer from locale issues. Some of the content kept within VSS may have depended on some of the features of VSS to work correctly. Shared Files rather than instead $\project\MyProject.vbp # I would link to .. Pinned Shared Files This is a form of branching.

How to Git Open Atrium | UV Media UPDATE: "Open Atrium has moved from its single monolitic repository to an install profile and a drush make based build system. This is a change that primarily effects developers. The complete, ready to install, download will continue to be offered at Details here. Thanks, Jeff. I've been playing around with the Open Atrium project (Features rule!) I went to download the latest version, but noticed that (as of December 31) it hadn't been updated with the latest version of Drupal core. It turns out that the project repository is hosted at GitHub. Installing Git The following steps apply to installing on a Debian-based Linux distro, which is fine if you use it as your desktop or if you like VirtualBox as much as I do. Updating Open Atrium Now all I have to do to update to the latest code base is (from inside the project directory):[chrisng@lampbuntu:~/public_html/Atrium] git pull Already up-to-date.

Why do Version Control Systems lack the sharing functionallity of Visual Source Safe and what source control do you use and reckon is worth trying out ignoring files committed 19 Jan 2009 We don’t need Git to version everything in our projects, be it compiled source, files with passwords, or temporary files that editors love to create. Usually keeping stuff out of your VCS’ hands is a task that is hard to manage and annoying to set up. Not with Git! Using the .gitignore file along with some other options, we’re going to learn how to set up per-project and per-user ignores. The easiest and simplest way is to create a .gitignore file in your project’s root directory. Here’s a basic .gitignore: $ cat .gitignore # Can ignore specific files .DS_Store # Use wildcards as well *~ *.swp # Can also ignore all directories and files in a directory. tmp/**/* Of course, this could get a lot more complex. Two things to keep in mind with ignoring files: First, if a file is already being tracked by Git, adding the file to .gitignore won’t stop Git from tracking it. git config --global core.excludesfile ~/.gitignore

Sharing Files in SVN GIT: Using the stash I bet the following has happened to you: you are happily working on a project and are in the middle of something. You are not ready to commit your changes, because you your tests don’t pass yet. Then your client calls with a bug report that needs to be fixed right now. (You know how clients can be.) So, what do you do? Git features The Stash, which is as much as a good place to store uncommitted changes. When you restore your stash, you changes are reapplied and you continue working on your code. Stash your current changes $ git stash save <optional message for later reference> Saved "WIP on master: e71813e..." List current stashes Yes, you can have more than one!! $ git stash list stash@{0}: WIP on master: e71813e... Note the stash@{0} part? Apply a stash $ git stash apply stash@{0} You may notice the stash is still there after you have applied it. $ git stash drop stash@{0} Or, because the stash acts like a stack, you can pop off the last stash you saved: $ git stash pop $ git stash clear

svn - Sharing the same file between different projects