This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
R. Tyler Ballance (author)
Tue Jan 06 22:58:15 -0800 2009
commit 875189f3d13a05fc2f922e37640ceebd6753422d
tree 8a0cfdf4dd0a68fe5d89d87b2bf402c66e7ec27a
parent d571147ef869f99016e892ab2b17bc8121db3421
tree 8a0cfdf4dd0a68fe5d89d87b2bf402c66e7ec27a
parent d571147ef869f99016e892ab2b17bc8121db3421
| name | age | message | |
|---|---|---|---|
| |
LICENSE | ||
| |
README | ||
| |
davgit.py | ||
| |
multipull.py | ||
| |
post-commit.py | ||
| |
post-receive.py | ||
| |
svnpull.sh |
README
_ _
/\ | | | |
/ \ | |__ ___ _ _| |_
/ /\ \ | '_ \ / _ \| | | | __|
/ ____ \| |_) | (_) | |_| | |_
/_/ \_\_.__/ \___/ \__,_|\__|
--------------------------------
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 <tyler@slide.com>
_ _ _
| | | | |
_____ ___ __ _ __ _ _| | | ___| |__
/ __\ \ / / '_ \| '_ \| | | | | | / __| '_ \
\__ \\ 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








