使用expect迁移多个存储库

时间:2016-02-26 19:02:59

标签: expect svn2git

我有多个存储库,我想从svn转换为git。 我尝试编写一个简单的期望脚本来转换一个repo。

#!/usr/bin/expect 

spawn svn2git svn://svn-server/repo --username $username --verbose 
expect {Password for '$username'} 
send "$password\r" 

他输入密码,然后超时退出。

2 个答案:

答案 0 :(得分:0)

Git在内部启动SSH以连接到远程存储库,SSH检测何时从另一个程序启动,并且不允许从脚本输入密码作为安全功能。

您需要一个专门的程序,如sshpass,可以通过脚本在SSH中输入密码,或者设置SSH密钥。

答案 1 :(得分:0)

我认为svn2git需要几秒钟才能完成。在send命令

之后添加此项
set timeout -1
expect eof