SVN 提交旧日期/时间
Posted
技术标签:
【中文标题】SVN 提交旧日期/时间【英文标题】:SVN commit with old date/time 【发布时间】:2011-01-07 06:04:48 【问题描述】:有什么方法可以使用旧时间/日期提交到 SVN 存储库,或者如何编辑提交后的时间/日期?
我有一些非常旧的存档源,在我开始使用 SVN 之前,我现在想将它们放入 SVN 并尽可能保留它们的原始日期,以便 SVN 历史记录与实际日期相匹配文件已被编辑。
操纵 SVN 服务器时间是一个显而易见的选择,但不能在这里使用,因为 SVN 服务器不在我的控制范围内。
【问题讨论】:
这是一个现有的存储库,还是一个新的?您会覆盖存储库中的目录和/或文件吗? 一个现有的存储库,在初始提交时我不会覆盖任何文件,但其中一些会在以后被覆盖。我有一堆存档文件,如 sources-1995-05.zip、sources-1995-08.zip、sources-1996-01.zip,我想将它们的内容传输到 SVN,日期为 1995/08/xx和 1996/01/xx 分别提交。 相关:***.com/questions/633353/… 【参考方案1】:日期和时间在"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 存储库提供的模板应该会有所帮助。
【讨论】:
【参考方案2】:每个修订版都有一个属性svn:date
。如果您有权修改未版本化的属性,则可以更改该值。
【讨论】:
【参考方案3】:我最终所做的是:
在我的工作站上安装 VisualSVN 服务器 创建一个新的“本地”SVN 存储库 一个一个地获取档案,每个: 在工作副本中删除除 .svn 文件之外的所有内容,以确保不会留下被删除的文件 将存档解压到工作副本中 将系统日期更改为存档日期 根据需要添加和删除并提交到本地存储库中 完成后,使用svnadmin dump
存储库
在主 SVN 服务器上使用 svnadmin load
加载转储
上面的步骤对我来说似乎比安装pre-revprop-change
挂钩更容易。 (我们目前的版本只允许编辑日志消息。)
注意:除了更改系统日期之外,还可以在加载转储文件之前编辑转储文件中的日期。
【讨论】:
您可以编辑转储文件,只要您的编辑器保留任何二进制信息并且不更改行尾。以上是关于SVN 提交旧日期/时间的主要内容,如果未能解决你的问题,请参考以下文章
Windows下SVN回滚到旧版本(TortoiseSVN)