mplwork
mplwork

Reputation: 1150

Are svn revision numbers chronological?

In the process of converting a svn repo with several (chaotic) branches to git and not being really familiar with svn I need some help. Going through the logs in a copy checked out from svn I find this:

branch1:

r1985 | (no author) | 2007-07-25 15:17:52 +0200 (Wed, 25 Jul 2007) | 1 line
Changed paths:
   A /Project/HEAD/project2001b (from /project2001b:1984)
   D /project2001b

r4 | (no author) | 2007-07-23 14:48:58 +0200 (Mon, 23 Jul 2007) | 1 line
Changed paths:
   A /project2001b

branch2:

r1989 | (no author) | 2007-07-25 15:22:59 +0200 (Wed, 25 Jul 2007) | 1 line
Changed paths:
   A /Project/branches/Project_2001 (from /Project_2001:1988)
   D /Project_2001

r178 | (no author) | 2001-01-15 12:16:41 +0100 (Mon, 15 Jan 2001) | 1 line
Changed paths:
   A /Project_2001

Why is svn revision r4 from a later date than revision r178? My understanding of svn wouldn't allow this. What am I missing? Is the svn repo broken somehow? I also can't find a revision r2. Can svn revisions disappear from the logs? Thanks for any insight.

Upvotes: 1

Views: 68

Answers (1)

Lazy Badger
Lazy Badger

Reputation: 97355

For poorly administered SVN-repository you can't really trust any metadata in it

Unversioned revision-properties

svn pl --revprop -r ...
Unversioned properties on revision 7:
  svn:author
  svn:date
  svn:log

can be changed at any time from client-side with svn propset

With administrative access to repository (really - physical access to FS) dumping|editing dump|loading dumps back can produce even more tricks (f.e partial dumps may produce disappearing of range of revisions, editing dumps - any exotic effects as reordering)

Sample for one revision in dump

Revision-number: 5
Prop-content-length: 146
Content-length: 146

K 10
svn:author
V 6
abream
K 8
svn:date
V 27
2012-10-17T15:45:47.444624Z
K 7
svn:log
V 45
Remove externals definition from root of repo
PROPS-END

in this (text) representation of revision in dump anybody can (theoretically) change carefully some data and after loading such faked-dump get in repository this new information without any traces of old, presumably correct (and, f.e revision 555 will appear before 6)

Upvotes: 1

Related Questions