如何给定路径字符串svn up每个祖先目录?

时间:2017-08-30 17:42:35

标签: bash shell svn csh

我想在深层路径中创建一个文件。 a/b/c/d.py,是否可以制作单线程csh或bash脚本来执行以下操作?如果无法使用一个班轮,我该如何在脚本中执行此操作?

# a b c directories do not exist in local working copy at the
# beginning, and they contain other files and directories
svn up a --depth empty
svn up a/b --depth empty
svn up a/b/c --depth empty
svn up a/b/c/d.py --depth empty

想象用法

someAliasOrScript a/b/c/d.py

编辑:我使用的是svn 1.7.1,我无法更新到最新的1.9.5

  

svn up a / b / c / d.py Skipped' a / b / c / d.py'   冲突摘要:     跳过的路径:1

我在新签出的工作副本根目录

> svn info
Path: .
Working Copy Root Path: xxx
URL: xxx
Repository Root: xxx
Repository UUID: xxx
Revision: xxx
Node Kind: directory
Schedule: normal
Depth: empty
Last Changed Author: xxx
Last Changed Rev: xxx
Last Changed Date: xxx

然后我尝试了svn 1.9.5,错误是

Skipped 'a/b/c/d.py'
svn: E155007: None of the targets are working copies

1 个答案:

答案 0 :(得分:1)

您可以使用上一个命令直接更新文件:

svn up a/b/c/d.py 

这只会更新d.py文件。

编辑:这仅作为更新工具。据我所知,你正在谈论做第一次结账。因此,您需要这样做:

 svn co a --depth empty
 svn up a/b --depth empty
 svn up a/b/c --depth empty
 svn up a/b/c/d.py --depth empty

这适用于svn 1.9.7。在您更新文件时,可能会尝试svn up a/b/c/d.py而不是svn up a/b/c/d.py --depth empty

此外,这似乎是您只想查看文件夹c(为什么有多个图层?)