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

Modification to subversion to support information currency issuance - feedback requested

From: J. Patrick Bedell <jpb_at_infoeng.org>
Date: 2005-12-11 05:51:57 CET

Hello,

         I'm sending in this email the modification that I have made to the
subversion command-line client and libsvn_client (which I'm referring to
as information currency svn or icsvn). I haven't written any
documentation, and the code might run the risk of creating a BFI (bad
first impression :), but I'm sending it in hopes of getting feedback (and
perhaps even cooperation :).

         The functionality of the patch is to generate information currency
from the changeset resulting from a source code commit. The functionality
is implemented by a modification to subversion/svn/commit-cmd.c that calls
a function, svn_client_issuance(), that is implemented in
subversion/libsvn_client/issuance.c (a new file). I've also modified
configure.in to look for the LibXML and XMLSec libraries necessary to
use the XML digital signature functionality that is required for the
current implementation. In order to enable the new functionality, pass
the --enable-certification flag to configure. You must have the file
icsvn in your ~/.subversion directory (i.e. ~/.subversion/icsvn) for the
issuance to proceed. If that configuration file is absent, the issuance
function quietly returns without processing the changeset.

         Information currency is a generic term for economic instruments
representing "something like" property titles for information, which can
be traded between market participants to enable a new form of economic
calculation and economic incentives for the creation and management of
information. I have implemented and released the Information Currency Web
Services system, which accepts specific XML messages signed with an
authorized key and returns economic instruments representing the
information. A description of the document formats and operations
involved in information currency can be found at
http://infoeng.sf.net/information-currency-rfc.txt, and the latest release
of the ICWS server is at
http://prdownloads.sf.net/infoeng/icws-0.1.9.1.tar.gz .

         I describe a use case below... hopefully I won't take too much
space in your mailbox with this email, and hopefully you'll forgive if I
do. :) Thanks for your work on subversion!

         Patrick
         jpb@infoeng.org

Description of information currency subversion usage follows:

   I make a modification to two files in my working copy directory, and
then commit the changes. The diff corresponding to the changeset is

-=-=-=-=-=-=- begin diff representation -=-=-=-=-=-=-=-

Index: testsource.c
===================================================================
--- testsource.c (revision 89)
+++ testsource.c (revision 90)
@@ -9,7 +9,7 @@
     ZRHauFMI vMI YhMIalR Mv Fg

  vmB Xm MFiXYVb YtVmiraXYmt? IvmfSL FpfYdaSFtX mV 'LYVV -fiE' DF fIFL
-uq XyqwcWh HeWhyEchy kqy fcepEh GhyuckcGaucqe Xhy Gqvvcu, qy fFqHEW
+This is the changed line in testsource.c.
  AawI sjgA tA wATmjsjAS?

    dJKqoh EhjZJnJEaZJmK Zm zhqJK MJZl
Index: secondsrc.c
===================================================================
--- secondsrc.c (revision 89)
+++ secondsrc.c (revision 90)
@@ -75,7 +75,7 @@

  OVbvb avb XVb jSggaBhI QB jSggQX.j obvJSvgbh?

-GCdGx wqt MGn vMztath aYc Gnqau vMztath
+This is the changed line in secondsrc.c.

  bnvJnv Cnvuhvyb DEn MnvDgugMaDghU hu DEn bhFvMn MhAn aUA DvaUbygDb
  xCENOy yI VOlCHy, AtlVt VxCayCE a UlOC EsCVlUlVaOOW UIx ytC
-=-=-=-=-=-=- end diff representation -=-=-=-=-=-=-=-

         In order to produce a digest representation of each file's diff,
the text from the "---" indicating the original file up to the "Index:"
line for the next file is digested, producing the Base64-encoded digest
values 34oAHCDUEPpxVJ5K5wOwNsKvYCs= (for the testsource.c diff) and
sMOF10K/VhyZZBXoMUyzjX9FrQA= (for the secondsrc.c diff).
         These digest values are used to create the following rdf
describing the patch:

<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:in="http://infoeng.org/2005/10/infoeng#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description
rdf:about="file:///opt/svn/testrepository/testsource.c?changeset=89">
<in:SHA1DigestValue>34oAHCDUEPpxVJ5K5wOwNsKvYCs=</in:SHA1DigestValue>
</rdf:Description>
<rdf:Description
rdf:about="file:///opt/svn/testrepository/secondsrc.c?changeset=89">
<in:SHA1DigestValue>sMOF10K/VhyZZBXoMUyzjX9FrQA=</in:SHA1DigestValue>
</rdf:Description>
<rdf:Description rdf:about="file:///opt/svn/testrepository?changeset=89">
<dc:date>2005-12-11T03:21:55.946548Z</dc:date>
<dc:creator>jpb</dc:creator>
</rdf:Description>
</rdf:RDF>

         This rdf is used as the underlier for an issuance request that is
transmitted to https://leucine.infoeng.org:8443/icws/services/ICWS to
generate the information currency series attached to this email as
ics-VeXFK7 and series-info-VeXFK7.

         The patch above and the source tree are simply for testing.
However, if the source code corresponded to an economically important
software system (such as subversion :), and the patch was an important
addition to the source tree, individuals or organizations wishing to
incentivize the improvement of that software could purchase the
information currency corresponding to the patch.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Sun Dec 11 05:41:31 2005

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