Skip to content

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.

License

Notifications You must be signed in to change notification settings

greghaygood/svn-diff-export

 
 

Repository files navigation

---------------
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.

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%