2017-08-30 139 views
0

我想要在深層路徑中找到一個文件。 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的一個/ B/C /d.py跳過'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 
+0

你試過跑'SVN更新PATH-TO-FILe'?它應該沒有任何特殊的腳本。我不明白你爲什麼問這個問題。 – bahrep

+0

它沒有工作,所以我問了這個問題,是的,我試過了,看到更新的信息。 – Shuman

回答

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的情況下(爲什麼具有多層?)

+0

由於某種原因,它不適用於我。檢查我更新的錯誤信息 – Shuman

+0

編輯答案。 – Jon

+0

這並沒有回答我的問題,我想在一行中完成這些命令,因爲我不想一個接一個地完成它們。爲了簡化這個問題,我在原始問題中說過,我已經檢查了最上面的本地工作目錄,這意味着在'a'上面有另一個'root'目錄,並且我運行了'svn co root --depth empty' – Shuman

相關問題