Svn 外部修改的文件

Svn 外部修改的文件,svn,svn-externals,Svn,Svn Externals,我有一个沙箱,其中存储库中的目录与直接来自存储库的目录混合在一起svn状态--忽略外部将告诉我存储库中文件的状态。什么是做相反事情的好方法 例如,如果我有 $ svn status X foo M bar/local.cpp Performing status on external item at 'foo' M foo/external.cpp 因此,忽略外部因素,我 $ svn status --ignore-externals X foo M bar/local.cpp 我在找像这

我有一个沙箱,其中存储库中的目录与直接来自存储库的目录混合在一起<代码>svn状态--忽略外部将告诉我存储库中文件的状态。什么是做相反事情的好方法

例如,如果我有

$ svn status
X foo
M bar/local.cpp

Performing status on external item at 'foo'
M foo/external.cpp
因此,忽略外部因素,我

$ svn status --ignore-externals
X foo
M bar/local.cpp
我在找像这样的东西

$ svn status --ignore-local
X foo

Performing status on external item at 'foo'
M foo/external.cpp
其中仅列出外部存储库中的文件

这可能会以shell或Perl脚本结束,因此可以接受相当复杂的内容

我知道我可以做svn status foo,但我的实际案例有十几个外部案例,而且随着时间的推移,这个数字正在缓慢增长。硬编码列表不是一个好的解决方案

看起来我可以只查找字符串
Performing status
,然后忽略前面的所有内容。(我不在乎
X
行。)这是我可以信赖的订单吗

编辑:为了澄清,我正在从外部存储库中查找已在沙箱中修改的文件。我不在乎文件是否也在外部存储库中被修改过

  • “…查找字符串执行状态…”在纯
    svn st
  • 您必须阅读关于
    svn status
    命令的
    -u
    选项和关于
    svn propget
    命令,以便对代码中的可变外部列表进行操作
  • 工作副本中的样本(针对头部类型外部),带有外部,在repo中更新,并在WC中进行局部修改

    纯身份 存储库中的“Extensions\Mod*`有更改,但您没有看到

    检查回购的状态 获取所有外部信息 相当复杂的情况:两个不同的挂载点,一个点中的一组外部

    WC>svn pg svn:externals -R
    trunk\Core - ^/Vendor/Core+ Core+
    
    trunk\Extensions - ^/Vendor/Lib1 Mod1
    ^/Vendor/Lib2 Mod2
    ^/Vendor/Lib3 Mod3
    
    为了避免“嘈杂”的输出(对于“Externansions\”节点行,前导为X)

    您必须请求仅直接外部目录的状态,完整路径,您必须从
    pg
    输出组合到该目录,f.e(
    trunk\Extensions
    -^/Vendor/Lib1
    Mod1

    “Status on revision”之前的任何输出都意味着现有存储库端的更改:对于未触及的外部,输出将是

    >svn st -u trunk\Extensions\Mod3
    Status against revision:      8
    

    -u标志对我没有用处:我关心的是沙箱中的更改,而不是存储库中的更改。看起来我想要的是
    svn status |一些要解析的东西|和| combine_output.pl | xargs svn status
    @TroyDaniels-好的,你想从“获取所有外部数据”开始阅读吗
    WC>svn pg svn:externals -R
    trunk\Core - ^/Vendor/Core+ Core+
    
    trunk\Extensions - ^/Vendor/Lib1 Mod1
    ^/Vendor/Lib2 Mod2
    ^/Vendor/Lib3 Mod3
    
    WC>svn st -u trunk/Extensions
    
        Status against revision:      7
        X                    trunk\Extensions\Mod1
        X                    trunk\Extensions\Mod2
        Status against revision:      7
    
        Performing status on external item at 'trunk\Extensions\Mod1':
                *            trunk\Extensions\Mod1\file3.txt
                *        4   trunk\Extensions\Mod1
        Status against revision:      7
    
        Performing status on external item at 'trunk\Extensions\Mod2':
                *        4   trunk\Extensions\Mod2\file1.txt
        Status against revision:      7
    
    >svn st -u trunk\Extensions\Mod1
            *            trunk\Extensions\Mod1\file3.txt
            *        4   trunk\Extensions\Mod1
    Status against revision:      8
    
    >svn st -u trunk\Extensions\Mod3
    Status against revision:      8