On Wed, Aug 29, 2012 at 7:51 AM, Ryan Schmidt
<[email protected]> wrote:
>
> On Aug 28, 2012, at 17:56, Q. Chap <[email protected]> wrote:
>
>>
>>>>
>>>> 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.
>>>
>>> [snip]
>>>
>>> $ svn merge ^/vendor/libcomplex/1.0 \
>>> ^/vendor/libcomplex/2.0 \
>>> libcomplex
>>>
>>> [snip]
>>>
>>> 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
>>>
>>>
>>
>> Thank you for the help.
>>
>> It's that last diff command that comes too late for my taste, though.
>
> You can run the diff command at any time that's convenient for you.
>
> As I wrote it above, it shows the changes between version 1.0 of the vendor
> code and the version of the vendor code committed to the "calc" project in
> the repository.
>
>
>> I'd like to avoid checking in the "libcomplex/2.0"->project merge before
>> doing a review.
>
> Sure. In fact, as I wrote it above, the command would not give correct output
> if you had already committed the merge. If you had committed the merge
> already, then you'd want to compare the original 2.0 code (not the original
> 1.0 code) with your code.
>
>
>> Ideally, after the merge (but before commit) I'd like to be able to run a
>> command like:
>> "svn diff --show-patches-to-vendor-code"
>>
>> Output: list of lib files that I've changed at any point since the previous
>> vendor drop.
>>
>> Could I do something like diff the (pre commit) project working copy against
>> "^/vendor/libcomplex/2.0"?
>
> Yes that sounds fine. Something like:
>
> $ svn diff --summarize \
> http://svn.example.com/repos/vendor/libcomplex/1.0 \
> path/to/workingcopyofcalc/libcomplex
I think that last command needs the 2nd form of 'svn diff' syntax,
because you're comparing an (arbitrary) url with a working copy path:
[[[
diff (di): Display the differences between two revisions or paths.
usage: 1. diff [-c M | -r N[:M]] [TARGET[@REV]...]
2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \
[PATH...]
3. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
]]]
So that would be:
$ svn diff --summarize \
--old=http://svn.example.com/repos/vendor/libcomplex/1.0 \
--new=path/to/workingcopyofcalc/libcomplex
--
Johan