远程是svn的服务器,用svn checkout http://<balabal>/namea/trunk拉取到本地,看到一个trunk目录,进去能看到一个目录树,然后进其中一个src目录可以编译成功;但是用git svn clone http://<balabal>/namea/trunk拉取到本地,trunk目录跟上面的步骤有很大的不同,然后进src目录没法编译成功,qmake就失败了,trunk下看到.git/config的内容为:
[svn-remote “svn”]
url=http://<balabal>/namea fetch=trunk/trunk:refs/remotes/trunk branches=trunk/branches/*:refs/remotes/* tags=trunk/tags/*:refs/remotes/tags/*
git branch -a显示:
*master remotes/trunk
然后,在前面把地址改成git svn clone http://<balabal>/namea,拉取到的code目录多了一层namea,.git目录在namea下面,进入namea/trunk,这次trunk下的目录树跟svn拉取到的完全一致了,然后进入src,这次qmake是可以成功了,但是qmake之后make debug失败,发现有些目录的有些文件没有拉下来,这是为什么呢?!这次看namea下面的.git/config有很大的不同:
[svn-remote “svn”]
url=http://<balabal>/namea fetch=:refs/remotes/git-svn
git branch -a显示:
*master remotes/git-svn
改了一下最后一次命令,git svn clone加上-s,现在看起来正常一点,但是仍然少了两个头文件,autopack_parser.h和autopack_sckt.h,不知道这两个头文件是不是qmake自动生成的。把这两个头文件copy过来,make还是失败,报了sckt相关的错误,可能跟默认的系统库不一样有关系吧。哎,git和svn差别这么大啊~~之前看到过一篇文章说把svn迁移到git,目录树完全一样但是编译过不了,好像就是说这个问题,说编译跟版本控制相关。
明白一些了,确认是qmake调用的脚本出问题了,导致两个autopack的头文件没有生成,然后编译错误也知道是怎么回事了,拉新code后,需要make clean然后重新qmake生成新的头文件就行了,跟git-svn系统无关。跟git-svn系统有关的就还是qmake调用的python脚本,在svn系统中是没有问题的,但是到了git-svn系统就有问题了报了一个error:
python3: symbol lookup error: python3: undefined symbol: _Py_LegacyLocaleDetected.
需要继续研究。