On Fri, Feb 26, 2010 at 09:49:56PM -0800, Jeff Mott wrote:
> I've recently needed to track changes for vendor code drops, so I read
> the SVN book's vendor branches chapter. But I'm not entirely happy
> with part of the procedure, so I'd like to talk it out and, I hope,
> find a better way.
>
> The part I hope to improve is when I have a versioned code drop in the
> /vendor directory, then the vendor provides a new code drop. The SVN
> book suggests that I should copy the new files over top of the files
> in my working copy. Then I need to SVN add and delete as needed. I saw
> there's a script to ease this process, but I still feel that this
> should be easier.
>
> It seems to me that comparing two trees, even unrelated trees, is
> something SVN is very good at.
In some way, yes. In some ways, no :)
What it cannot do (and that is a major problem) is that it cannot
reliably compare a working copy to a URL in the repository.
It can however reliably compare URLs to URLs.
> So if I have /vendor/code-drop-v1 and
> /vendor/code-drop-v2, then it seems SVN should be able to derive the
> changes between the two and apply those changes to my working copy.
>
> Can I do this?
Yes, you can do a 2-URL merge:
cd working-copy
svn update # straighten potentially mixed-revision working copy
svn merge ^/vendor/code-drop-v1 ^/vendor-code-drop-v2 .
This says "merge the difference between code-drop-v1 and code-drop-v2
into my working copy".
The dot at the end is implied if you don't specify it.
However, beware of renames the vendor made which affects files that
you were modifying. Double-check that these files contain the correct
content at their new location.
Also note that importing a new vendor drop to a different URL than
the old one will waste some disk space, unless you enable "rep-sharing"
(see the file db/fsfs.conf in the repository).
Stefan
Received on 2010-02-27 13:01:15 CET