2014-03-04 34 views
0

有沒有辦法將SVN或TortoiseSVN中的目錄簽出或導出到本地機器上,並且能夠更新但不能提交到該目錄?沒有提交能力的SVN簽出

基本上,我想導出一個目錄,但仍然可以使用類似TortoiseSVN的方式輕鬆更新它。我可以簡單地重新導出目錄,但我想要更簡單的方式來更新文件。

我有一個每天運行並駐留在我的系統上的特定目錄的腳本。我希望能夠輕鬆地將該腳本更新爲SVN中的最新版本。我可以通過從SVN中檢出腳本的副本來完成此操作,但這確實允許某人將任何對其進行的更改提交回回執。

相反,對腳本所做的所有更改都在開發目錄中的其他位置完成(因此允許在開發過程中不對腳本進行任何更改)。當腳本取得重大進展時,我想簡單地導航到腳本並執行更新以獲取最新(或特定修訂版),所以無論如何我都可以在SVN中獲取目錄/文件的工作副本那不允許提交來自它,而是來自其他工作副本?

+1

你試過了嗎?你有沒有得到任何錯誤?我沒有理由,爲什麼它不應該工作。 – nosid

+1

是的,但很明顯,允許或不允許提交是_server_上的一個設置,而不是客戶端上的設置。只需創建一個沒有寫入權限的用戶。 – Wrikken

+0

我不想拒絕服務器上的提交,只是來自這個特定的「工作副本」。 我希望能夠將目錄更新到最新版本,但不能從中進行提交。 – celestialorb

回答

0

您可以通過shell或批處理腳本來做到這一點。首先將所有文件從svn導出到你的機器上。找出導出的版本,比如說1050.創建一個文本文件,內容爲1050的revision.txt。

現在使用下面的shell腳本。

enter image description here

這將找出從revision_fromrevision_to的差異,從SVN出口的變化。以上腳本不會處理已刪除的文件。你可以做到這一點還通過增加一個if條件,像下面:

enter image description here

一旦當前出口完成後,它會更新與SVN的最新版本的文件revision.txt,對於下一次運行。