代码之家  ›  专栏  ›  技术社区  ›  Tim Visher

如何克服SVN“过时”错误?

svn
  •  324
  • Tim Visher  · 技术社区  · 16 年前

    我一直试图在Subversion中将目录结构从一个位置移动到另一个位置,但是我得到了一个 Item '*' is out of date 提交错误。

    我有最新版本的支票(据我所知)。 svn st -u 除mv命令外,未显示任何差异。

    31 回复  |  直到 16 年前
        1
  •  603
  •   Michael    16 年前

    我有时会在窗户上看到这个。我的解决办法是 svn update 目录,即使没有要下载或更新的修订。它对元数据做了一些事情,从而神奇地修复了它。

        2
  •  40
  •   rtack CommonsWare    11 年前

    在尝试了所有显而易见的事情,以及这里的其他一些建议之后,谷歌的搜索结果导致了这个链接(链接不再有效了)—— Subversion says: Your file or directory is probably out-of-date

    简而言之,诀窍是 VPN目录 (在包含违规文件的目录中),以及 删除“所有wcprops”文件 .

    在没有其他事情的时候为我工作。

        3
  •  39
  •   Jim Deville    16 年前

    我相信这个问题来自.svn文件。在旧的父项、新的父项或旧的父项中,这是不正确的。我试着回到你的起点。使用导出获取文件夹的干净副本。将干净的副本移动到新位置,然后使用“添加”和“删除”进行移动。这是SVN所做的手动操作,但它可能会工作。

        4
  •  30
  •   Per Löwgren    11 年前

    我发现这对我有用:

    svn update
    svn resolved <dir>
    svn commit
    
        5
  •  13
  •   Stu Thompson Helter Scelter    13 年前

    尝试更新本地副本,并还原有问题的项,但仍然出现“过期”错误。这是有原因的:

    svn update --force /path/to/dir/or/file
    
        6
  •  10
  •   Rafael Xavier    11 年前

    我刚刚在几个文件夹中遇到了同样的问题,这就是我要提交的内容:

    1)在“团队同步”透视图中,右键单击文件夹>覆盖并更新
    2)再次删除文件夹
    3)承诺并快乐

        7
  •  5
  •   Jay    13 年前

    谢谢您。我刚刚解决了这个问题。 svn update—强制/路径到文件名/

    如果本地目录中最近的文件相同,则不会出现提示。如果文件不同,则提示输入tf、mf等。选择MF(我的全套)确保不会覆盖任何内容,完成后我可以承诺。

    杰伊 组合器

        8
  •  5
  •   Alvin567    12 年前

    我按了一个更新按钮就解决了

        9
  •  4
  •   Aeon    16 年前

    就像@alexander klyubin建议的那样,在存储库中进行移动。它也会更快,特别是如果你有大量的数据要移动,因为你不必再通过网络传输所有的数据。

    svn mv https://username@server/svn/old/ https://username@server/svn/new/
    

    应该工作得很好

        10
  •  3
  •   j0k BlackMario    12 年前

    使用删除文件或路径 在执行该命令之前,请对所做的更改进行备份。

    sudo rm -r /path/to/dir/
    

    后:

    svn up and commit or delete 
    
        11
  •  2
  •   jgreep    16 年前

    你确定你已经检查过头部而不是较低版本了吗?另外,您是否进行了更新以确保获得最新版本?

    关于这个有个讨论 http://svn.haxx.se/users/archive-2007-01/0170.shtml .

        12
  •  2
  •   Alexander    16 年前

    直接在存储库中执行移动。

        13
  •  2
  •   infogizmo    11 年前

    “过期”消息错误至少还有一个其他原因。在我的例子中,问题是.svn/dir props,它是第一次运行“svn propset svn:ignore-f.gitignore”创建的。删除.svn/dir属性似乎是个坏主意,可能会导致其他错误,因此最好使用“svn propdel”来清除错误的“svn propset”。

    # Normal state, works fine.
    > svn commit -m"bump"  
    Sending        eac_cpf.xsl
    Transmitting file data .
    Committed revision 509.
    
    # Set a property, but forget to commit.
    > svn propset svn:ignore -F .gitignore .
    property 'svn:ignore' set on '.'
    
    # Edit a file. Should have committed before the edit.
    > svn commit -m"bump"                   
    Sending        .
    svn: Commit failed (details follow):
    svn: File or directory '.' is out of date; try updating
    svn: resource out of date; try updating
    
    # Delete the property.
    > svn propdel svn:ignore .              
    property 'svn:ignore' deleted from '.'.
    
    # Now the commit works fine.
    > svn commit -m"bump"     
    Sending        eac_cpf.xsl
    Transmitting file data .
    Committed revision 510.
    
        14
  •  2
  •   Perkins    9 年前

    如果您使用的是Github SVN网桥,很可能是因为Github方面发生了变化。解决方案很简单,只需运行 svn switch 它可以正确地找到自己,然后进行更新,一切都会正常工作。只需从签出的根目录运行以下内容

    svn info | grep Relative 
    svn switch path_from_previous_command
    svn update
    

    svn switch `svn info | grep Relative | sed 's_.*: __'`
    svn update
    

    这个解决方案的基础来自 Lee Preimesberger's blog

        15
  •  1
  •   Ryan Bigg Andrés Bonilla    16 年前

    你用什么移动它? svn mv ,或者只是 mv ?我认为使用 中频 可能导致此问题。

        16
  •  1
  •   Melissa    14 年前

    为了安全起见,我将dir移到了本地机器上,然后svn删除了愚蠢的目录,然后提交。当我尝试从本地计算机添加文件夹时,它仍然会引发错误(当我尝试重命名文件夹时,SVN MOVE也做了同样的事情)。所以我回复,然后我做了一个mkdir目录名,添加并提交。然后我将内容添加到并提交,它就工作了。

        17
  •  1
  •   Bower    12 年前

    在删除了几个目录(每个目录包含一些文件)之后,我随机地收到了这个错误。我通过netbeans删除了目录,意识到它并没有真正删除它们。它似乎只是删除了目录中的所有内容,并删除了对netbeans中目录的引用。不过,它们仍然存在于文件系统中。确保它们已从文件系统中删除,然后再次尝试提交。

        18
  •  1
  •   fileunderwater    12 年前

    如果曾经通过简单地签出一个新的工作副本并用这个新签出的目录替换.svn目录来解决类似的问题,那么就会抛出提交错误。在我的案例中,原因是在存储库损坏并从备份中还原之后,工作副本指向的是还原存储库中不存在的修订。还有“项目过期”错误。在提交之前更新工作副本并不能解决这个问题,但替换了上面描述的.svn。

        19
  •  1
  •   Sameer Patel    9 年前

    我做到了这一点,这对我很有用:
    1。备份文件。您可以简单地将代码复制到文本文件中。
    2。右键单击要提交的文件>>团队>>显示历史记录。 三。在“显示历史记录”面板中,您将看到该文件的所有修订。右键单击文件的最新版本>>获取版本:它将覆盖您的本地更改。
    4。现在,将您的代码与最新的文件和备份文件合并(步骤1)。
    5。同步并提交新合并的文件。

        20
  •  1
  •   bahrep Ahamed    8 年前

    将服务器和客户端升级到Subversion 1.9。

    如果 out of date 当它通常不应该出现时,错误会随机发生,当您运行commit时,它可能表明您使用的是过时的、不受支持的1.7或更旧的客户端或服务器。

    为了解决这个问题,您应该升级服务器和客户机。请参见相关的Subversion 1.9发行说明条目: "Out of date" errors when committing over HTTPv1 .

        21
  •  1
  •   Abhishek    8 年前

    错误是因为您没有更新该特定文件,首先更新,然后只有您可以提交该文件。

        22
  •  1
  •   katana0815    8 年前

    尝试了除.svn中的所有更改。没有什么帮助,所以这里是我的解决方案。

    在Eclipse窗口中显示视图 历史 我已经看到该文件不是最新版本,尽管我创建了多个SVN“override&update”/“revert”/“delete file and checkout”。

    所以我去了Package Explorer>右键单击“文件”> 替换为存储库中最新的 .

    历史视图中的另一个视图显示文件现在是最新版本。

        23
  •  0
  •   Jim Ferrans    15 年前

    当我用来自主干的文件更新早期版本的一个分支时,发生了这种情况。我用Windows资源管理器复制 文件夹 从我的主干结帐文件夹,并粘贴到我的Eclipse视图的释放分支结帐文件夹。现在,Windows资源管理器被配置为不显示以“.”开头的“隐藏”文件,因此我忘记了将所有不正确的.svn文件粘贴到我的发布分支签出文件夹中。呸!

    我的解决方案是炸掉损坏的Eclipse项目,再次检查它,然后更仔细地复制新文件。我还更改了窗口以显示“隐藏”文件。

        24
  •  0
  •   Al W    13 年前

    尝试提交某些文件时出现此错误,但它是我的工作副本中不存在的文件/文件夹。我真的不想经历移动文件和重新检查的麻烦,最后,我编辑了.svn/entries文件并删除了有问题的目录引用。

        25
  •  0
  •   Macilias    11 年前

    在我的例子中,只有删除本地版本和重新签出新副本才是解决方案。

        26
  •  0
  •   brunch875    11 年前

    我刚刚收到这个错误。我建议您首先在服务器上检查原始文件是否存在。有时更改不是在本地文件夹中进行的。 如果这是您的情况,只需删除文件夹并再次签出即可。

        27
  •  0
  •   sandolkakos    9 年前

    为了解决这个问题,我需要恢复有问题的文件,并更新我的工作副本,然后我再次修改了文件,在这些步骤之后,错误就不再发生了。

        28
  •  0
  •   Indrajeet Gour    9 年前

    只需在命令行中执行SVN,或者如果您在Windows中,请选择SVN更新选项。

    • 一旦这样做了,你就可以采取进一步的行动,比如承诺和其他。
        29
  •  0
  •   Anthony    8 年前

    我刚拿到这个 commit 从A trunk 目录。做 svn update 大旅行箱 目录没有解决错误;但是,正在执行 支持向量机更新 从父目录(其中 .svn 目录所属)确实解决了错误。

    我对发生的事情的猜测(一个用例等,可能有多种原因导致这个svn:e160024:资源过时;尝试更新):以及 大旅行箱 有一个 branches 目录。我拉了一个 branches/branch-1 进入之内 master 从吉瑟布。做 支持向量机更新 从父目录(即工作副本的根目录)而不是 大旅行箱 好像做了些什么 分支机构 除了 大旅行箱 . 当我试图 犯罪 同样,没有错误。

    然而,正如我上面所说,这可能是许多其他案例中的一个。

    旁注:与别人的建议不同,我不认为在 支持向量机 目录。

        30
  •  0
  •   Binara Medawatta    7 年前

    “清理”会让你走上正轨。

    右键单击SVN文件夹,然后单击“清理”,如果出现此错误,请执行此操作。