首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVN -特定类型或匹配模式的稀疏签出文件

SVN -特定类型或匹配模式的稀疏签出文件
EN

Stack Overflow用户
提问于 2016-09-28 21:33:47
回答 1查看 446关注 0票数 1

我正在使用一个庞大的SVN存储库--它由数百个目录(都位于不同的深度)和数千个文件(所有类型都不同)组成。我需要对这个回购中包含的几百个JavaScript文件进行批量更新。而不是下载整个回购,我希望有选择地只签出.js文件。我一直在玩弄各种不同的方法,但一直没能破解。这是我想出来的.

代码语言:javascript
复制
# CHECKOUT INITIAL WORKING COPY
svn co https://myrepo.com/site-content --depth empty

# NAVIGATE TO WORKING COPY
cd site-content

# CHECKOUT FULL DIRECTORY TREE
env REPO=https://myrepo.com/site-content sh -c 'svn ls -R $REPO | grep "/\$" | xargs -n 1 svn co --depth empty $REPO'

# UPDATE WORKING COPY WITH .JS FILES
svn up `svn ls -R https://myrepo.com/site-content | grep .js$`

我在终点站收到的回复似乎表明,一切正常,但情况显然并非如此。剩下的是完整的目录树,但绝对没有.js文件。下面是我的终端输出的示例:

代码语言:javascript
复制
jakes-mac:working-copy jake$ svn co https://myrepo.com/site-content --depth empty

    Checked out revision 21097.

jakes-mac:working-copy jake$ cd site-content

jakes-mac:site-content jake$ env REPO=https://myrepo.com/site-content sh -c 'svn ls -R $REPO | grep "/\$" | xargs -n 1 svn co --depth empty $REPO'

    Checked out revision 21098.
    Checked out revision 21098.
    Checked out revision 21098.
    Checked out revision 21098.
    Checked out revision 21098.
    ...
    Checked out revision 21099.
    Checked out revision 21099.
    Checked out revision 21099.
    Checked out revision 21099.
    Checked out revision 21099.

jakes-mac:site-content jake$ svn up `svn ls -R https://myrepo.com/site-content | grep .js$`

    Updating '2013/js/_old/script.trees.bak.rev-a.js':
    At revision 21100.
    Updating '2013/js/_old/script.video.bak.rev-a.js':
    At revision 21100.
    Updating '2013/js/script.category.js':
    At revision 21100.
    Updating '2013/js/script.trees.js':
    At revision 21100.
    Updating '2013/js/script.video-v2.js':
    At revision 21100.
    Updating '2013/js/script.video.js':
    At revision 21100.
    Updating '2014/TreeGiveaway/js/script.sweeps.js':
    At revision 21100.
    Updating '2014/TreeGiveaway/js/validate-voting.js':
    At revision 21100.
    Updating '2014/js/collectionslider.js':
    At revision 21100.
    Updating '2014/js/difference.js':
    At revision 21100.
    Updating '2014/js/mobile.js':
    At revision 21100.
    Updating '2014/js/script.category.js':
    At revision 21100.
    Updating '2014/js/script.quicklight_inset.js':
    At revision 21100.
    Updating '2014/js/script.trees.js':
    At revision 21100.
    Updating '2014/js/script.trees.v3.js':
    At revision 21100.
    Updating '2014/js/script.trees_inset.js':
    At revision 21100.
    Updating '2014/js/script.trees_inset.new.js':
    At revision 21100.
    Updating '2014/slideshow/js/jquery.easing.min.js':
    At revision 21100.
    Updating '2014/slideshow/js/script.js':
    At revision 21100.
    Updating '2014/slideshow/js/supersized.3.2.7.js':
    At revision 21100.
    Updating '2014/slideshow/js/supersized.shutter.js':
    At revision 21100.
    Updating '2015/js/framework.fetchFeed.js':
    At revision 21100.
    Updating '2015/js/framework.goModal.js':
    At revision 21100.
    Updating '2015/js/frameworkForMobile.js':
    At revision 21100.
    Updating '2015/js/script.category.js':
    At revision 21100.
    Updating '2015/js/script.hs.js':
    At revision 21100.
    Updating '2015/js/script.shop-the-scene.js':
    At revision 21100.
    Updating '2015/js/script.trees.js':
    At revision 21100.
    Updating '2015/tree-finder/results.script-v2.js':
    At revision 21100.
    Updating '2015/tree-finder/results.script.js':
    At revision 21100.
    Updating '2015/tree-finder/wizard.script.js':
    At revision 21100.
    Updating 'current/js/holiday-decor.js':
    At revision 21100.
    Updating 'current/js/how-to.js':
    At revision 21100.
    Updating 'current/js/shop-the-style.js':
    At revision 21100.

编辑:

都开始工作了!最终命令列表:

代码语言:javascript
复制
# CHECKOUT INITIAL WORKING COPY
svn co https://myrepo.com/site-content --depth empty

# NAVIGATE TO WORKING COPY
cd site-content

# CHECKOUT FULL DIRECTORY TREE
env REPO=https://myrepo.com/site-content sh -c 'svn ls -R $REPO | grep "/\$" | while read dir; do svn co --depth=empty $REPO/$dir $dir; done'

# UPDATE WORKING COPY WITH .JS FILES
svn up `svn ls -R https://myrepo.com/site-content | grep .js$`

# COMMIT ALL CHANGES TO REPO
svn commit `svn ls -R | grep .js$` -m "Bulk Updating Content"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 13:23:09

使用“签出完整目录树”命令,您在所有目录中再次签出存储库根。

代码语言:javascript
复制
env REPO=https://myrepo.com/site-content sh -c 'svn ls -R $REPO | \
grep "/\$" | xargs -n 1 svn co --depth empty $REPO'
                                             ^^^^^

参见例如svn info 2014/js/的输出

“.似乎表明一切正常,”--这不是真的,因为人们看不到这样的一条线

A <filename>,G.

代码语言:javascript
复制
Updating '2014/js/script.trees.v3.js':
A    2014/js/script.trees.v3.js

试着做这样的事情:

代码语言:javascript
复制
env REPO=https://myrepo.com/site-content sh -c 'svn ls -R $REPO | \
    grep "/\$" | while read dir; do svn co --depth=empty $REPO/$dir $dir; done'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39758036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档