Hi,
Please take a look at the following simple example. AFAICS there is a
problem in how merge information is handled in 'annotate -g' and 'log -g'.
Suppose I have a repository that consist of just one file '/trunk/test.txt'.
It contains 10 lines and each of them is just one letter from 'A' to 'J'.
First I create a branch by copying /trunk/test.txt to /branches/br/test.txt
Then I edit line 'C' on the trunk as user u_e_tr_02_03
Then I edit line 'D' on the branch as user u_e_br_03_04
Then I merge trunk to branch as user u_m_tr_br_05
Then I reintegrate branch to trunk as user u_m_br_tr_06
Now if I do svn log -g then:
- on both trunk and branch the sorting of the log records is strange i.e.
neither by time nor by revision
- rev. 3 on trunk is reported twice - first as a result of merge - "Merged
via: r6, r5" (strange), and then as a result of check in on the
trunk (correct).
- rev.2 on trunk is reported as - "Merged via: r6" while it was a point of
branching (strange).
If I run svn annotate -g then:
- annotation on the trunk - correct
- annotation on the branch: line 'C' is not reported as a merge result
(i.e. no 'G') also revision number and author both wrong too (i.e. they
refer to the revision when the merge was done).
The attached script reproduces this problem when run with parameter 1.
There is also another test in this script which is run if parameter is 2. It is
a little bit more complicated, i.e. more edits and one more merge to branch
before reintegrating. In this case the annotation on the trunk is wrong as
well.
Am I doing merges wrong or misunderstand how merge info should be
used in these cases or there is really a bug here?
Regards,
Mikhail
--
Mikhail Terekhov
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2415818
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-11-09 16:53:06 CET