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...@daniel.shahaf.name>
发送时间: 2020年3月23日 14:25
收件人: 钱海远(Nathan) <qianhaiy...@hikvision.com>
抄送: users@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>

Reply via email to