On Aug 28, 2012, at 15:57, "Q. Chap" wrote: > When I merge the updates from "/vendor/libcomplex/2.0" to my project > trunk/branch I will have many updated files in that working copy prior to > commit. > > Most of these updates I'd like to accept as-is, because they reflect the > vendor's changes. However, I'd like carefully examine the files that I've > previously patched just to ensure things still make sense or are required. > (Even if SVN can "successfully" merge the changes.) > > What command(s) should I use to bring in the "libcomplex/2.0" changes but > identify the all files I ever messed with?
These are two separate operations. Merging is as in the book: $ cd working-copies/calc $ svn merge ^/vendor/libcomplex/1.0 \ ^/vendor/libcomplex/current \ libcomplex … # resolve all the conflicts between their changes and our changes $ svn commit -m "merging libcomplex-1.1 into the main branch" … In fact I prefer to be explicit about what I'm merging, so if I'm upgrading my copy of the code from 1.0 to 2.0 then I do: $ svn merge ^/vendor/libcomplex/1.0 \ ^/vendor/libcomplex/2.0 \ libcomplex And if you want to figure out what files you've modified in your copy of the code, that's a different separate command. Assuming you originally copied libcomplex 1.0 into your "calc" project as the book shows: $ svn copy http://svn.example.com/repos/vendor/libcomplex/1.0 \ http://svn.example.com/repos/calc/libcomplex \ -m "bringing libcomplex-1.0 into the main branch" And then subsequently modified your copy in "calc" in some way and committed those changes, you can see which files you changed using this command: $ svn diff --summarize \ http://svn.example.com/repos/vendor/libcomplex/1.0 \ http://svn.example.com/repos/calc/libcomplex If you want to see the actual diffs, not just the names of the files, omit the --summarize flag.