svn版本号按时间顺序排列吗?

时间:2014-08-08 17:55:51

标签: svn

在将带有几个(混乱)分支的svn repo转换为git并且不熟悉svn的过程中,我需要一些帮助。通过从svn检出的副本中的日志,我发现:

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

为什么svn修订版 r4 的日期晚于修订版 r178 ?我对svn的理解不会允许这样做。我错过了什么?是不是以某种方式破坏了svn repo?我也找不到修订版r2。 svn修订版能从日志中消失吗?感谢您的任何见解。

1 个答案:

答案 0 :(得分:1)

对于管理不善的SVN-repository,您无法真正信任其中的任何元数据

Unversioned revision-properties

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

可以随时从客户端更改svn propset

通过对存储库的管理访问(实际上是对FS的物理访问),转储|编译dump | load dumps会产生更多技巧(部分转储可能会导致修订范围消失,编辑转储 - 任何异常效果作为重新排序)

转储中的一个修订的示例

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

在转储中的修订版本(文本)表示任何人都可以(理论上)仔细更改一些数据,并且在加载这样的伪造转储后,在存储库中获取这些新信息,没有任何旧的痕迹,大概是正确的(并且,fe修订版555将出现在6)之前