我一直在嘗試在Subversion中將目錄結構從一個位置移動到另一個位置,但我得到一個Item '*' is out of date
提交錯誤。你如何克服svn'過時'的錯誤?
我已檢出最新版本(據我所知)。除了mv命令之外,svn st -u
沒有任何區別。
我一直在嘗試在Subversion中將目錄結構從一個位置移動到另一個位置,但我得到一個Item '*' is out of date
提交錯誤。你如何克服svn'過時'的錯誤?
我已檢出最新版本(據我所知)。除了mv命令之外,svn st -u
沒有任何區別。
我有時會在Windows上使用TortoiseSVN。我的解決方案是svn update
該目錄,即使沒有修改下載或更新。它對元數據做了一些修改,從而可以修復它。
你確定你已經檢出了頭部而不是較低的版本嗎?此外,你有沒有做過更新,以確保你有最新版本?
直接在存儲庫中執行移動操作。
我相信這個問題來自.svn文件。這在舊的父母,新的父母或舊的父母中是不正確的。我會嘗試恢復到你的出發點。使用導出來獲取文件夾的乾淨副本。將乾淨的副本移動到新的位置,並使用添加和刪除來完成移動。這是手動完成SVN的工作,但它可能工作。
Subversion實際上是複製然後刪除,這與在那裏刪除並添加在這裏相當不同。 – SnakE 2011-08-18 18:37:41
就像@ Alexander-Klyubin建議的那樣,在存儲庫中進行移動。這也會更快,特別是如果您有大量數據要移動,因爲您不必再通過網絡傳輸所有數據。
svn mv https://[email protected]/svn/old/ https://[email protected]/svn/new/
應該只是罰款
您是否使用svn mv
,或者只是mv
移動呢?我認爲只使用mv
可能會導致此問題。
試圖更新本地副本,並恢復有問題的項目,仍然得到'過時'錯誤。這工作出於某種原因:
svn update --force /path/to/dir/or/file
發生這種情況時,我更新了早期版本與樹幹文件的分支。我使用Windows資源管理器從我的trunk結帳文件夾中複製文件夾,並將它們粘貼到發佈分支簽出文件夾的Eclipse視圖中。現在Windows資源管理器被配置爲不顯示以「。」開頭的「隱藏」文件,因此我忘記了所有不正確的.svn文件被粘貼到我的發佈分支結帳文件夾中。衛生署!
我的解決方案是吹走損壞的Eclipse項目,再次檢查出來,然後更仔細地複製新文件。我也改變了Windows顯示「隱藏」的文件。
我把目錄轉移到我的本地機器進行安全保存,然後svn刪除了這個愚蠢的目錄,然後提交。當我試圖從我的本地機器添加文件夾時,仍然拋出錯誤(當我嘗試重命名文件夾時,SVN移動做了同樣的事情)。所以我回復了,然後我做了一個mkdir DIRNAME,添加並提交了。然後我添加了內容並提交,並且工作。
嘗試所有明顯的事情後,和這裏的一些其他建議,沒有運氣任何,谷歌搜索導致這個鏈接(鏈接不再工作) - Subversion says: Your file or directory is probably out-of-date
概括地說,訣竅是轉到.svn目錄(位於包含違規文件的目錄中),並且刪除「all-wcprops」文件。
當沒有別的事情的時候爲我工作。
謝謝。這只是爲我解決了它。 svn update --force /路徑到文件名/
如果您最近在本地目錄中的文件是相同的,則沒有任何提示。如果文件不同,它會提示輸入tf,mf等等...選擇mf(我的全部)確保沒有任何內容被覆蓋,並且我可以在完成時提交。
周杰倫 CompuMatter
試圖去提交一些文件時,我得到這個錯誤,只有它是一個文件/文件夾並沒有在我的工作拷貝存在。我真的不想經歷移動文件和重新檢查的麻煩,最後,我最終編輯了.svn/entries文件並刪除了違規的目錄引用。
我刪除了幾個目錄,每個目錄都包含一些文件後,我隨機收到了這個錯誤。我通過Netbeans刪除了這些目錄,並意識到它並未實際刪除它們。它似乎只是刪除目錄中的所有內容,並刪除了Netbeans中對該目錄的引用。儘管如此,它們仍然存在於文件系統中。確保它們已從文件系統中刪除並再次嘗試提交。
我管理通過敲擊更新按鈕
刪除你的文件或使用 之前執行命令的路徑來解決它做的更改
sudo rm -r /path/to/dir/
後BK:
svn up and commit or delete
如果通過簡單地檢出一個新的工作副本並替換.svn目錄來解決類似的問題,則將新提交的錯誤拋出提交錯誤之一。我的理由是,在存儲庫損壞並從備份還原後,工作副本指向已恢復的存儲庫中不存在的修訂。還得到「項目過時」的錯誤。在提交之前更新工作副本並沒有解決這個問題,但是如上所述替換了.svn。
我發現,這個工作對我來說:
svn update
svn resolved <dir>
svn commit
有消息「過時」的錯誤的至少一個其他的原因。在我的情況下,問題是通過運行「svn propset svn:ignore -F .gitignore」創建的.svn/dir-props。首次。刪除.svn/dir-props似乎是個不錯的主意,可能會導致其他錯誤,所以最好使用「svn propdel」來清理錯誤的「svn propset」。
# Normal state, works fine.
> svn commit -m"bump"
Sending eac_cpf.xsl
Transmitting file data .
Committed revision 509.
# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'
# Edit a file. Should have committed before the edit.
> svn commit -m"bump"
Sending .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating
# Delete the property.
> svn propdel svn:ignore .
property 'svn:ignore' deleted from '.'.
# Now the commit works fine.
> svn commit -m"bump"
Sending eac_cpf.xsl
Transmitting file data .
Committed revision 510.
我有同樣的問題在多個文件夾,這就是我所做的承諾:
1)在「團隊同步」透視圖,右鍵單擊文件夾>覆蓋和更新
2)再次刪除文件夾
3)提交併開心
在我的情況下,只刪除本地版本和重新簽出新副本是一個解決方案。
我剛剛得到這個錯誤。我建議你首先檢查你的服務器,如果原始文件在那裏。有時更改不會在您的本地文件夾中進行。 如果這是您的情況,請刪除您的文件夾並重新結帳。
爲了解決這個問題,我需要恢復帶有問題的文件,並更新我的工作副本,之後我再次修改了文件,在這些步驟之後錯誤再也沒有發生。
更isyly使這個:
1)複製我修改的代碼在一個記事本。 2)接下來,更新文件。 3)在更新的文件中複製記事本的代碼。 4)在svn中提交。
只要執行svn進入命令行或者如果你在windows中選擇svn update選項。
我做到了這一點,它爲我工作:
1.備份您的文件。您可以簡單地將您的代碼複製到文本文件。
2.右鍵單擊要提交的文件>> Team >> Show History。 3.在「顯示歷史記錄」面板中,您將看到該文件的所有修訂。右鍵單擊文件的最新版本>>獲取版本:它將覆蓋您的本地更改。
4.現在,將您的代碼與備份文件(步驟#1)中的最新文件合併。
5.同步並提交新合併的文件。
如果您使用的是github svn bridge,那很可能是因爲github的一些事情發生了變化。該解決方案很簡單,你只需運行svn switch
,它可以正確地找到自己,然後更新,一切都將工作。只要運行從你結賬的根
svn info | grep Relative
svn switch path_from_previous_command
svn update
或
svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update
該解決方案的基礎來自Lee Preimesberger's blog
我剛剛從trunk
得到這個當我試圖commit
以下目錄。 trunk
目錄中的svn update
沒有解決錯誤;但是,從父目錄(其中.svn
目錄所屬的位置)執行svn update
確實解決了該錯誤。
我對發生了什麼事情(其中一個用例可能有多個原因,這個「svn:E160024:資源過期;嘗試更新」)的猜測:沿着trunk
,有一個branches
目錄。我從GitHub中將branches/branch-1
轉換爲master
。從父目錄做svn update
(也就是我的工作拷貝的根),而不是trunk
似乎已經做在branches
除了東西trunk
。當我再次嘗試commit
時,沒有錯誤。
然而,正如我上面所說的,這是其中可能還有很多其他一例。
邊注:不像什麼有人建議,我不相信這是在.svn
目錄手動播放一個好主意。
將您的服務器和客戶端升級到Subversion 1.9。
如果隨機發生的out of date
錯誤時,它通常不應該,當您運行提交,則可能表明您使用的是過時的和不支持的Subversion 1.7或以上的客戶端或服務器。
您應該升級服務器和客戶端以解決問題。請參閱相關的Subversion 1.9發行說明條目:"Out of date" errors when committing over HTTPv1。
錯誤是因爲您沒有更新該特定文件,先進行更新,然後只有您可以提交該文件。
嘗試直接在.svn中進行更改。沒有什麼幫助,所以我的解決方案。
在Eclipse>窗口>顯示視圖>歷史我見過該文件是不是最新的版本,但我做了多個SVN「覆蓋&更新」 /「恢復」 /刪除文件和檢驗。
所以我去了Package Explorer>右鍵點擊文件>用替換爲> Latest from Repository。
再來看看查看歷史記錄顯示該文件是現在最新的版本。
「清理」它會讓你走上正軌。
右鍵單擊SVN文件夾,單擊「清理」,這樣做,如果你得到這個錯誤。
你試過svn了嗎? – Sklivvz 2008-09-17 21:41:02
一個微不足道的問題是:如果刪除一個文件夾和內容,首先刪除內容,然後刪除該文件夾,然後再刪除該文件。 – Fattie 2014-11-21 13:36:06
相關注意事項:http://subversion.apache.org/docs/release-notes/1.9.html#httpv1-commit-race – bahrep 2016-01-18 16:58:08