如何解除Xcode 5项目的工作副本与死亡的SVN服务器的关联

时间:2013-12-30 19:34:08

标签: xcode git svn

我有一个Xcode 5项目的修改工作副本,该项目已从不再可用的远程svn服务器检出。如何删除工作副本的svn关联并使其不受源代码管理? (最终我想基于工作副本创建一个git存储库并推送对它的修改。)我不需要保留svn历史记录。

我已尝试将svn服务器与项目解除关联(例如删除工作副本中的.svn目录,以及通过所有文件对svn服务器名称进行grep -r搜索在工作副本目录树中),但项目仍然与svn服务器关联。我更喜欢直接使用工作副本进行此切换,而不是冒险尝试创建一个与svn服务器无关的空“工作副本”,然后从当前副本逐个传输文件。像svn-git这样的工具是不可行的,因为svn服务器都不可用,我的工作副本包含重要的修改。帮助...?

3 个答案:

答案 0 :(得分:35)

我刚才面临类似的问题,我已经把我的git从github转移到了gitLabs。但是,这意味着之前的回购信息仍在我的项目中。

所以我发现当我将gitLab repo添加到Xcode中时,SourceTree显示一个文件被修改了。令人惊讶的是,这是保存所有工作副本服务器记录的文件。

只需导航到"您的项目" .xcodeproj> (右键单击并显示包装内容)> project.xcworkspace> (右键单击并显示包装内容)> xcSharedData> "您的项目" .xccheckout

右键单击该文件并选择打开方式,然后单击"更多.."。使用首选的文本编辑器编辑内部的XML,或者始终使用可靠的TextEdit。

您的旧git / svn服务器可能位于底部,包含在<dict></dict>中。只需删除em并在Xcode中重新加载项目。

答案 1 :(得分:3)

我设法找到了一种方法,虽然可能不是最简单或推荐的程序。这就是让我最终实现将工作副本推送到远程git服务器的目标:

  1. 通过删除.svn文件等删除工作副本中的所有SVN信息。(我在询问原始问题之前已经这样做了。)
  2. 在远程git服务器上为项目创建一个空存储库
  3. 在Xcode的帐户中添加远程git服务器
  4. 关闭Xcode中的所有项目,然后取消选择“启用源代码管理” 在Xcode首选项中;退出Xcode
  5. 将工作副本重命名为临时名称
  6. 启动Xcode,选择Enable Source Control,然后将远程git服务器中的空存储库签出到具有原始工作副本名称的目录中;再次禁用源代码管理,退出Xcode
  7. 将.git目录从签出(空)工作副本移动到原始工作副本目录(在步骤5中重命名);删除空工作副本并将原始工作副本重命名为其原始名称
  8. 启动Xcode并打开工作副本项目; SVN协会应该消失
  9. 重新启用源代码管理,现在应该将工作副本与远程git存储库关联,但没有添加任何文件
  10. 打开“实用工具”检查器,并记下“身份和类型”窗格的“源代码管理”区域中的微小“添加”按钮;单击“添加”将所有文件标记为已添加
  11. 照常提交和推送
  12. 瞧!我的工作副本现在使用远程git服务器关联git。当然,SVN的历史已经丢失,但这对我来说并不是一个问题。必须有一个较短的食谱,但我想分享上述内容,以防万一人处于类似的困境中。

答案 2 :(得分:1)

从以下位置删除所有无回复的回购

DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey

结帐所有步骤Steps