After months of looking, struggling through Git-SVN glitches and letting things roll around in my head, I’ve finally arrived at a web-focused Git workflow that’s simple, flexible and easy to use. Some key advantages: * Pushing remote changes automatically updates the live site * Server-based site edits won’t break history * Simple, no special commit rules or requirements * Works with existing sites, no need to redeploy or move files Overview The key idea in this system is that the web site exists on the server as a pair of repositories; a bare repository alongside a conventional repository containing the live site. Two simple Git hooks link the pair, automatically pushing and pulling changes between them.
I've been using git for source code management for over a year now and I'm totally hooked. I won't rave about all the usual reasons WhyGitIsBetterThanX since it's been done already. Instead, I'm going to share how I use git for easy agile development. The basic idea is to never do anything in the master branch except use it to move changes between the remote repo and local branches. Keeping master clean takes very little effort and will save your bacon when you get into trouble. The example I'll use here is working on a story to render title text in a bold style on a page.
By Joey Hess, Wikis are not just for encyclopedias and Web sites anymore. You can use Ikiwiki in combination with your revision control system to handle issue tracking, news feeds, and other needs of a software project. The wiki can make your bug reports as much a part of your software project as its code, with interesting results. Ikiwiki is a wiki engine with a twist. It's best described by the term "wiki compiler". Just as a typical software project consists of source code that is stored in revision control and compiled with make and gcc, an ikiwiki-based wiki is stored as human editable source in a revision control system, and built into HTML using ikiwiki. Ikiwiki uses your revision control system to track changes and handle tasks such as rolling back changes and merging edits.
PMPU is oriented around the typical "Push / Pull" workflow of distributed SCMs; as such it is designed to make it easy to see what changes are arriving from remote repositories and what changes are due to be pushed upstream. It also has support for creating changeset bundles and for importing both bundles and patches; these are primarily useful when interacting with the development process via e-mail. Rather than re-invent the wheel, PMPU can make use of external history views and commit tools. For mercurial repositories, I recommend the 'hgk' or hgview viewers and the excellent Qct commit tool.
Emacs Starter Kit This should provide a saner set of defaults than you get normally with Emacs. It’s intended for beginners, but it should provide a reasonable working environment for anyone using Emacs for dynamic languages. The main advantage of the Starter Kit is that it provides better default settings and bundles many useful libraries. The latest version is at http://github.com/technomancy/emacs-starter-kit/