[svk-users] vendor branch management

Jesse Vincent jesse at bestpractical.com
Mon Feb 11 07:53:05 EST 2008


On Feb 9, 2008, at 3:35 PM, Faisal N Jawdat wrote:

> so say i have a project that relies on various vendor libs and i have
> it laid out like this
>
> / <- project top level dir
>   foo/ <- my code
>   bar/ <- my code
>   vendor <- dir for other people's code
>     baz/ <- other people's code
>     foo2/ <- other people's code
>
> and baz and foo2 are accessible via svn checkouts.
>
> normally i could use svn externals to get to those, but i want a
> little more control over which svn version to get, whether to
> automatically take updates, etc.
>
> i've been using piston (http://piston.rubyforge.org/), but they
> suggest that one can use svk for this.  piston basically manages
> exporting a specific version to your local branch, and then lets you
> update it.  the version you export is committed locally, so if you
> update to a new version and find problems you can just stay with the
> current version.
>
> how would one replicate this sort of behavior in svk?

So, What I'd probably do is this:

svk mkdir //mirror
svk mirror http://otherproj1.com/svn/baz   //mirror/baz
svk mirror http://otherproj2.com/svn/foo2   //mirror/foo2

svk sync -a


svk mkdir //local
svk mkdir //local/myproject
svk mkdir //local/myproject/vendor
svk cp //mirror/baz  //local/myproject/vendor/baz
svk cp //mirror/foo2  //local/myproject/vendor/foo2

When you want to update foo2 from the upstream branch:

svk sync //mirror/foo2
svk smerge //mirror/foo2 //local/myproject/vendor/foo2


Best,
Jesse



More information about the svk-users mailing list