2014-06-05 50 views
0

因此,這裏是我想在窗口解決,cygwin的,使用TortoiseSVN問題:SVN加入目錄修改的內容沒有CD

我有一個目錄「DIR1」,這是內部的一個目錄「目錄「是顛覆控制。我有一個腳本可以改變「dir1」的內容,我希望這個腳本自動將更改提交給svn。但是運行:

svn add dir1/* 

給我一個錯誤:

svn: E155007: 'dir1' is not a working copy.

現在如果我用CD DIR1,並運行

svn add * 

它的正常工作。有沒有辦法做到這一點,而不打電話給CD?

+0

所以我發現問題在於使用cygwin路徑:/ cygdrive/e/dir1/*,當我使用e:/ dir1/*它正在工作時。所以新的問題是如何從cygwin獲取Windows路徑? –

回答

0

如果你擔心改變腳本的當前目錄下,你可以只是在一個子shell中運行它:

(cd dir1 && svn add *) 

調用shell的當前目錄不會被它改變。你

也可以使用pushd和popd的,但我覺得用一個子shell清潔:

pushd dir1 >/dev/null && { svn add *; popd >/dev/null; } 

最後,我不建議cd x; cd -

+0

我知道我可以用cd做到這一點。但我的問題是如何做到這一點,而無需切換目錄兩次。 –

+0

@lalamer使用子殼你只能切換一次目錄。乍一看[svn的選項](http://svnbook.red-bean.com/en/1.7/svn.ref.svn.html#svn.ref.svn.sw)我懷疑'svn'支持自定義其命令的基本目錄。 – konsolebox

+0

您切換目錄一次,但使用了一個子shell,這會導致比cd更熱的過熱。我發現問題在於cygwin正在通過cygwin路徑,例如/ cygdrive/c ...而不是c:/ ...所以,如果你知道一個非常簡單的(單行)方法將cygwin路徑轉換爲常規windows路徑,我會給你接受;)。使用字符串操作的困難方式對我來說並不重要。 –