C. Michael Pilato wrote: > Ryan Schmidt wrote: >>> Did I miss something in the original problem description? Is that precisely >>> what is being attempted here and yet it's not working? >> That is my understanding: >> >> On Fri, 2010-02-26 at 22:15 -0800, Alexey Neyman wrote: >>> It seems that I encountered a bug in 'svnlook pl --revprop': it fails with >>> the following message: >>> >>> $ svnlook pl --revprop -t 10547-86b /svn/test-svn >>> svnlook: Invalid revision number '-1' >> I can replicate this error message with svn 1.6.9 on Mac OS X. "svnlook >> pl -t" works fine, but "svnlook pl --revprop -t" complains that revision >> number >> '-1' is invalid, though I specified a correct in-progress transaction number. > > Okay -- sorry for the noise, then. That was my fault for not parsing the > conversation correctly. > > Yes, this I believe this is a bug. (I'll even grant that using an option > named "--revprops" does nothing for the illusion that revisions aren't > really just "special transactions".)
I think the attached patch fixes this, and I plan to commit as much after some more testing. -- C. Michael Pilato <cmpil...@collab.net> CollabNet <> www.collab.net <> Distributed Development On Demand
* subversion/svnlook/main.c (do_plist): Correctly handle invocations of 'svnlook plist --revprop' when used with '-t TXN_NAME' instead of '-r REV'. Reported by: Alexey Neyman <stilor{_AT_}att.net> --This line, and those below, will be ignored-- Index: subversion/svnlook/main.c =================================================================== --- subversion/svnlook/main.c (revision 916775) +++ subversion/svnlook/main.c (working copy) @@ -1685,11 +1685,16 @@ SVN_ERR(verify_path(&kind, root, path, pool)); SVN_ERR(svn_fs_node_proplist(&props, root, path, pool)); } - else + else if (c->is_revision) { SVN_ERR(svn_fs_revision_proplist(&props, c->fs, c->rev_id, pool)); revprop = TRUE; } + else + { + SVN_ERR(svn_fs_txn_proplist(&props, c->txn, pool)); + revprop = TRUE; + } if (xml) { @@ -1703,8 +1708,16 @@ if (revprop) { /* "<revprops ...>" */ - svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "revprops", - "rev", revstr, NULL); + if (c->is_revision) + { + svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "revprops", + "rev", revstr, NULL); + } + else + { + svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "revprops", + "txn", c->txn_name, NULL); + } } else {
signature.asc
Description: OpenPGP digital signature