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
         {

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to