diff --git a/README b/README new file mode 100644 index 0000000..0d2be0b --- /dev/null +++ b/README @@ -0,0 +1,53 @@ + _ _ + /\ | | | | + / \ | |__ ___ _ _| |_ + / /\ \ | '_ \ / _ \| | | | __| + / ____ \| |_) | (_) | |_| | |_ +/_/ \_\_.__/ \___/ \__,_|\__| +-------------------------------- + +These scripts are a collection of utilities we've written here at +Slide, Inc (http://www.slide.com) for improving our workflow with Git. + +Some of the scripts are in active use, while others have since been +deprecated (like davgit). + +If you have any questions about these feel free to contact the maintainer, +R. Tyler Ballance + + + _ _ _ + | | | | | + _____ ___ __ _ __ _ _| | | ___| |__ +/ __\ \ / / '_ \| '_ \| | | | | | / __| '_ \ +\__ \\ V /| | | | |_) | |_| | | |_\__ \ | | | +|___/ \_/ |_| |_| .__/ \__,_|_|_(_)___/_| |_| + | | + |_| +--------------------------------------------- + +The "svnpull.sh" is a script that we've used to help run a "hybrid" of +Git and Subversion at the same time while moving the company over to Git. + +At a high level, svnpull.sh is purely responsible for mashing the non-linear +Git revision history down in a format that is digestable for Subversion. What +this means in more technical terms is that commits in Git that are merged into +the "master" branch and pushed to the central repository will get propagated +into the "trunk" branch in Subversion by way of "squashed commits" + +For the reciprocal (Subversion-to-Git) we're using git-svn(1) in a relatively +straight-forward manner, + +To tie these two ends (Subversion-to-Git, Git-to-Subversion) we're using some +automated jobs set up in Hudson (http://hudson.dev.java.net). The first job +(Subversion-to-Git) polls trunk every 5 minutes using Hudson's SCM integration, +if there are new changes in trunk the job will execute: + % git-svn fetch && git merge git-svn && git push gitosis master + +On the other side, we're running the Git-to-Subversion job whenever a committer +pushes their changes up to the central Git master branch, this job executes: + % svnpull.sh gitosis master ; git checkout master + +For more details on this set up, see the following blog post: + http://unethicalblogger.com/posts/2008/10/git_back_subversion_mostly_automagically_part_33 +