SVN提交旧日期/时间

时间:2010-01-20 12:06:31

标签: svn timestamp commit

有没有办法如何使用旧时间/日期提交到SVN存储库或如何编辑提交后的时间/日期?

在我开始使用SVN之前,我有一些非常古老的存档来源,现在我想将它们放入SVN并尽可能保留其原始日期,以便SVN历史记录与实际日期匹配文件已被编辑。

操纵SVN服务器时间是一个显而易见的选择,但它不能在这里使用,因为SVN服务器不受我的控制。

3 个答案:

答案 0 :(得分:15)

日期和时间在"special" revision property, svn:date。您可以这样修改它:

svn propedit svn:date --revprop -r 12345

或:

svn propset svn:date --revprop -r 12345 2009-02-12T00:44:04.921324Z

修订版(例如上面的12345)也可以是HEAD,表示最新版本。

日期以ISO 8601格式指定。

您需要存储库设置相应的pre-revprop-change挂钩(在存储库的hook目录中)以允许修改svn:date。随SVN存储库提供的模板应该会有所帮助。

答案 1 :(得分:2)

每个修订版都有一个属性svn:date。如果您有权修改未版本化的属性,则可以更改该值。

答案 2 :(得分:1)

我最终做的是:

  • 在我的工作站上安装VisualSVN服务器
  • 创建一个新的“本地”SVN存储库
  • 逐个归档,每个:
    • 在工作副本中删除除.svn文件以外的所有文件,以确保删除的文件不会遗留下来
    • 将存档解压缩为工作副本
    • 将系统日期更改为存档日期
    • 根据需要添加和删除并提交到本地存储库
  • 完成后,使用svnadmin dump存储库
  • 主SVN服务器上的
  • 使用svnadmin load
  • 加载转储

上述步骤对我来说比安装pre-revprop-change挂钩更容易。 (我们现有的那个只允许编辑日志消息。)

注意:除了更改系统日期之外,还可以在加载之前编辑转储文件中的日期。