[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

答复: Svnadmin dump with include will lost the svn:log in sometime

From: Nathan <qianhaiyuan_at_hikvision.com>
Date: Mon, 23 Mar 2020 07:02:53 +0000

Thankyou. Waiting for your good news.

Best Regards!
Haiyuan Qian
R & D Management Group
Hangzhou Hikvision Digital Technology Co.,Ltd
No.555 Qianmo Road, Binjiang District, Hangzhou 310052, China
M (86)18969199712

本邮件及其附件含有海康威视公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
This e-mail and its attachments contain confidential information from HIKVISION, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

-----邮件原件-----
发件人: Daniel Shahaf <d.s_at_daniel.shahaf.name>
发送时间: 2020年3月23日 14:25
收件人: 钱海远(Nathan) <qianhaiyuan_at_hikvision.com>
抄送: users_at_subversion.apache.org
主题: Re: Svnadmin dump with include will lost the svn:log in sometime

钱海远(Nathan) wrote on Mon, 23 Mar 2020 05:56 +0000:
> The version is 1.10.6 , I was try to reproduce this issue.
>
> You can make a commit like this :
> Revision 1
> A /test
> A /Test/a.c
> A /another
> A /another/b.c
>
> Revision 2
> M /test/a.c
> M /another/b.c
>
> Then run command : svnadmin dump svnroot include "/test"
>
> Then it will happen.

Thanks, I can reproduce this with current trunk:

[[[
% svnadmin create r
% svnmucc -U file://$PWD/r mkdir foo mkdir bar put =(:) foo/iota put =(:) bar/kappa -mm % svnadmin dump r --include=/foo | grep -B1 -A2 svn:log
* Dumped revision 0.
* Dumped revision 1.
% svnadmin dump r | grep -B1 -A2 svn:log
* Dumped revision 0.
K 7
svn:log
V 1
m
* Dumped revision 1.
%
]]]

I agree it makes sense to keep the log message, at least as an option.

I'll reopen SVN-4850 in a minute.

As to the cause, I stand corrected: it's indeed due to authz, exactly as you said:

[[[
(lldb) n
Process 24108 stopped
* thread #1, name = 'svnadmin', stop reason = step over
    frame #0: 0x00007ffff7f9ba21 libsvn_repos-1.so.0`svn_repos_fs_revision_proplist(table_p=0x00007fffffffdd80, repos=0x00007ffff7deb4c0, rev=1, authz_read_func=(libsvn_repos-1.so.0`dump_filter_authz_func at dump.c:2010), authz_read_baton=0x00007fffffffdf50, pool=0x00007ffff66a7028) at fs-wrap.c:514
   511 authz_read_func, authz_read_baton,
   512 pool));
   513
-> 514 if (readability == svn_repos_revision_access_none)
   515 {
   516 /* Return an empty hash. */
   517 *table_p = apr_hash_make(pool);
(lldb) p readability
(svn_repos_revision_access_level_t) $0 = svn_repos_revision_access_partial ]]]

authz was set up internally by svn_repos_dump_fs4():

[[[
  2083 /* We use read authz callback to implement dump filtering. If there is no
  2084 * read access for some node, it will be excluded from dump as well as
  2085 * references to it (e.g. copy source). */
  2086 if (filter_func)
  2087 {
  2088 authz_func = dump_filter_authz_func;
  2089 authz_baton.filter_func = filter_func;
  2090 authz_baton.filter_baton = filter_baton;
  2091 }
  2092 else
  2093 {
  2094 authz_func = NULL;
  2095 }
]]]

Nevertheless, we can't just make svn_repos_fs_revision_proplist() include svn:log; that would make svnserve and mod_dav_svn expose information that currently they do not.

I'm not sure what the easiest way to fix this is…

Cheers,

Daniel

________________________________
CONFIDENTIALITY NOTICE: This electronic message is intended to be viewed only by the individual or entity to whom it is addressed. It may contain information that is privileged, confidential and exempt from disclosure under applicable law. Any dissemination, distribution or copying of this communication is strictly prohibited without our prior permission. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering the message to the intended recipient, or if you have received this communication in error, please notify us immediately by return e-mail and delete the original message and any copies of it from your computer system. For further information about Hikvision company. please see our website at www.hikvision.com<http://www.hikvision.com>
Received on 2020-03-23 08:03:06 CET

This is an archived mail posted to the Subversion Users mailing list.