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

Re: svn commit: rev 2706 - trunk/subversion/clients/cmdline

From: Nuutti Kotivuori <naked_at_iki.fi>
Date: 2002-07-25 23:07:41 CEST

cmpilato@tigris.org wrote:
> void *val;
> - char action;
> char *actionstr;
> -
> + svn_log_changed_path_t *log_item;
> apr_hash_this(hi, (void *) &path, NULL, &val);
> - action = (char) ((int) val);
> + log_item = val;
>
> - actionstr = apr_psprintf (pool, "%c", action);
> - /* <path action="X">xxx</path> */
> - svn_xml_make_open_tag (&sb, pool, svn_xml_protect_pcdata, "path",
> - "action", actionstr, NULL);
> + actionstr = apr_psprintf (pool, "%c", log_item->action);
> + if (log_item->copyfrom_path
> + && SVN_IS_VALID_REVNUM (log_item->copyfrom_rev))
> + {
> + /* <path action="X" copyfrom-path="aaa" copyfrom-rev="> */
> + svn_stringbuf_t *escpath = svn_stringbuf_create ("", pool);
> + svn_xml_escape_nts (&escpath, log_item->copyfrom_path, pool);
> + revstr = apr_psprintf (pool, "%" SVN_REVNUM_T_FMT,
> + log_item->copyfrom_rev);
> + svn_xml_make_open_tag (&sb, pool, svn_xml_protect_pcdata, "path",
> + "action", actionstr,
> + "copyfrom-path", escpath->data,
> + "copyfrom-rev", revstr, NULL);
> + }
> + else
> + {
> + /* <path action="X"> */
> + svn_xml_make_open_tag (&sb, pool, svn_xml_protect_pcdata, "path",
> + "action", actionstr, NULL);
> + }
> + /* xxx</path> */
> svn_xml_escape_nts (&sb, path, pool);
> svn_xml_make_close_tag (&sb, pool, "path");
> }

I don't like the schema at all. Consider:

<paths>
  <path action="A" copyfrom-path="trunk/subversion/clients/cmdline/log-cmd.c"
  copyfrom-rev="1234">trunk/subversion/clients/cmdline/foobar.c</path>
</paths>

and:

<paths>
  <path action="M">trunk/subversion/clients/cmdline/foobar.c</path>
</paths>

The usage of attributes versus content is quite inconsistent.

I have three alternatives:

<paths>
  <action type="A">
    <path>
      trunk/subversion/clients/cmdline/foobar.c
    </path>
    <copyfrom revision="1234">
      trunk/subversion/clients/cmdline/log-cmd.c
    </copyfrom>
  </action>
</paths>

<paths>
  <action type="A">
    <path>
      trunk/subversion/clients/cmdline/foobar.c
    </path>
    <copyfrom>
      <revision>1234</revision>
      <path>
        trunk/subversion/clients/cmdline/log-cmd.c
      </path>
    </copyfrom>
  </action>
</paths>

<paths>
  <action
    type="A"
    copyfrom-rev="1234"
    copyfrom-path="trunk/subversion/clients/cmdline/log-cmd.c"
    path="trunk/subversion/clients/cmdline/foobar.c" />
</paths>

Ofcourse more permutations can be thought up.

The last one is probably the one that most directly matches the way
normal log works - all others seem to suggest that there may be
something more on the way.

...not that anyone else would be using the --xml options for anything
;)

-- Naked

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jul 25 23:09:17 2002

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.