Hi Ben,
Two questions on this patch:
1) The utility main.merge_notify_line() checks the new merge range
notifications when merging to a file target. But we don't check the
notifications when merging into a directory (i.e.
actions.run_and_verify_merge/run_and_verify_merge2() simply doesn't take
them into account). So the new code in do_merge() is never actually
tested. Did you look into making run_and_verify_merge() handle this?
2) In the case where a merge updates *only* svn:mergeinfo, we still
print the range notifications, but nothing after them. For example:
>svn st -uv merge_tests-1
5 5 jrandom merge_tests-1\A\B\E\beta
1 1 jrandom merge_tests-1\A\B\E\alpha
1 1 jrandom merge_tests-1\A\B\E
1 1 jrandom merge_tests-1\A\B\lambda
1 1 jrandom merge_tests-1\A\B\F
1 1 jrandom merge_tests-1\A\B
1 1 jrandom merge_tests-1\A\D\G\pi
4 4 jrandom merge_tests-1\A\D\G\rho
1 1 jrandom merge_tests-1\A\D\G\tau
1 1 jrandom merge_tests-1\A\D\G
6 6 jrandom merge_tests-1\A\D\H\omega
3 3 jrandom merge_tests-1\A\D\H\psi
1 1 jrandom merge_tests-1\A\D\H\chi
1 1 jrandom merge_tests-1\A\D\H
1 1 jrandom merge_tests-1\A\D\gamma
1 1 jrandom merge_tests-1\A\D
1 1 jrandom merge_tests-1\A\mu
1 1 jrandom merge_tests-1\A\C
1 1 jrandom merge_tests-1\A
2 2 jrandom merge_tests-1\A_COPY\B\E\alpha
7 7 jrandom merge_tests-1\A_COPY\B\E\beta
2 2 jrandom merge_tests-1\A_COPY\B\E
2 2 jrandom merge_tests-1\A_COPY\B\F
2 2 jrandom merge_tests-1\A_COPY\B\lambda
2 2 jrandom merge_tests-1\A_COPY\B
2 2 jrandom merge_tests-1\A_COPY\mu
2 2 jrandom merge_tests-1\A_COPY\C
2 2 jrandom merge_tests-1\A_COPY\D\gamma
M 2 2 jrandom merge_tests-1\A_COPY\D\G
2 2 jrandom merge_tests-1\A_COPY\D\G\pi
M 2 2 jrandom merge_tests-1\A_COPY\D\G\rho
2 2 jrandom merge_tests-1\A_COPY\D\G\tau
2 2 jrandom merge_tests-1\A_COPY\D\H
2 2 jrandom merge_tests-1\A_COPY\D\H\chi
2 2 jrandom merge_tests-1\A_COPY\D\H\omega
2 2 jrandom merge_tests-1\A_COPY\D\H\psi
2 2 jrandom merge_tests-1\A_COPY\D
2 2 jrandom merge_tests-1\A_COPY
1 1 jrandom merge_tests-1\iota
1 1 jrandom merge_tests-1
Status against revision: 7
>svn pl -vR merge_tests-1
Properties on 'merge_tests-1\A_COPY':
svn:mergeinfo : /A:1
Properties on 'merge_tests-1\A_COPY\B\E\beta':
svn:mergeinfo : /A/B/E/beta:1,5
Properties on 'merge_tests-1\A_COPY\D\G':
svn:mergeinfo : /A/D/G:1,4
# Perform a merge which makes no changes to the WC
>svn merge %URL%/A merge_tests-1\A_COPY -r3:5
--- Merging revision 4:
--- Merging revision 5:
--- Merging revisions 4-5:
I suppose this is better than what we did before, which was no output
and a 'silent' change to the svn:mergeinfo props. At least it looks
like something is happening now! So I suppose this is less of a
question and just more of an observation.
Paul
> -----Original Message-----
> From: sussman@tigris.org [mailto:sussman@tigris.org]
> Sent: Thursday, May 31, 2007 11:09 PM
> To: svn@subversion.tigris.org
> Subject: svn commit: r25249 - in trunk/subversion: include
> libsvn_client libsvn_wc svn tests/cmdline tests/cmdline/svntest
>
> Author: sussman
> Date: Thu May 31 20:08:37 2007
> New Revision: 25249
>
> Log:
> Have 'svn merge' send a notification for each revision range merged.
>
> * subversion/include/svn_wc.h
> (svn_wc_notify_action_t): new 'svn_wc_notify_merge_begin' action.
> (svn_wc_notify_t): new 'merge_range' field to describe
> range being merged.
>
> * subversion/libsvn_wc/util.c
> (svn_wc_create_notify): have constructor explicitly NULL new field.
> (svn_wc_dup_notify): duplicate the new merge_range_t field.
>
> * subversion/libsvn_client/merge.c
> (do_merge, do_single_file_merge): send new merge_begin notification.
> also, use a subpool in
> the ranges loop.
>
> * subversion/svn/notify.c
> (notify): print the merge_begin notification, describe
> range being merged.
>
> * subversion/tests/cmdline/svntest/main.py
> (merge_notify_line): new utility func to return expected output line
> of new merge notification.
>
> * subversion/tests/cmdline/update_tests.py
> Use utility func anywhere we call 'merge' via run_and_verify_svn().
>
> * subversion/tests/cmdline/merge_tests.py
> Use utility func anywhere we call 'merge' via run_and_verify_svn().
>
>
>
> Modified:
> trunk/subversion/include/svn_wc.h
> trunk/subversion/libsvn_client/merge.c
> trunk/subversion/libsvn_wc/util.c
> trunk/subversion/svn/notify.c
> trunk/subversion/tests/cmdline/merge_tests.py
> trunk/subversion/tests/cmdline/svntest/main.py
> trunk/subversion/tests/cmdline/update_tests.py
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Jun 1 17:40:54 2007