我正在通过Cygwin使用cvs2git将一个非常古老和庞大的CVS存储库转换为Git。它工作得很好,我开始测试新的存储库。我没有发现更大的特点。但我想知道如何确定提交/更改集的时间戳。
到目前为止,我确定,某些CVS修订版之间的时间戳相差1或2个小时加上x,其中x是从某些秒或分钟(大多数情况下)上升到两个15分钟的时间。许多时间戳仅以整小时为单位(x=0)。
我想这与我发现的“时间戳错误更正”是一个cvs2svn特性(http://www.mcs.anl.gov/~jacob/cvs2svn/features.html)有关。也许这也和时区有关。
我的测试结果显示,更改集中只有一个文件的所有提交都是整小时不同的。支持我的“时区假说”。但这也让我想到了一个问题,即如何确定多个文件的更改集的时间戳。
我试着翻阅代码,发现(在谷歌的帮助下) config.py of cvs2svn_lib中有一个“cvs2svn_lib”。我猜,它是用来对CVS中基于文件的提交进行模糊化的。虽然代码编写得很好,但我对CVS、SVN和Git修改存储缺乏技术理解,这让我很难理解。
因此,如果有人能回答以下问题,我将不胜感激:
亲切的问候
编辑:
由于有人认为这个问题“太广泛”,恐怕我没有说得很清楚。因此,我想举一个具体的(虽然是虚构的)例子:
cvs2git为一个更改集找到了3个文件更改。他们在同一天做出了承诺(比如说2016年2月30日)。但他们的时代不同:
如果它只是文件1,我想,cvs2git使用2016-02-30T12:34:56作为Git提交的时间戳。但是,如果所有3个文件的提交都属于一个更改集,则选择哪个时间戳?
与此相关的是,当我的存储库被转换时,时间似乎也被调整了1或2个小时。当更改集中只有一个文件时,也会发生这种情况。我想这是某种时区调整。所以我想知道,为什么“时间戳错误更正”改变了我的时间戳,以检查我是否接受这些更改。我对转换后的Git存储库做了一些统计,原则上提交时间对我来说是可以的;但这对我来说还不够。
发布于 2016-10-13 06:32:38
你问两个问题:
git log有一个--date选项,可用于要求在本地时区中显示日期。cvs2svn项目文件doc/design-notes.txt非常详细地记录了cvs2svn/cvs2git使用的算法。
https://stackoverflow.com/questions/39911698
复制相似问题