如何使用svn版本控制正确删除xcode 4上的文件

时间:2011-05-05 11:54:40

标签: svn xcode4

当我从svn版本控件上的projet中删除带有finder的文件或文件夹时,我总是收到警告:

file://localhost/Users/XXX/Documents/Projets/XXX/file.jpg:警告:缺少文件:工作副本中缺少/Users/XXX/Documents/Projets/XXX/file.jpg

如何正确删除文件? 该文件未显示在项目导航器中。

感谢。

5 个答案:

答案 0 :(得分:26)

另一个答案是不必要的复杂,涉及从工作文件夹中删除所有源代码控制绑定 - 当有一个简单的修复可用时。

当您在Finder中移动文件或在Finder中删除文件,然后在Xcode中的缺失引用上点击“删除”时,通常会发生此行为。

这是因为Xcode自动将文件“添加”到SVN - 所以既然文件不再存在,SVN很困惑,因为它认为它应该在那里 - 当你在Finder中删除文件时你的SVN信息没有' t得到更新(你没有删除SVN中的文件)。

警告不是Xcode警告本身 - 而是更多的一般源控制/ SVN警告。

要修复警告(以及本地SVN工作文件夹的状态),请使用SVN客户端“恢复”之前的“添加”操作:

svn revert PATH

或者,不太优选,您可以强制“删除”丢失的文件:

svn delete --force PATH

为防止首先发生错误,请始终通过Xcode“删除”,或通过SVN客户端(但是,如果您通过SVN客户端删除它,则仍需要删除Xcode中缺少的引用 - 所以你不妨在Xcode中将其删除为。)

答案 1 :(得分:7)

有同样的问题,我刚刚解决了它:

  1. 删除Xcode管理器中的存储库
  2. 退出Xcode
  3. 删除所有.svn隐藏文件夹(也在* .xcodeproj文件中)
  4. 希望这也适合你。

答案 2 :(得分:4)

从文件夹中删除文件后,我遇到了同样的问题,然后从XCode项目中引用。

我通过提交SVN解决了这个问题,然后再次从SVN更新了工作副本。

答案 3 :(得分:0)

对我而言,它就像更新Xcode(5)工作区一样简单。

答案 4 :(得分:0)

当您在Xcode上删除文件时会发生这种情况,但没有告诉svn服务器。

转到命令行工具,直接删除文件。

public class LockTester
{
    public static void main(String[] args)
    {
        Lock myLock = new Lock();
        int[] c={1,7,2,9};
        myLock.push(c);
        System.out.println(myLock.open());
        System.out.println("Expected: false");
    }
}


import java.util.*;
public class Lock {
private int combination = 1729;
private int input;
int[] code = new int[4];

public void push(int[] button){
    for (int i=0;i<button.length;i++){
        code[i]=button[i];
    }
}
public boolean open(){
    boolean results = false;
    int boop = 0;
    for (int i = 0;i < 4; i++){
        System.out.println(code[i]);
    }
    if(boop == combination){
        results = true;
    }
    return results;
    }
}

并提交

svn delete missingFile.m 

请注意,如果删除.svn文件夹,则警告消失,但您将失去与svn服务器的通信。