Svn diff export. Think exploded .patch. Performs an svn diff (between two branches), svn export and zip to create a release archive with only delta files. Take a baseline export to another tag.
Java
Pull request Compare This branch is 9 commits ahead of philipgloyne:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
releases/1.0
src/com/primed/sde
test/com/primed/sde
.classpath
.gitignore
.project
LICENSE.txt
README.txt

README.txt

---------------
Svn Diff Export
---------------

Date: June 2010, January 2011
By: Greg Haygood (ghaygood at gmail [dot] com)

My workflow required a different combination of the below steps, where I wanted to specify 
the set of commit numbers at once and get back the zip file(s) I needed to deploy.  So I
modified Philip's code to chain these all together, pulling the SVN repository information
from a .properties file in the current folder.  I also needed this to run on Windows, so
doing everything within the Java program made it more portable.

- Added support to pipeline all operations to yield a single zip file containing all changes
- Also added support for passing multiple commit numbers individually (separated by commas) 
and by range (separated by dashes) 

BASED ON CODE FROM
------------------
Date: 25-JAN-2010
Author: Philip Gloyne (philip.gloyne@gmail.com)

ABOUT
-----
Patch a baseline svn export to a newer branch. Allows a user to chain multiple svn commands: 
	
	svn diff --summarize | svn export <each file> | zip <dir>


WHY?
----
We use it to patch a large deployed project on a server we can't directly export to.


EXAMPLE USAGE:
--------------
Can be found in releases/1.0/svn-diff-export.bat.example


COMMANDS:
---------

* Create a diff.patch file
java -jar svn-diff-export-1.0.jar diff <old-branch-url> <new-branch-url> <diff-file>

* Export each of the files described in the diff.patch to a target directory
java -jar svn-diff-export-1.0.jar export <diff-file> <old-branch-url> <new-branch-url> <target-dir>

* Create a revision file (usually in a public folder - we put ours next to robots.txt)
java -jar svn-diff-export-1.0.jar revision <new-branch-url> <revision-file-full-path>

* Create a .zip of the 'export' folder to push to the server
java -jar svn-diff-export-1.0.jar zip <directory-to-zip>

* Create a single .zip of multiple commit numbers
java -jar svn-diff-export-1.0.jar export_zip <commit numbers>

* Create a .zip of each commit number in a set
java -jar svn-diff-export-1.0.jar export_zips <commit numbers>

TODO
----
Unit tests. Tidy up docs.





GREG'S FORK
-----------

Added export_zip option to do everything in one step, pulling based on a
revision number from a single branch instead of a tagged branch.

Create an export-REVISIONNUMBER.zip of the exported files
java -jar svn-diff-export-1.0.jar export_zip <branch-url> <revision-number>

GREG'S TODOS
------------
Reuse Philip's classes where it makes sense, to reduce the duplication.