Svn 外部修改的文件
我有一个沙箱,其中存储库中的目录与直接来自存储库的目录混合在一起<代码>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 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
命令,以便对代码中的可变外部列表进行操作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/Lib1Mod1
)
“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