假設我已經使用Windows資源管理器將文件A
更名爲文件B
,並創建了新的文件C
。撤銷TortoiseSVN中的修復移動
在Tortoise SVN中,我無意中使用文件A
和C
上的「修復移動」,而不是A
和B
。有沒有簡單的方法來撤消修復(並用正確的文件重做)?在這一點上不會進行更改。
我目前知道的唯一方法是恢復刪除和添加,這將恢復文件A
,然後再次手動刪除該文件並正確地重做關聯。由於涉及多個文件,這有些涉及意外恢復本地更改的風險,所以如果有更好的方法,我很感興趣。
注意:儘管TortoiseSVN被用來產生問題,但svn控制檯的答案也是可以接受的。
這裏是文件A.txt
,B.txt
的例子和C.txt
一步一步:
後A
被重命名爲B
和C
被本地添加
>svn st
! A.txt
? B.txt
? C.txt
之後烏龜SVN「修復移動「錯誤應用A
- >C
>svn st
D A.txt
> moved to C.txt
? B.txt
A + C.txt
> moved from A.txt
我的工作流程解決的情況,這我不是真正的快樂:
>ren C.txt C.txt.bak
>svn revert C.txt A.txt
>ren C.txt.bak C.txt
>del A.txt
從那裏我可以重做修復與正確的文件
>svn st
! A.txt
? B.txt
? C.txt
在出髮狀況可能引發
我會愛,但似乎並不存在
svn mv --force --ignore-files A.txt B.txt
svn add --force C.txt
的方式,它忽略了一個已標記刪除,並允許從A到B的歷史記錄轉移,從A重新詮釋C作爲清潔的添加而不是transfering歷史
我可能會弄錯它,但不想做的是從分段中刪除更改,然後手動修復重命名,然後執行階段提交。是對的嗎?如果是這樣,那麼這個過程的自動版本究竟是什麼 - 即 - 你將如何告訴SVN你真正想要的變化? –
還有幾件事 - 風險究竟是什麼?如果您提交錯誤的文件,您會丟失數據/工作嗎?我們在談論多少個文件? –
@LeftyGBalogh我莫名其妙地希望有一種方法可以恢復SVN狀態(例如'deleted')而不實際恢復文件。這將允許我正確地重做關聯。風險是在項目元文件和代碼文件之間獲得不一致的狀態,破壞版本歷史記錄或丟失本地更改。我們正在談論過去發生在我身上的一件事情,並可能在未來再次發生。我照顧過去的事件,但我對我的工作流程並不滿意。 – grek40