Svn 修复错误的提交日期
我试图将subversion存储库导入phabricator,发现有很多提交的日期都不正确。这些日期设定在未来,如3905-05-22。如果有一些,我可以手工更改,但我发现太多了 有一种方法可以大规模更改svn提交的时间戳,或者subversion可以自行更正这些无效日期Svn 修复错误的提交日期,svn,timestamp,Svn,Timestamp,我试图将subversion存储库导入phabricator,发现有很多提交的日期都不正确。这些日期设定在未来,如3905-05-22。如果有一些,我可以手工更改,但我发现太多了 有一种方法可以大规模更改svn提交的时间戳,或者subversion可以自行更正这些无效日期 注意:我通常使用git,因此我不是专业svn用户。您必须转储到文件,替换,然后再次加载: svn转储 塞德 svn负载 我结束了编写脚本来修复它: #!/bin/bash LAST_COMMIT=$(svn info svn
注意:我通常使用git,因此我不是专业svn用户。您必须转储到文件,替换,然后再次加载:
- svn转储
- 塞德
- svn负载
#!/bin/bash
LAST_COMMIT=$(svn info svn://XXX/ | grep -i rev | tail -n1 | grep -o -E '[0-9]+')
echo "Ultimo commit ${LAST_COMMIT}"
for COMMIT in $(seq 12190 $LAST_COMMIT)
do
FECHA_COM=$(svn propget svn:date --revprop -r $COMMIT svn://desarrollo01/)
if [ $? -ne 0 ]; then
echo "Error!"
exit $?;
fi
if [ ${FECHA_COM:0:2} -gt "20" ]; then
NFECHA_COM="20${FECHA_COM:2:${#FECHA_COM}}"
echo "${COMMIT} : ${FECHA_COM} -> ${NFECHA_COM}"
svn propset --revprop -r $COMMIT svn:date ${NFECHA_COM} svn://XXX/
if [ $? -ne 0 ]; then
echo "Error!"
exit $?;
fi
fi
done;
WARE 12190是错误提交的开始。目前,它已经被修复了大约2000次提交。从我们的回购协议中检查整个50000次提交需要一些时间,但至少我们会知道这已经被修复。脚本会迭代每次提交并获取他的日期。如果发现一年的前两位数大于20(即3905),则用“20”替换,将错误的日期恢复到2005年。这解决了我们的问题,现在Phabricator和git svn可以正确处理subversion存储库。