修复错误的提交日期

Fix bad commit dates

我正在尝试向 phabricator 导入一个颠覆存储库,我发现有很多提交日期错误。该日期设置在未来,例如 3905-05-22 。如果有几个,我可以手动更改,但我发现太多了。

有一种方法可以对 svn 提交的时间戳进行大量更改,或者有一种方法可以让 subversion 自行更正这些无效日期?

注意:我通常工作超过 git,所以我不是 pro svn 用户。

您必须转储到一个文件,替换并再次加载它:

  • svn 转储
  • sed ....
  • 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;

12190 是错误提交的开始。目前,它已经修复了大约 2000 个提交。从我们的回购协议中检查整个 50000 次提交需要一些时间,但至少我们会知道这已得到修复。