[sword-devel] Expanded keywords committed in the tree

Dmitrijs Ledkovs dmitrij.ledkov at ubuntu.com
Tue Apr 27 19:50:50 MST 2010

Forget the patch. I found the problem.

in the trunk checkout do:

$ svn proplist -R  -v | grep keywords -C 1

Properties on 'examples/classes/ciphercng.cpp':
    author date id


Notice that generally you have only "author date id" enabled.

$ svn proplist -R  -v | grep keywords -C 1 | grep -i " rev" -C 2
Properties on 'utilities/osis2mod.cpp':
    Author Date Id Rev

That's the whole output. The Rev keyword is enabled only for osis2mod.cpp

But the actual Rev property is set on a few files:

$ grep --exclude-dir=.svn \$Rev -r .
./utilities/mod2imp.cpp:	fprintf(stderr, "\n=== mod2imp (Revision
$Rev: 2234 $) SWORD module exporter.\n");
./utilities/osis2mod.cpp:	static const char* revision = "<milestone
type=\"x-importer\" subType=\"x-osis2mod\" n=\"$Rev: 2502 $\"/>";
./utilities/osis2mod.cpp:	fprintf(stderr, "You are running osis2mod:
$Rev: 2502 $\n");
./utilities/tei2mod.cpp:	fprintf(stderr, "You are running %s: $Rev:
2138 $\n", argv[0]);
./utilities/imp2vs.cpp:	fprintf(stderr, "\n=== imp2vs (Revision $Rev:
2234 $) SWORD Bible/Commentary importer.\n");
./utilities/imp2vs.cpp:		"$$$Rev.0.0 for intro of the Book of
Revelation of John.  $$$[ Module Heading ]\n"
./configure.ac:AC_REVISION($Revision: 1.45 $)
./bindings/swig/package/configure.ac:AC_REVISION($Revision: 1.2 $)

Note that only osis2mod.cpp is correct substituion. The rest are bogus.

$ grep \$Rev configure.ac
AC_REVISION($Revision: 1.45 $)
dmitrij at surgut:~/src/sword/svn$ svn info configure.ac | grep Revision
Revision: 2515

I believe that we got to this state due to ability to do propset in
the working copy, or globally on the server:

> propset (pset, ps): Set the value of a property on files, dirs, or revisions.
> usage: 1. propset PROPNAME PROPVAL PATH...
>      2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
>   1. Changes a versioned file or directory property in a working copy.
>   2. Changes an unversioned property on a repository revision.
>      (TARGET only determines which repository to access.)

So after doing this in my working copy: $ svn propset svn:keywords
"Author Date Id Rev Url" -R .
All keywords are correctly collapsed and would be committed as $Id$ ,
$Rev$ etc instead of bogus old expanded values.

But to fix this on the server and for everyone who checkouts please do:

propset svn:keywords --revprop -r ??? "Author Date Id Rev Url"

Now if you do this for the repository root everything should be
tip-top ;-) I'm not an expert in svn so i don't know whether you have
to specify revision "-r NNN". I guess you should apply this property
from "-r 1" for the whole repository but then it will mean that you
are rewriting history cause libsword releases out there are reporting
"You are running release $Rev: bogus$".


More information about the sword-devel mailing list