Svn 修复错误的提交日期

Svn 修复错误的提交日期,svn,timestamp,Svn,Timestamp,我试图将subversion存储库导入phabricator,发现有很多提交的日期都不正确。这些日期设定在未来,如3905-05-22。如果有一些,我可以手工更改,但我发现太多了 有一种方法可以大规模更改svn提交的时间戳,或者subversion可以自行更正这些无效日期 注意:我通常使用git,因此我不是专业svn用户。您必须转储到文件,替换,然后再次加载: svn转储 塞德 svn负载 我结束了编写脚本来修复它: #!/bin/bash LAST_COMMIT=$(svn info svn

我试图将subversion存储库导入phabricator,发现有很多提交的日期都不正确。这些日期设定在未来,如3905-05-22。如果有一些,我可以手工更改,但我发现太多了

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


注意:我通常使用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存储库。