Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 将多次重命名的subversion存储库转换为mercurial存储库_Svn_Mercurial - Fatal编程技术网

Svn 将多次重命名的subversion存储库转换为mercurial存储库

Svn 将多次重命名的subversion存储库转换为mercurial存储库,svn,mercurial,Svn,Mercurial,我正在尝试将subversion(svn)存储库转换为mercurial(hg)。在过去,svn存储库项目文件夹被多次重命名。以下命令部分成功地将svn项目转换为hg: hg convert svn://localhost/project project-hg 这将从最新版本转换回上次重命名svn项目文件夹的版本。此时,转换的hg存储库(变更集0)只包含存储库中所有文件的添加操作(文件内容与svn重命名时相同) 我想保留hg项目中原始svn项目的历史记录,直到版本0,但不确定如何克服重命名问题

我正在尝试将subversion(svn)存储库转换为mercurial(hg)。在过去,svn存储库项目文件夹被多次重命名。以下命令部分成功地将svn项目转换为hg:

hg convert svn://localhost/project project-hg
这将从最新版本转换回上次重命名svn项目文件夹的版本。此时,转换的hg存储库(变更集0)只包含存储库中所有文件的添加操作(文件内容与svn重命名时相同)


我想保留hg项目中原始svn项目的历史记录,直到版本0,但不确定如何克服重命名问题。

尝试使用转换。

以下是我刚刚使用的一个脚本,用于将带有1个重命名的项目转换为mercurial。您必须在空目录中运行此操作,就像在每次迭代中运行rm-rfv*一样:

#!/bin/bash
set -e
svnpath=svn://host/repo/project
hg init
for r in $(svn log $svnpath | egrep -o '^r[0-9]+' | tac); do
  rm -rfv *
  svn export --force -r $r $svnpath .
  hg addremove -s 50
  message="$(svn log -c $r $svnpath | tail -n +4 | head -n -1)"
  echo "$message" >&2
  changes="$(hg st)"
  [[ "$changes" ]] && hg commit -m "$message"
done