【问题标题】:Why do I have two (2) working copies in XCode 5 Source Conrol?为什么我在 XCode 5 源代码管理中有两 (2) 个工作副本?
【发布时间】:2014-09-03 04:28:06
【问题描述】:

我有一个有多个版本的 iPad 应用程序;我目前正在开发 v2.1.1,我从远程存储库中签出。这是我单击源代码控制时看到的。这是什么意思,我该如何解决?

【问题讨论】:

  • 转到命令行并cd 到项目目录并输入git branch 并回复它所说的内容。
  • iMac-2:SalonBook rolfmarsh$ git branch * 2.1.1
  • 显然不是...当我看遥控器时,有一个Master,下面有几个分支...但是在本地(使用SourceTree),我没有看到master。 ..
  • 不知道发生了什么,但如果遥控器是最新的,那么我会重命名现有项目并重新克隆。
  • 按照git clone http://whatever.com/myrepo.git中的原样克隆。

标签: git xcode5


【解决方案1】:

我已经使用以下步骤删除了旧的 repo。

  • ProjectName.xcodeproj -> 显示包内容
  • project.xcworkspace -> 显示包内容
  • xcshareddata
  • 使用任何文本编辑器打开 .xcscmblueprint 文件
  • 从以下位置删除所有未请求的 repo DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey
  • 保存文件并再次打开 Xcode

【讨论】:

  • 并不总是有效。我的文件完全是空的。仍然 XCode 看到 2 个 repos。
【解决方案2】:

@Piyush 给出了正确答案。但是,我最近发现了一个需要满足的条件才能使这种方法发挥作用。

在“.xcscmblueprint”文件中删除对旧仓库的引用之前,您应该确保您的项目中没有从其他项目导入而没有复制的文件。如果是这种情况,Xcode 将重新生成“.xcscmblueprint”文件并再次引用第二个 repo,因为您的一些文件位于属于第二个 repo 的文件夹中。

您需要做的就是确保将此类文件复制到您的项目中,而不是简单地引用它们。一旦确保执行@Piyush 描述的所有步骤,对第二个 repo 的引用将被删除。

【讨论】:

    【解决方案3】:

    您可以在

    下删除那些不需要的工作副本
    ProjectName.xcodeproj > project.xcworkspace > xcshareddata
    

    它们被列为 .xccheckout 文件。

    【讨论】:

      【解决方案4】:

      就我而言,我有一个明确的工作区(在文件夹 <workspace_name>.xcworkspace 中)。当我查看工作区文件夹时,我在xcshareddata 文件夹中发现了两个文件:<worspace_name>.xccheckout<worspace_name>.xcscmblueprint。在我的情况下,扩展名为 .xccheckout 的文件似乎没问题,但我必须通过删除对不需要的工作副本名称的引用来清理扩展名为 .xcscmblueprint 的文件。查看之前/之后:https://gist.github.com/mczenko/b7d5a1e52e167f4299e1

      【讨论】:

        猜你喜欢
        • 2013-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-15
        • 1970-01-01
        • 2013-01-19
        • 2012-05-14
        相关资源
        最近更新 更多