我试图将我们公司的CVS转换为Mercurial,但到目前为止还没有成功。应保留远程文件历史记录。
我尝试了RepositoryConversion - Mercurial
中描述的转换工具e:\Hg>hg convert -s CVS H:\Cvs
assuming destination cvs-hg
initializing destination cvs-hg repository
abort: CVS: invalid source repository type
发生了什么事?!
看起来很有希望,但在最后一刻出错了。
python cvs2hg -v --encoding=UTF8 --hgrepos=e:/Hg h:/Cvs
10分钟和9英里文本后的结果:
----- pass 14 (SortSymbolOpeningsClosingsPass) -----
Sorting symbolic name source revisions...
Done
Time for pass14 (SortSymbolOpeningsClosingsPass): 0.150 seconds.
Deleting cvs2svn-tmp\statistics-13.pck
Deleting cvs2svn-tmp\symbolic-names.txt
----- pass 15 (IndexSymbolsPass) -----
Determining offsets for all symbolic names...
VERSION_0_22
VERSION_0_18
VERSION_0_11
VERSION_0_9
VERSION_0_5
VERSION_0_1
Done.
Time for pass15 (IndexSymbolsPass): 0.130 seconds.
Deleting cvs2svn-tmp\statistics-14.pck
----- pass 16 (OutputPass) -----
Traceback (most recent call last):
File "cvs2hg", line 91, in <module>
hg_main(os.path.basename(sys.argv[0]), sys.argv[1:])
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\main.py", line 135, in hg_main
main(progname, run_options, pass_manager)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\main.py", line 96, in main
pass_manager.run(run_options)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\pass_manager.py", line 181, in run
the_pass.run(run_options, stats_keeper)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\passes.py", line 1771, in run
svn_commit.output(Ctx().output_option)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\svn_commit.py", line 238, in output
output_option.process_primary_commit(self)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\hg_output_option.py", line 291, in process_primary_commit
svn_commit, [parent1, parent2], filenames, getfilectx, lod)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\hg_output_option.py", line 715, in _commit_primary
return self._commit(svn_commit, parents, filenames, getfilectx, lod)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\hg_output_option.py", line 733, in _commit
return self._commit_memctx(mctx)
File "c:\Portable progs\cvs2svn-19b322d42b1f\cvs2svn_lib\hg_output_option.py", line 739, in _commit_memctx
node = self.repo.commitctx(mctx)
File "mercurial\localrepo.pyo", line 63, in wrapper
File "mercurial\localrepo.pyo", line 1399, in commitctx
File "mercurial\localrepo.pyo", line 1193, in _filecommit
File "mercurial\filelog.pyo", line 76, in cmp
AttributeError: 'bool' object has no attribute 'startswith'
最初被链接腐烂阻止,但经过谷歌搜索后,变成仅限Linux的工具(?)。我确实有cygwin,但我没有任何编译源发行版的好经验。
链接腐烂,也无法找到任何东西。关于最后三个工具,我在Would you migrate from cvs to svn or directly to git or hg?上阅读:&#34; Tailor扩展,hg-cvs-import,fromcvs似乎是旧代码,不再维护。&#34;
我也尝试了Convert cvs to mercurial上的技巧,尽管它可能只保留了本地文件历史记录,但结果与我第一次尝试的结果相同。
我错过了其他任何工具?也许是一个用户友好的Windows应用程序?
答案 0 :(得分:1)
我成功了 cvs2hg 和 Mercurial 2.0来源(不是更新的版本)
Mercurial
文件夹(位于Mercurial-2.0
文件夹中)复制到cvs2svn
文件夹,cvs2svn/Mercurial/pure
,cvs2svn/Mercurial
,python cvs2hg