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

Obliterate - milestone 1 reached: the most basic obliteration

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Thu, 28 Jan 2010 12:00:32 +0000

Hi, fans of "obliterate".

I am pleased to announce that a very restricted form of "svn obliterate"
is now working.

According to the plan
<http://svn.apache.org/repos/asf/subversion/trunk/notes/obliterate/plan-milestones.html>, I intended to get a simple kind of obliteration (last version of a node) working by the end of January. Something like this is working now. Let me explain exactly what the status is.

The present "svn obliterate" command in trunk (which is compiled in if
the macro SVN_WITH_EXPERIMENTAL_OBLITERATE is defined) can now remove a
file node from the head revision. Yes, only from the head revision,
which isn't much use in a busy repository, I know.

This is implemented only in BDB as yet; I am deferring FSFS support till
later because development for BDB is more efficient in terms of my
effort. I will update the plan to reflect this change.

The three attached text files show the changes that "svn obliterate"
makes to the BDB database, and are best viewed in a side-by-side diff
program such as vimdiff or kdiff3.

'bdb-before.txt' is the repository with 10 revisions, before
obliterating anything. 'bdb-after.txt' is that repository after
obliterating the files. 'bdb-simulated.txt' is a repository created in
the same was as the 'before' repository, except deleting the files just
before committing revision 10, thus ending up with the same repository
content that the obliteration is supposed to produce, only the various
ids in the database are different. Each file is a dump of the BDB
tables, as written out by obliterate_tests.py, and then hand-edited,
mainly to remove some redundant rows that are still in the database but
don't contribute to the active content of the repository.

Please take a look at the differences between these three files if you
will. I think they show two things.

(1) They show that the 'copies' information in the 'transactions' table
is not properly updated: the transaction still thinks it has a node that
is a copy (node-rev 'i.1.f' copied from '/f-mov/E_at_9'), but in fact that
node-rev was obliterated and so the copy information should be deleted
too.

(2) Even after hand editing, they show lots of redundant new table rows,
especially reps and strings:

  * unreferenced ones

  * rows identical to earlier existing ones

  * directory reps that have a string to represent an empty directory
instead of just no string.

(1) is a bug; (2) is room for optimization but not critical.

NEXT STEPS

More important than (1) and (2) is extending the support to obliterating
older revisions. My first step there is to make it adjust any immediate
successor (the same node id in the next revision) to take account of the
change. After that I will look at searching for all future copies of the
node, which is facilitated by the "successor-ids" table as implemented
in the "fs-successor-ids" branch.

Philip Martin has looked at an important angle of development which is
to obliterate a file's content rather than the existence of the node
itself. Deleting a file's content by replacing its content
representation in the DB can be done far less invasively (with far less
complexity of implementation) than removing a directory entry, and at
the same time this changes all successive revisions of the file and all
copies of it, which is often what the user wants. That provides an
efficient way of obliterating the same file across a large range of
revisions. However there are some difficulties with it. I will be
investigating how best to gain the advantages of that approach.

- Julian

revisions:
 (revision 0)
 (revision 1)
 (revision 2)
 (revision 3)
 (revision 4)
 (revision 5)
 (revision 6)
 (revision 7)
 (revision 8)
 (revision 9)
 (revision a)

transactions:
 0
 (committed 0.0.0 0 (svn:date 2010-01-27T...Z) ())
 1
 (committed 0.0.1 1 (svn:date 2010-01-27T...Z svn:author jrandom svn:log '') ())
 2
 (committed 0.0.2 2 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 3
 (committed 0.0.3 3 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 4
 (committed 0.0.4 4 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 5
 (committed 0.0.5 5 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 6
 (committed 0.0.6 6 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 7
 (committed 0.0.7 7 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 8
 (committed 0.0.8 8 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 9
 (committed 0.0.9 9 (svn:date 2010-01-27T...Z svn:author jrandom svn:log '') ())
 a
 (committed 0.0.a 10 (svn:date 2010-01-27T...Z svn:author jrandom svn:log Rev to be obliterated) (1))

changes:
 1
 (change /f-add 1.0.1 add '' '')
 1
 (change /f-del 2.0.1 add '' '')
 1
 (change /f-mod 3.0.1 add '' '')
 1
 (change /f-mod2 4.0.1 add '' '')
 1
 (change /f-mov 5.0.1 add '' '')
 1
 (change /f-rpl 6.0.1 add '' '')
 2
 (change /tmp 7.0.2 add '' '')
 2
 (change /tmp/2 8.0.2 add '' '')
 3
 (change /tmp/3 9.0.3 add '' '')
 4
 (change /tmp/4 a.0.4 add '' '')
 5
 (change /tmp/5 b.0.5 add '' '')
 6
 (change /tmp/6 c.0.6 add '' '')
 7
 (change /tmp/7 d.0.7 add '' '')
 8
 (change /tmp/8 e.0.8 add '' '')
 9
 (change /f-del/F f.0.9 add 1 '')
 9
 (change /f-del/F f.0.9 modify '' 1)
 9
 (change /f-del/F f.0.9 modify '' 1)
 9
 (change /f-mod/F g.0.9 add 1 '')
 9
 (change /f-mod/F g.0.9 modify '' 1)
 9
 (change /f-mod/F g.0.9 modify '' 1)
 9
 (change /f-mod2/F h.0.9 add 1 '')
 9
 (change /f-mod2/F h.0.9 modify '' 1)
 9
 (change /f-mod2/F h.0.9 modify '' 1)
 9
 (change /f-mov/E i.0.9 add 1 '')
 9
 (change /f-mov/E i.0.9 modify '' 1)
 9
 (change /f-mov/E i.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 add 1 '')
 9
 (change /f-rpl/F j.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 modify 1 '')
 9
 (change /f-mod/F g.0.9 modify 1 '')
 9
 (change /f-mov/E i.0.9 modify 1 '')
 9
 (change /f-mod2/F h.0.9 modify 1 '')
 9
 (change /f-del/F f.0.9 modify 1 '')
 a
 (change / 0.0.a modify '' 1)
 a
 (change /f-del/F f.0.9 delete '' '')
 a
 (change /f-mod/F g.0.a modify 1 '')
 a
 (change /f-mod2/F h.0.a modify 1 '')
 a
 (change /f-rpl/F j.0.9 delete '' '')
 a
 (change /f-rpl/F l.0.a add 1 '')
 a
 (change /f-add/F k.0.a add 1 '')
 a
 (change /f-mov/F i.1.a add '' '')

copies:
 0
 (copy '' '' 0.0.0)
 1
 (copy /f-mov/E 9 i.1.a)

nodes:
 0.0.0
 ((dir / '' 0) '' '')
 0.0.1
 ((dir / 0.0.0 1 0 0) '' 0)
 0.0.2
 ((dir / 0.0.1 2 0 0) '' 1)
 0.0.3
 ((dir / 0.0.2 3 0 0) '' 3)
 0.0.4
 ((dir / 0.0.3 4 0 0) '' 5)
 0.0.5
 ((dir / 0.0.4 5 0 0) '' 7)
 0.0.6
 ((dir / 0.0.5 6 0 0) '' 9)
 0.0.7
 ((dir / 0.0.6 7 0 0) '' b)
 0.0.8
 ((dir / 0.0.7 8 0 0) '' d)
 0.0.9
 ((dir / 0.0.8 9 0 0) '' f)
 0.0.a
 ((dir / 0.0.9 10 0 0) v w)
 1.0.1
 ((dir /f-add '' 0 0 0) '' '')
 1.0.a
 ((dir /f-add 1.0.1 1 0 0) '' x)
 2.0.1
 ((dir /f-del '' 0 0 0) '' '')
 2.0.9
 ((dir /f-del 2.0.1 1 0 0) '' g)
 2.0.a
 ((dir /f-del 2.0.9 2 0 0) '' y)
 3.0.1
 ((dir /f-mod '' 0 0 0) '' '')
 3.0.9
 ((dir /f-mod 3.0.1 1 0 0) '' i)
 3.0.a
 ((dir /f-mod 3.0.9 2 0 0) '' 13)
 4.0.1
 ((dir /f-mod2 '' 0 0 0) '' '')
 4.0.9
 ((dir /f-mod2 4.0.1 1 0 0) '' k)
 4.0.a
 ((dir /f-mod2 4.0.9 2 0 0) '' 15)
 5.0.1
 ((dir /f-mov '' 0 0 0) '' '')
 5.0.9
 ((dir /f-mov 5.0.1 1 0 0) '' m)
 5.0.a
 ((dir /f-mov 5.0.9 2 0 0) '' z)
 6.0.1
 ((dir /f-rpl '' 0 0 0) '' '')
 6.0.9
 ((dir /f-rpl 6.0.1 1 0 0) '' o)
 6.0.a
 ((dir /f-rpl 6.0.9 2 0 0) '' 10)
 7.0.2
 ((dir /tmp '' 0 0 0) '' 2)
 7.0.3
 ((dir /tmp 7.0.2 1 0 0) '' 4)
 7.0.4
 ((dir /tmp 7.0.3 2 0 0) '' 6)
 7.0.5
 ((dir /tmp 7.0.4 3 0 0) '' 8)
 7.0.6
 ((dir /tmp 7.0.5 4 0 0) '' a)
 7.0.7
 ((dir /tmp 7.0.6 5 0 0) '' c)
 7.0.8
 ((dir /tmp 7.0.7 6 0 0) '' e)
 8.0.2
 ((dir /tmp/2 '' 0 0 0) '' '')
 9.0.3
 ((dir /tmp/3 '' 0 0 0) '' '')
 a.0.4
 ((dir /tmp/4 '' 0 0 0) '' '')
 b.0.5
 ((dir /tmp/5 '' 0 0 0) '' '')
 c.0.6
 ((dir /tmp/6 '' 0 0 0) '' '')
 d.0.7
 ((dir /tmp/7 '' 0 0 0) '' '')
 e.0.8
 ((dir /tmp/8 '' 0 0 0) '' '')
 f.0.9
 ((file /f-del/F '' 0 0 0) h u)
 g.0.9
 ((file /f-mod/F '' 0 0 0) j r)
 g.0.a
 ((file /f-mod/F g.0.9 1 0 0) j 14)
 h.0.9
 ((file /f-mod2/F '' 0 0 0) l t)
 h.0.a
 ((file /f-mod2/F h.0.9 1 0 0) l 16)
 i.0.9
 ((file /f-mov/E '' 0 0 0) n s)
 i.1.a
 ((file /f-mov/F i.0.9 1 0 0) n 17)
 j.0.9
 ((file /f-rpl/F '' 0 0 0) p q)
 k.0.a
 ((file /f-add/F '' 0 0 0) p 11)
 l.0.a
 ((file /f-rpl/F '' 0 0 0) p 12)

node-origins:
 1
 1.0.1
 2
 2.0.1
 3
 3.0.1
 4
 4.0.1
 5
 5.0.1
 6
 6.0.1
 7
 7.0.2
 8
 8.0.2
 9
 9.0.3
 a
 a.0.4
 b
 b.0.5
 c
 c.0.6
 d
 d.0.7
 e
 e.0.8
 f
 f.0.9
 g
 g.0.9
 h
 h.0.9
 i
 i.0.9
 j
 j.0.9
 k
 k.0.a
 l
 l.0.a

representations:
 0
 ((fulltext 1 (md5 \9fc\9f\aa\fa\13\be\cdH\0fUp\01\1f\a9\1f) (sha1 |f\ba\a8\dd O-\05(Lneb\07\ae\1f\0e\bb\0e)) 0)
 1
 ((fulltext 2 (md5 \e6\b3{a\0b&t\06A\01\f0\82\9b\9c\a7\96) (sha1 \de\ef\05c\1e7\dc\bc\f754\0f\aa\b4\17\a1C\f4\07\83)) 1)
 2
 ((fulltext 2 (md5 R\ce\17\eam}WY\93I\1f\a3\d2\e6g\e1) (sha1 \c07\\O\fd\b4G\ba\9aH\b3|Oe\f5\c0\c0\f1\e57)) 2)
 3
 ((fulltext 3 (md5 L\f5&\f1S\9a8N\dd\eb\f7o\01K>\f5) (sha1 \bc\b1\18\00\09\0e\b5\e9G\cb\97\ea\b7\1a\14`4x\\&)) 3)
 4
 ((fulltext 3 (md5 \19\bb\17v\ef\90o\ac\db#U5\f8\cb<\05) (sha1 \f4\87\ad!\87^\d3\b2\f0\d3\ab\da;#\13D\12\87\bc\d4)) 4)
 5
 ((fulltext 4 (md5 ~~\a1\bc\a4\8a^\b4\fd\a6\c5\01\d3b\ba\d5) (sha1 \bdU\a1\9a\dd\97\95Mq\9d\afg\8b\ce}p\99\1b1B)) 5)
 6
 ((fulltext 4 (md5 \f0p\a8\dc\1b\00\bc9\feJ\87\15\93\c1v6) (sha1 \a7o|\f59\0c\cb\ca\a6f\9az\c5\0a\f0\9e\a6\e3M )) 6)
 7
 ((fulltext 5 (md5 \dc_\87\92\cbN\bed\f9\edD\8b\e7\11\fe6) (sha1 \8dX\18\87\c8\ee\c8\87p\a1\f6De\81C\da\03\bd\e0x)) 7)
 8
 ((fulltext 5 (md5 L\e0/\8f9\96\00\b9\a0\1b\b3\d7\01\ec\a1#) (sha1 \f1D\98\9b[\e1B\cc/\d7!\87o4\f6\bb\94%\c2N)) 8)
 9
 ((fulltext 6 (md5 \c7H\c8a\a8\0f\0bU\ea\cf\08\a0\fe\ac\16\c8) (sha1 \96W\1dmq\cc\e8\1cF\17W\f7\9czX\f9\b7J\19\1b)) 9)
 a
 ((fulltext 6 (md5 \d4\12\00"\19\1e\88\f3\df\1d\c6}\93\b61\d3) (sha1 \b7\9b$MM\80~\f9\ad\92\f9s{\80_at_2I\d0\1b\86)) a)
 b
 ((fulltext 7 (md5 *z\b9?E\aa#\14\15j)P\edFV\dd) (sha1 ~(}\8b\9b"\eaf\9f\c0\f4\88\80Ch\f2H[@L)) b)
 c
 ((fulltext 7 (md5 \88>u\8c\e4\bcSj\d0\cb\8eT\97x\d6\dd) (sha1 \f1\0f\e9c(\ff]\9a\18G$@\0c\c7\9f\af.W\81\bf)) c)
 d
 ((fulltext 8 (md5 \d2\a8\1e\06ol\89\06\ef\b4D3|q^\e3) (sha1 \edh\f8'\00\01$\7fx\d4\f8[\9aX\95\92g\cf<\b5)) d)
 e
 ((fulltext 8 (md5 \06;\a8y\05\8b\f4\0a\0f\e8\d4\d3\1ae\b7\97) (sha1 \e2\cd\8c\cd$\01\0fo\f2a\eb\07\85\e0\15R\c9\e3\c0o)) e)
 f
 ((fulltext 9 (md5 \98+\a5\cei\\G\f7\1f\dc"\ec\97\ea\82d) (sha1 z_\8aa\05<Gw\b0\e4\8a\d45{XyI\f8\95\cd)) f)
 g
 ((fulltext 9 (md5 D\1dJ\0d\f1\cc\8e\00\02r,|\da \15\08) (sha1 \a8{~\8f\a1O\05(\0f\8a\c9\ffN~!\1a3\ae\aax)) g)
 h
 ((fulltext 9 (md5 \1e5\98_;H\e40\82\07\ca\dd\ca\a2Z\9a) (sha1 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b)) h)
 i
 ((fulltext 9 (md5 \17\dbZ\e2X\e6p\89\e0\0e1\cda\bd\8ef) (sha1 \94\01\15\c2\df}\8fP\dc\d7[\b1(\91\d6\010#\02\da)) i)
 j
 ((fulltext 9 (md5 \1e5\98_;H\e40\82\07\ca\dd\ca\a2Z\9a) (sha1 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b)) j)
 k
 ((fulltext 9 (md5 ]o\812x%\af\a5\edU\9e \e9\17\8c\0c) (sha1 \f6#3\8cX\c7Y\01\b6\9c\e7\ccU\a0'rU\8d\e1\d3)) k)
 l
 ((fulltext 9 (md5 \1e5\98_;H\e40\82\07\ca\dd\ca\a2Z\9a) (sha1 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b)) l)
 m
 ((fulltext 9 (md5 \13\cd\e3\ee0\06\10J\ab+\ba\f0\fdYi\f7) (sha1 \c1B\81\\0H\b7\de\d5(f\f6\c9)\b04\e1\ec\9e9)) m)
 n
 ((fulltext 9 (md5 \1e5\98_;H\e40\82\07\ca\dd\ca\a2Z\9a) (sha1 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b)) n)
 o
 ((fulltext 9 (md5 C6\ad\b7\08\c7\b6<\ec\d8\e2m&\9c\a8\12) (sha1 \0f`\ba\a3 mw\dcH\c5G\e1X\82\e6>\c4\ed\1a\8f)) o)
 p
 ((fulltext 9 (md5 \1e5\98_;H\e40\82\07\ca\dd\ca\a2Z\9a) (sha1 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b)) p)
 q
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) q)
 r
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) r)
 s
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) s)
 t
 ((fulltext 9 (md5 M\ef\9c\f2(xb6"\e7\11\94\b9*\87\eb) (sha1 \a7;\18\f7\a55\daA\a3\d8\04d"\ec\ecPs\06\e4?)) t)
 u
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) u)
 v
 ((fulltext a (md5 \fc^%\d7\c8\09\90\c8\94H\f3$O\d5v\fd) (sha1 h?:g"\ec=\a8S\b8we\b7\fa\95|q\1eX\8a)) v)
 w
 ((fulltext a (md5 8\b7J\9bU\f7\d2h\15\da \f3\9b\ab\f3\10) (sha1 L+i\\8\dfz\13\bb\17\a0\1e\aba\b4\b7\f4!\d3\de)) w)
 x
 ((fulltext a (md5 \c9\82\c8\86\95\06X\dfi\92\0f"y\ff,\d7) (sha1 \ae\a7\b8\d8q\c9N\f7\bc\10{\9f\ce\87\14o\ab\f4\b3\b3)) x)
 y
 ((fulltext a (md5 \bc\d8\b0\c2\eb\1f\ceqN\abl\ef\0dw\1a\cc) (sha1 \f9\06_\a78\97P\e1o\e0\0d{\a3gH\f6\1d>\0d\f6)) y)
 z
 ((fulltext a (md5 /Z\d5z"\a2X7X\e9-\e9{d\e37) (sha1 \13\a67\89Z\9f\e9Z;\e9\a9\d4\93l&\a9\14\094G)) z)
 10
 ((fulltext a (md5 \91\a5%\c0\b5\a42;\9c\d8p\83\fd\8fab) (sha1 \e53h\ce\ae\b4?\8c'&.q4s\19\d8\f4\17\d4\ec)) 10)
 11
 ((fulltext a (md5 _:oz\cdWT\03\d7\a7\16\a3\cf\d4\12\03) (sha1 \0f\09u\c6H\c4X~X*Bs\cd\9b\fd\02C\b3/\c8)) 11)
 12
 ((fulltext a (md5 _:oz\cdWT\03\d7\a7\16\a3\cf\d4\12\03) (sha1 \0f\09u\c6H\c4X~X*Bs\cd\9b\fd\02C\b3/\c8)) 12)
 13
 ((fulltext a (md5 !VX\917\1f\af\be{\df^3\b3Y]N) (sha1 q\83NG\a5\17\04\10\06q\0f-\f9\9d\8az\85\c8\fa3)) 13)
 14
 ((fulltext a (md5 _:oz\cdWT\03\d7\a7\16\a3\cf\d4\12\03) (sha1 \0f\09u\c6H\c4X~X*Bs\cd\9b\fd\02C\b3/\c8)) 14)
 15
 ((fulltext a (md5 \bb\b5\80sypA"|\94\83b\b0\af9\c0) (sha1 w\c2\98\93\8e\0f{5\05$\dc\c16\cf#\01\9fk\95\a4)) 15)
 16
 ((fulltext a (md5 \c2\9f#V:r\8f\c2J\a5[\8bi\ff(\d1) (sha1 N<n\acF\0e\bb;\e8EA\ee\0a\82oh\88\d3\ddK)) 16)
 17
 ((fulltext a (md5 _:oz\cdWT\03\d7\a7\16\a3\cf\d4\12\03) (sha1 \0f\09u\c6H\c4X~X*Bs\cd\9b\fd\02C\b3/\c8)) 17)

checksum-reps:
 \0f\09u\c6H\c4X~X*Bs\cd\9b\fd\02C\b3/\c8
 12
 N<n\acF\0e\bb;\e8EA\ee\0a\82oh\88\d3\ddK
 16
 h?:g"\ec=\a8S\b8we\b7\fa\95|q\1eX\8a
 v
 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i
 q
 \a7;\18\f7\a55\daA\a3\d8\04d"\ec\ecPs\06\e4?
 t
 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b
 p

strings:
 0
 
 0
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1))
 1
 
 1
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.2) (f-rpl 6.0.1))
 10
 
 10
 ((F l.0.a))
 11
 
 11
 Apple\0a
 12
 
 12
 Apple\0a
 13
 
 13
 ((F g.0.a))
 14
 
 14
 Apple\0a
 15
 
 15
 ((F h.0.a))
 16
 
 16
 Apple2\0a
 17
 
 17
 Apple\0a
 2
 
 2
 ((2 8.0.2))
 3
 
 3
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.3))
 4
 
 4
 ((3 9.0.3) (2 8.0.2))
 5
 
 5
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.4) (f-rpl 6.0.1))
 6
 
 6
 ((4 a.0.4) (3 9.0.3) (2 8.0.2))
 7
 
 7
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.5))
 8
 
 8
 ((5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 9
 
 9
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.6) (f-rpl 6.0.1))
 a
 
 a
 ((6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 b
 
 b
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.7))
 c
 
 c
 ((7 d.0.7) (6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 d
 
 d
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.8) (f-rpl 6.0.1))
 e
 
 e
 ((8 e.0.8) (7 d.0.7) (6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 f
 
 f
 ((f-add 1.0.1) (f-del 2.0.9) (f-mod2 4.0.9) (f-mov 5.0.9) (f-mod 3.0.9) (f-rpl 6.0.9) (tmp 7.0.8))
 g
 
 g
 ((F f.0.9))
 h
 
 h
 (svn:keywords Revision)
 i
 
 i
 ((F g.0.9))
 j
 
 j
 (svn:keywords Revision)
 k
 
 k
 ((F h.0.9))
 l
 
 l
 (svn:keywords Revision)
 m
 
 m
 ((E i.0.9))
 n
 
 n
 (svn:keywords Revision)
 o
 
 o
 ((F j.0.9))
 p
 
 p
 (svn:keywords Revision)
 q
 
 q
 Pear\0a
 r
 
 r
 Pear\0a
 s
 
 s
 Pear\0a
 t
 
 t
 Pear2\0a
 u
 
 u
 Pear\0a
 v
 
 v
 (this-is-rev 10)
 w
 
 w
 ((f-add 1.0.a) (f-del 2.0.a) (f-mod2 4.0.a) (f-mov 5.0.a) (f-mod 3.0.a) (f-rpl 6.0.a) (tmp 7.0.8))
 x
 
 x
 ((F k.0.a))
 y
 
 y
 ()
 z
 
 z
 ((F i.1.a) (E i.0.9))

locks:

lock-tokens:

miscellaneous:
 forward-delta-rev
 0

uuids:
 75a3b80a-5431-4eea-ad47-e419def5e4ee

revisions:
 (revision 0)
 (revision 1)
 (revision 2)
 (revision 3)
 (revision 4)
 (revision 5)
 (revision 6)
 (revision 7)
 (revision 8)
 (revision 9)
 (revision a)

transactions:
 0
 (committed 0.0.0 0 (svn:date 2010-01-27T...Z) ())
 1
 (committed 0.0.1 1 (svn:date 2010-01-27T...Z svn:author jrandom svn:log '') ())
 2
 (committed 0.0.2 2 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 3
 (committed 0.0.3 3 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 4
 (committed 0.0.4 4 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 5
 (committed 0.0.5 5 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 6
 (committed 0.0.6 6 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 7
 (committed 0.0.7 7 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 8
 (committed 0.0.8 8 (svn:date 2010-01-27T...Z svn:author jrandom svn:log svn_mkdirs()) ())
 9
 (committed 0.0.9 9 (svn:date 2010-01-27T...Z svn:author jrandom svn:log '') ())
 a
 (committed 0.0.a 10 (svn:date 2010-01-27T...Z svn:author jrandom svn:log Rev to be obliterated) ())

changes:
 1
 (change /f-add 1.0.1 add '' '')
 1
 (change /f-del 2.0.1 add '' '')
 1
 (change /f-mod 3.0.1 add '' '')
 1
 (change /f-mod2 4.0.1 add '' '')
 1
 (change /f-mov 5.0.1 add '' '')
 1
 (change /f-rpl 6.0.1 add '' '')
 2
 (change /tmp 7.0.2 add '' '')
 2
 (change /tmp/2 8.0.2 add '' '')
 3
 (change /tmp/3 9.0.3 add '' '')
 4
 (change /tmp/4 a.0.4 add '' '')
 5
 (change /tmp/5 b.0.5 add '' '')
 6
 (change /tmp/6 c.0.6 add '' '')
 7
 (change /tmp/7 d.0.7 add '' '')
 8
 (change /tmp/8 e.0.8 add '' '')
 9
 (change /f-del/F f.0.9 add 1 '')
 9
 (change /f-del/F f.0.9 modify '' 1)
 9
 (change /f-del/F f.0.9 modify '' 1)
 9
 (change /f-mod/F g.0.9 add 1 '')
 9
 (change /f-mod/F g.0.9 modify '' 1)
 9
 (change /f-mod/F g.0.9 modify '' 1)
 9
 (change /f-mod2/F h.0.9 add 1 '')
 9
 (change /f-mod2/F h.0.9 modify '' 1)
 9
 (change /f-mod2/F h.0.9 modify '' 1)
 9
 (change /f-mov/E i.0.9 add 1 '')
 9
 (change /f-mov/E i.0.9 modify '' 1)
 9
 (change /f-mov/E i.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 add 1 '')
 9
 (change /f-rpl/F j.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 modify '' 1)
 9
 (change /f-rpl/F j.0.9 modify 1 '')
 9
 (change /f-mod/F g.0.9 modify 1 '')
 9
 (change /f-mov/E i.0.9 modify 1 '')
 9
 (change /f-mod2/F h.0.9 modify 1 '')
 9
 (change /f-del/F f.0.9 modify 1 '')
 a
 (change / 0.0.a modify '' 1)
 a
 (change /f-del/F f.0.9 delete '' '')
 a
 (change /f-mod/F g.0.9 delete '' '')
 a
 (change /f-mod2/F h.0.9 delete '' '')
 a
 (change /f-rpl/F j.0.9 delete '' '')

copies:
 0
 (copy '' '' 0.0.0)

nodes:
 0.0.0
 ((dir / '' 0) '' '')
 0.0.1
 ((dir / 0.0.0 1 0 0) '' 0)
 0.0.2
 ((dir / 0.0.1 2 0 0) '' 1)
 0.0.3
 ((dir / 0.0.2 3 0 0) '' 3)
 0.0.4
 ((dir / 0.0.3 4 0 0) '' 5)
 0.0.5
 ((dir / 0.0.4 5 0 0) '' 7)
 0.0.6
 ((dir / 0.0.5 6 0 0) '' 9)
 0.0.7
 ((dir / 0.0.6 7 0 0) '' b)
 0.0.8
 ((dir / 0.0.7 8 0 0) '' d)
 0.0.9
 ((dir / 0.0.8 9 0 0) '' f)
 0.0.a
 ((dir / 0.0.9 10 0 0) v w)
 1.0.1
 ((dir /f-add '' 0 0 0) '' '')
 2.0.1
 ((dir /f-del '' 0 0 0) '' '')
 2.0.9
 ((dir /f-del 2.0.1 1 0 0) '' g)
 2.0.a
 ((dir /f-del 2.0.9 2 0 0) '' x)
 3.0.1
 ((dir /f-mod '' 0 0 0) '' '')
 3.0.9
 ((dir /f-mod 3.0.1 1 0 0) '' i)
 3.0.a
 ((dir /f-mod 3.0.9 2 0 0) '' y)
 4.0.1
 ((dir /f-mod2 '' 0 0 0) '' '')
 4.0.9
 ((dir /f-mod2 4.0.1 1 0 0) '' k)
 4.0.a
 ((dir /f-mod2 4.0.9 2 0 0) '' z)
 5.0.1
 ((dir /f-mov '' 0 0 0) '' '')
 5.0.9
 ((dir /f-mov 5.0.1 1 0 0) '' m)
 6.0.1
 ((dir /f-rpl '' 0 0 0) '' '')
 6.0.9
 ((dir /f-rpl 6.0.1 1 0 0) '' o)
 6.0.a
 ((dir /f-rpl 6.0.9 2 0 0) '' 10)
 7.0.2
 ((dir /tmp '' 0 0 0) '' 2)
 7.0.3
 ((dir /tmp 7.0.2 1 0 0) '' 4)
 7.0.4
 ((dir /tmp 7.0.3 2 0 0) '' 6)
 7.0.5
 ((dir /tmp 7.0.4 3 0 0) '' 8)
 7.0.6
 ((dir /tmp 7.0.5 4 0 0) '' a)
 7.0.7
 ((dir /tmp 7.0.6 5 0 0) '' c)
 7.0.8
 ((dir /tmp 7.0.7 6 0 0) '' e)
 8.0.2
 ((dir /tmp/2 '' 0 0 0) '' '')
 9.0.3
 ((dir /tmp/3 '' 0 0 0) '' '')
 a.0.4
 ((dir /tmp/4 '' 0 0 0) '' '')
 b.0.5
 ((dir /tmp/5 '' 0 0 0) '' '')
 c.0.6
 ((dir /tmp/6 '' 0 0 0) '' '')
 d.0.7
 ((dir /tmp/7 '' 0 0 0) '' '')
 e.0.8
 ((dir /tmp/8 '' 0 0 0) '' '')
 f.0.9
 ((file /f-del/F '' 0 0 0) h u)
 g.0.9
 ((file /f-mod/F '' 0 0 0) j r)
 h.0.9
 ((file /f-mod2/F '' 0 0 0) l t)
 i.0.9
 ((file /f-mov/E '' 0 0 0) n s)
 j.0.9
 ((file /f-rpl/F '' 0 0 0) p q)

node-origins:
 1
 1.0.1
 2
 2.0.1
 3
 3.0.1
 4
 4.0.1
 5
 5.0.1
 6
 6.0.1
 7
 7.0.2
 8
 8.0.2
 9
 9.0.3
 a
 a.0.4
 b
 b.0.5
 c
 c.0.6
 d
 d.0.7
 e
 e.0.8
 f
 f.0.9
 g
 g.0.9
 h
 h.0.9
 i
 i.0.9
 j
 j.0.9

representations:
 0
 ((fulltext 1 (md5 \9fc\9f\aa\fa\13\be\cdH\0fUp\01\1f\a9\1f) (sha1 |f\ba\a8\dd O-\05(Lneb\07\ae\1f\0e\bb\0e)) 0)
 1
 ((fulltext 2 (md5 \e6\b3{a\0b&t\06A\01\f0\82\9b\9c\a7\96) (sha1 \de\ef\05c\1e7\dc\bc\f754\0f\aa\b4\17\a1C\f4\07\83)) 1)
 2
 ((fulltext 2 (md5 R\ce\17\eam}WY\93I\1f\a3\d2\e6g\e1) (sha1 \c07\\O\fd\b4G\ba\9aH\b3|Oe\f5\c0\c0\f1\e57)) 2)
 3
 ((fulltext 3 (md5 L\f5&\f1S\9a8N\dd\eb\f7o\01K>\f5) (sha1 \bc\b1\18\00\09\0e\b5\e9G\cb\97\ea\b7\1a\14`4x\\&)) 3)
 4
 ((fulltext 3 (md5 \19\bb\17v\ef\90o\ac\db#U5\f8\cb<\05) (sha1 \f4\87\ad!\87^\d3\b2\f0\d3\ab\da;#\13D\12\87\bc\d4)) 4)
 5
 ((fulltext 4 (md5 ~~\a1\bc\a4\8a^\b4\fd\a6\c5\01\d3b\ba\d5) (sha1 \bdU\a1\9a\dd\97\95Mq\9d\afg\8b\ce}p\99\1b1B)) 5)
 6
 ((fulltext 4 (md5 \f0p\a8\dc\1b\00\bc9\feJ\87\15\93\c1v6) (sha1 \a7o|\f59\0c\cb\ca\a6f\9az\c5\0a\f0\9e\a6\e3M )) 6)
 7
 ((fulltext 5 (md5 \dc_\87\92\cbN\bed\f9\edD\8b\e7\11\fe6) (sha1 \8dX\18\87\c8\ee\c8\87p\a1\f6De\81C\da\03\bd\e0x)) 7)
 8
 ((fulltext 5 (md5 L\e0/\8f9\96\00\b9\a0\1b\b3\d7\01\ec\a1#) (sha1 \f1D\98\9b[\e1B\cc/\d7!\87o4\f6\bb\94%\c2N)) 8)
 9
 ((fulltext 6 (md5 \c7H\c8a\a8\0f\0bU\ea\cf\08\a0\fe\ac\16\c8) (sha1 \96W\1dmq\cc\e8\1cF\17W\f7\9czX\f9\b7J\19\1b)) 9)
 a
 ((fulltext 6 (md5 \d4\12\00"\19\1e\88\f3\df\1d\c6}\93\b61\d3) (sha1 \b7\9b$MM\80~\f9\ad\92\f9s{\80_at_2I\d0\1b\86)) a)
 b
 ((fulltext 7 (md5 *z\b9?E\aa#\14\15j)P\edFV\dd) (sha1 ~(}\8b\9b"\eaf\9f\c0\f4\88\80Ch\f2H[@L)) b)
 c
 ((fulltext 7 (md5 \88>u\8c\e4\bcSj\d0\cb\8eT\97x\d6\dd) (sha1 \f1\0f\e9c(\ff]\9a\18G$@\0c\c7\9f\af.W\81\bf)) c)
 d
 ((fulltext 8 (md5 \d2\a8\1e\06ol\89\06\ef\b4D3|q^\e3) (sha1 \edh\f8'\00\01$\7fx\d4\f8[\9aX\95\92g\cf<\b5)) d)
 e
 ((fulltext 8 (md5 \06;\a8y\05\8b\f4\0a\0f\e8\d4\d3\1ae\b7\97) (sha1 \e2\cd\8c\cd$\01\0fo\f2a\eb\07\85\e0\15R\c9\e3\c0o)) e)
 f
 ((fulltext 9 (md5 \98+\a5\cei\\G\f7\1f\dc"\ec\97\ea\82d) (sha1 z_\8aa\05<Gw\b0\e4\8a\d45{XyI\f8\95\cd)) f)
 g
 ((fulltext 9 (md5 D\1dJ\0d\f1\cc\8e\00\02r,|\da \15\08) (sha1 \a8{~\8f\a1O\05(\0f\8a\c9\ffN~!\1a3\ae\aax)) g)
 i
 ((fulltext 9 (md5 \17\dbZ\e2X\e6p\89\e0\0e1\cda\bd\8ef) (sha1 \94\01\15\c2\df}\8fP\dc\d7[\b1(\91\d6\010#\02\da)) i)
 k
 ((fulltext 9 (md5 ]o\812x%\af\a5\edU\9e \e9\17\8c\0c) (sha1 \f6#3\8cX\c7Y\01\b6\9c\e7\ccU\a0'rU\8d\e1\d3)) k)
 m
 ((fulltext 9 (md5 \13\cd\e3\ee0\06\10J\ab+\ba\f0\fdYi\f7) (sha1 \c1B\81\\0H\b7\de\d5(f\f6\c9)\b04\e1\ec\9e9)) m)
 o
 ((fulltext 9 (md5 C6\ad\b7\08\c7\b6<\ec\d8\e2m&\9c\a8\12) (sha1 \0f`\ba\a3 mw\dcH\c5G\e1X\82\e6>\c4\ed\1a\8f)) o)
 q
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) q)
 r
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) r)
 s
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) s)
 t
 ((fulltext 9 (md5 M\ef\9c\f2(xb6"\e7\11\94\b9*\87\eb) (sha1 \a7;\18\f7\a55\daA\a3\d8\04d"\ec\ecPs\06\e4?)) t)
 u
 ((fulltext 9 (md5 \ff'\dd\0a9\a5\1b\f2\ce\b8\b2p\97%]\18) (sha1 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i)) u)
 w
 ((fulltext a (md5 \ac\d5-\ccG\1f\1b\f3\acq0\87#\d7\d1\1b) (sha1 m\b6\da2\03\dc\ad\01^u.\a1\90\a7\d4\bc\04W!\10)) w)
 x
 ((fulltext a (md5 \bc\d8\b0\c2\eb\1f\ceqN\abl\ef\0dw\1a\cc) (sha1 \f9\06_\a78\97P\e1o\e0\0d{\a3gH\f6\1d>\0d\f6)) x)
 y
 ((fulltext a (md5 \bc\d8\b0\c2\eb\1f\ceqN\abl\ef\0dw\1a\cc) (sha1 \f9\06_\a78\97P\e1o\e0\0d{\a3gH\f6\1d>\0d\f6)) y)
 z
 ((fulltext a (md5 \bc\d8\b0\c2\eb\1f\ceqN\abl\ef\0dw\1a\cc) (sha1 \f9\06_\a78\97P\e1o\e0\0d{\a3gH\f6\1d>\0d\f6)) z)
 10
 ((fulltext a (md5 \bc\d8\b0\c2\eb\1f\ceqN\abl\ef\0dw\1a\cc) (sha1 \f9\06_\a78\97P\e1o\e0\0d{\a3gH\f6\1d>\0d\f6)) 10)

checksum-reps:
 h?:g"\ec=\a8S\b8we\b7\fa\95|q\1eX\8a
 v
 \8e\b8cH\14=\db\f5\067\84\bbeR\abZ\0a\99\c6i
 q
 \a7;\18\f7\a55\daA\a3\d8\04d"\ec\ecPs\06\e4?
 t
 \b6\da!%\85H\8d\b0\a5\91\95\e3\f4\15\f2\19\ea\97\14\9b
 p

strings:
 0
 
 0
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1))
 1
 
 1
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.2) (f-rpl 6.0.1))
 10
 
 10
 ()
 2
 
 2
 ((2 8.0.2))
 3
 
 3
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.3))
 4
 
 4
 ((3 9.0.3) (2 8.0.2))
 5
 
 5
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.4) (f-rpl 6.0.1))
 6
 
 6
 ((4 a.0.4) (3 9.0.3) (2 8.0.2))
 7
 
 7
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.5))
 8
 
 8
 ((5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 9
 
 9
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.6) (f-rpl 6.0.1))
 a
 
 a
 ((6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 b
 
 b
 ((f-add 1.0.1) (f-del 2.0.1) (f-mod2 4.0.1) (f-mov 5.0.1) (f-mod 3.0.1) (f-rpl 6.0.1) (tmp 7.0.7))
 c
 
 c
 ((7 d.0.7) (6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 d
 
 d
 ((f-add 1.0.1) (f-del 2.0.1) (f-mov 5.0.1) (f-mod2 4.0.1) (f-mod 3.0.1) (tmp 7.0.8) (f-rpl 6.0.1))
 e
 
 e
 ((8 e.0.8) (7 d.0.7) (6 c.0.6) (5 b.0.5) (4 a.0.4) (3 9.0.3) (2 8.0.2))
 f
 
 f
 ((f-add 1.0.1) (f-del 2.0.9) (f-mod2 4.0.9) (f-mov 5.0.9) (f-mod 3.0.9) (f-rpl 6.0.9) (tmp 7.0.8))
 g
 
 g
 ((F f.0.9))
 h
 
 h
 (svn:keywords Revision)
 i
 
 i
 ((F g.0.9))
 j
 
 j
 (svn:keywords Revision)
 k
 
 k
 ((F h.0.9))
 l
 
 l
 (svn:keywords Revision)
 m
 
 m
 ((E i.0.9))
 n
 
 n
 (svn:keywords Revision)
 o
 
 o
 ((F j.0.9))
 p
 
 p
 (svn:keywords Revision)
 q
 
 q
 Pear\0a
 r
 
 r
 Pear\0a
 s
 
 s
 Pear\0a
 t
 
 t
 Pear2\0a
 u
 
 u
 Pear\0a
 v
 
 v
 (this-is-rev 10)
 w
 
 w
 ((f-add 1.0.1) (f-del 2.0.a) (f-mod2 4.0.a) (f-mov 5.0.9) (f-mod 3.0.a) (f-rpl 6.0.a) (tmp 7.0.8))
 x
 
 x
 ()
 y
 
 y
 ()
 z
 
 z
 ()

locks:

lock-tokens:

miscellaneous:
 forward-delta-rev
 0

uuids:
 7581078f-ff0a-4c26-84fc-462292441383

Received on 2010-01-28 13:01:12 CET

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.