diff --git a/source/vcpp/buildEnv/get-patch.ps1 b/source/vcpp/buildEnv/get-patch.ps1 new file mode 100644 index 00000000..352e3fed --- /dev/null +++ b/source/vcpp/buildEnv/get-patch.ps1 @@ -0,0 +1,23 @@ +function get-patch +{ + param($from, $to); + # get diff summary as XML + [xml] $summary = (svn diff $to $from -x --ignore-eol-style --xml --summarize); + # loop through all diff/paths/path nodes + # each node represents a modified/new file + foreach($item in $summary.diff.paths.path) + { + # the SVN url + $url=$_."#text"; + # the relative filename + $file=($_."#text".Substring($to.Length)); + # the parent directory + $dir=($file | split-path -parent); + # create parent directory if it doesn't exist already + if((test-path $dir) -eq $false) { mkdir $dir -force}; + # export current files from the SVN repository + svn export $url $file + } + # package the current dir (.) into patch.zip + sevenzip.exe a patch.zip . +} \ No newline at end of file