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

Sti*_*ork 12 svn git xcode

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

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

wah*_*kiz 35

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

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

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

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

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

  • 很好的答案.对我来说有点不同,文件不是".xccheckout"而是".xcscmblueprint".我做了同样的事情并且工作得很好.谢谢 (2认同)

Sti*_*ork 3

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

  1. 通过删除 .svn 文件等从工作副本中删除所有 SVN 信息(我在提出原来的问题之前已经这样做了。)
  2. 在远程 git 服务器上为项目创建一个空存储库
  3. 在 Xcode 的 Accounts 中添加远程 git 服务器
  4. 关闭 Xcode 中的所有项目,然后在 Xcode Preferences 中取消选择 Enable Source Control;退出Xcode
  5. 将工作副本重命名为临时名称
  6. 启动 Xcode,选择“启用源代码管理”,然后将远程 git 服务器中的空存储库检出到具有原始工作副本名称的目录中;再次禁用源代码管理,退出 Xcode
  7. 将 .git 目录从签出的(空)工作副本移动到原始工作副本目录(在步骤 5 中重命名);删除空工作副本并将原始工作副本重命名回其原始名称
  8. 启动 Xcode 并打开工作副本项目;SVN 关联应该消失
  9. 重新启用源代码控制,工作副本现在应该与远程 git 存储库关联,但没有添加任何文件
  10. 打开“实用程序”检查器,并注意“身份和类型”窗格的“源代码管理”区域中的微小“添加”按钮;单击添加将所有文件标记为已添加
  11. 像往常一样提交和推送

瞧!我的工作副本现在位于具有远程 git 服务器关联的 git 下。当然,SVN 历史已经丢失,但这不是我关心的问题。必须有一个更短的食谱,但我想分享以上内容,以防它可以拯救陷入类似困境的任何人。