假如有一个工程project,存在在A机器,提交到版本控制器svn1中,假如URL为svn:XXX1;现在我把该project拷贝到B机器(A和B不在同一局域网),需要把project提交到另一个svn2中,URL为:svn:XXX2,开发环境:eclipse+subclipse。但是在B机器上提交project时老时弹出错误说无法连接到svn1中,怀疑是从A机器拷贝的project中的svn文件夹中有svn1的配置信息,如何修改?

解决方案 »

  1.   

    先add 再commit 你是这样做的吗
      

  2.   

    客户端 relocate 到新地址。
      

  3.   

    你的svn安得有问题,或者是你的3690端口没打开,这时你只能用file:///提交,如果有apeche还可以用http://提交。解决不能用svn://访问的方法如下:
    subversion服务器端
    1. 下载
    地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91。在这里下载.msi的文件,如果下载别的可能要出错误(我下载的.zip结果没有bin目录等,导致svn://localhost/数据仓库名 无法访问,并且不能导入,只能用file:///来访问)
    Ps:MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。它还包含有关安装过程本身的信息:如安装序列、目标文件夹路径、系统依赖项、安装选项和控制安装过程的属性。 安装包,微软对应installer3推出的安装文件格式。
    2. 问题:svn服务器无法启动
    安装svnservice在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
    例如我的Subversion安装在"D:\Subversion",版本库在"D:\svnroot",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
          sc create svnservice
          binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
          displayname= "SVNService"
          depend= Tcpip
          
    请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
    在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。
    另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,红色部分是改变部分:
          sc create svnservice
          binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
          displayname= "SVNService"
          depend= Tcpip
          
    其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
    如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
    配置服务是自动启动默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
          sc create svnservice
          binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
          displayname= "SVNService"
          depend= Tcpip
          start= auto
          
    当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
    Ps:也许在你安装的过程中可能还会出现问题,但是我要说,只要你是下载的正确的版本,按照我的方法解决问题就一定不会再出现其他问题。
      

  4.   

    1.从svn1中导出不带版本信息的工程内容
    2.导入到svn2中
      

  5.   

    我先把project工程导入B机器的eclipse中,在新的svn服务器上建了一个仓库,在eclipse中右键该工程,选择team->Share project到新建的代码仓库url中,然后commit,老是出错,提示说无法连接原来的svn路径。我右键工程Properties-->SubVersion,看到URL项还是原来的svn服务器路径,但是Ropository Root项是新的svn服务器路径
      

  6.   

    我的是j2se工程,其他的工程可以正确提交
      

  7.   

    很简单,在eclipse里,将鼠标放在这个项目上,点鼠标右键,Team->切换至,然后出来一个窗口,就将已有的url改成现在url,点击OK,就搞定了
      

  8.   

    如果没明白,可以交流,[email protected],我经常做这样的操作
      

  9.   

    1.Team->Disconnect  选Also delete the SVN....
    2.Team->share project->选SVN2的URL
      

  10.   

    复制过去后,搜索该文件夹  .svn  将所有文件夹为 .svn 的都删掉,就能清除原来的svn信息,没有这些信息才能提交到另一个svn,不然会重复
      

  11.   

    跟svn的安装没关系的就是文件夹里面的这些svn信息。
      

  12.   

    方法1:右键->搜索工程目录->搜索.svn文件夹(隐藏文件)全部删除,再导入SVN2上方法2:右键->TortoiseSvn->Repo Browser选择1的目录,选择COPY TO URL,输入SVN2的地址(前提是你能同时连上两个SVN)
      

  13.   

    project里面每个子文件夹下都有一个.svn文件夹,要是每个都要排除太麻烦了
      

  14.   

    你是说你其他的可以正常导入,就j2se不能正常导入?
      

  15.   

    我的意思是想说安装Svn没问题,可以正常提交其他的工程。
      

  16.   


    晕死啊,先在文件夹中搜索所有的SVN文件,然后再搜索中直接用CTRL+A全选所有的SVN文件然后删除,整个工程中的SVN文件就删完了,呵呵
      

  17.   

    可以清空再导入,也可以Team->switch to another...
      

  18.   

    你这样做是不对的,你不能直接从A机器把工作拷贝 复制到 B机器上,这样做的话在B机器上提交会提交到SVN1库中,由于B机器与SVN1不在同一个局域网,所以会提交不成功。
    解决办法:在机器A上 EXPORT SVN1的内容,再通过移动设备复制到机器B上,在机器B上 IMPORT 到SVN2中,然后机器B从SVN2中CO一份工作拷贝到本地。
    更详细的讨论请访问:SVN俱乐部 http://www.svnclub.com 
      

  19.   

    在工程上右键,team-->断开连接(选择清除svn目录),然后就可以share project工程了。
      

  20.   

    如果你安装了SVN客户端的话,右键想要导入的工程,TortoiseSVN-Relocate改成你新的URL地址即可。
      

  21.   

    请参考:http://hi.baidu.com/i_ccboy/item/cf23d8d1aab601e954347f94