修复错误的提交日期

时间:2015-06-01 11:11:50

标签: svn timestamp

我正在尝试导入phabricator一个subversion存储库,我发现有很多提交错误的日期。这个日期是在未来设定的,如3905-05-22。如果有一些,我可以手动改变它,但我发现它太多了。

有一种方法可以对svn提交的时间戳进行大规模更改,还是可以通过颠覆方式自行更正这些无效日期?

注意:我通常在git上工作,所以我不是专业用户。

2 个答案:

答案 0 :(得分:0)

您必须转储到文件,替换并重新加载它:

  • svn dump
  • sed ....
  • svn load

答案 1 :(得分:0)

我结束了编写脚本来修复它:

#!/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;

是12190是开始糟糕的提交。此时,它已经修复了大约2000次提交。它花了一些时间来检查我们的回购中的整个50000次提交,但至少我们知道这已经修复了。