第二次機會和Subversion

發表于:2008-05-29來源:作者:點擊數: 標簽:Subversion機會
我們一直在犯錯誤,如果生活總會給你第二次機會,或者改正錯誤的機會,那不是很棒嗎?幸運的是你使用了Subversion,大多數情況下,你可以輕松的修改錯誤。 假設我們的Subversion不能做的很簡單,你犯了一些錯誤,但是刪除了所有發生過的軌跡,Subversion記錄

我們一直在犯錯誤,如果生活總會給你第二次機會,或者改正錯誤的機會,那不是很棒嗎?幸運的是你使用了Subversion,大多數情況下,你可以輕松的修改錯誤。

假設我們的Subversion不能做的很簡單,你犯了一些錯誤,但是刪除了所有發生過的軌跡,Subversion記錄在某個時間點的版本庫,而且歷史不可變,也就是不可以修改。很不幸,這意味著一旦你不小心提交了包含密碼的配置文件,你可以編輯文件并再次提交,但是Subversion永久保留最初的提交,包含密碼。刪除這些東西的唯一辦法就是把版本庫dump到一個文件,從dump文件中小心的刪除那些內容,然后重新加載版本庫。這不適合膽小者,但是可以做。大多數Subversion安裝使用提交鉤子在每次提交時發送修改細節郵件,這很有價值,即使Subversion讓刪除軌跡變得容易,也無法避免郵件發送到全世界。

一個Subversion可以簡單修正的常見錯誤就是對于刪除的恢復,我恨這一點,但是幾個月以前我不小心將Subclipse版本庫的整個branches目錄刪除了,你可以在這里看到使用ViewVC看到血淋淋的細節,我知道我可以簡單將它找回來。如果你查看以前的鏈接,你可以看到我在修訂版本2981提交了刪除,我需要做的就是將其從2980拷貝出來。

svn copy -r2980 http://subclipse.tigris.org/svn/subclipse/branches@2980 \
http://subclipse.tigris.org/svn/subclipse/branches

這個命令的意思是,”將2980修訂版本的branches目錄拷貝到branches(目前不存在的目錄)”,你需要在第一個URL中添加 @2980,它告訴Subversion的歷史跟蹤規則找到這個目錄。如果你省略這個參數,Subversion會查看版本庫的HEAD修訂版本,你可以在ViewVC的這里看到提交的結果,請注意你可以看到項目是從修訂版本2980拷貝而來。

所以就是這樣將刪除的東西恢復,如果事情更加細致該如何?你修改了一組文件,但是你不希望有這些修改。你希望從本質上”回退提交”,這對于 Subverison非常簡單,你可以通過所謂的”反向合并實現”。本質上講,就是使用svn merge命令將修訂版本號反轉過來,對于命令行用戶,這種情況已經在Subversion book中詳細論述,請見回退修改部分,這一小節也有一些其他的例子,很值得一看。

Subclipse和TortoiseSVN在其圖形界面中提供了更簡單的方法,1月份我在我的個人blog里寫了一個類似的例子,它介紹了使用Subclipse GUI完成這個功能的方法,如果你希望知道如何使用GUI完成這個功能可以看這個帖子。

如果說我希望這個帖子能帶來什么,我希望是增加Subversion對于數據安全的信心,繼續修改并提交,那就是Subversion的工作,如果你犯了錯誤,不必擔心,Subversion一直會給你第二次機會。

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97