On Fri, May 23, 2014 at 08:27:08AM +0100, Andreas Stieger wrote:
> > On 23 May 2014, at 01:08, David DL <ddl...@outlook.com> wrote:
> > If you don't use the client side tools, how can you maintain in-house 
> > changes against a series of vendor drops? 
> 
> By following the procedure: clean drops in /vendor/foo/current, tag releases 
> to /vendor/foo/N (1,2,3...). The diff between them can be merged.
> Copy current to trunk once. Your own modifications go there only. 
> For a merge the difference between N-1 and N into that, thus maintaining 
> in-house changes and bringing them together with releases.

In case the vendor is also using svn, you can even skip the branch
in your own repository, and merge from a branch or tags in the vendor's
repository directly, unless you really care about merge-tracking or
copyfrom history.

Quoting 'svn help merge':

    - Merging from foreign repositories -

  Subversion does support merging from foreign repositories.
  While all merge source URLs must point to the same repository, the merge
  target working copy may come from a different repository than the source.
  However, there are some caveats. Most notably, copies made in the
  merge source will be transformed into plain additions in the merge
  target. Also, merge-tracking is not supported for merges from foreign
  repositories.

Another approach which retains full vendor history is to svnadmin dump
the vendor repository (or a to-svn conversion thereof) and import
incremental dumps within a subtree in your repository using the
--parent-dir option of 'svnadmin load'. Then merge from there.

Reply via email to