假設您有顛覆控制下的一個目錄,包含了一些文件和子目錄噸的,這樣的:SVN:你可以只從本地簽出(不是從存儲庫)中刪除目錄嗎?
file1.txt
file2.txt
file3.txt
dir1/
dir2/
dir3/
dir4/
:
dirXX/
現在你需要的文件和一些迪爾斯的,但不是所有的人。這可以通過SVN完成。只要使結賬非遞歸:
svn checkout -N <URL>
這隻檢出第一個目錄和裏面的文件。沒有包含子目錄。即使您進入結帳目錄並運行「svn up
」,它只會更新之前簽出的文件,但不會添加目錄。您現在可以通過明確更新這些目錄來選擇性地添加所需的目錄。例如。如果你需要DIR2,只有dir4,你可以進入檢出目錄並執行
svn up dir2
svn up dir4
如果你運行一個通用的「svn up
」在未來,它只會更新文件和這兩個目錄,也不會添加任何其他目錄。
現在的問題:如果我稍後決定不再需要dir2,該怎麼辦?我如何擺脫它?似乎沒有辦法這樣做,除了刪除整個結帳並從頭開始。
當您剛剛刪除dir2時,下一個「svn up
」將返回,因爲「svn status
」當然顯示爲現在丟失(「!」在其名稱前面)。運行「svn remove
」當然會將其刪除,但在下一次提交時,它也會將其從存儲庫中刪除,這一定不會發生。 SVN 1.5
即使是新的稀疏目錄(「淺結賬」)的特徵是沒有用在這裏:
顛覆1.5的實施 淺檢出是好的,但不支持 一對夫婦有趣的 行爲。首先,您不能刪除工作副本項目的望遠鏡 。 運行svn更新 - 設置深度爲空 在無限深度的工作副本中 不會產生 目錄中的所有內容,除了最上面的 目錄之外 - 它只會出錯。
- http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html
這是完全不可能的SVN?任何人都有過一個聰明的工作全面呢?
只需創建結帳目錄(不含SVN),然後直接從存儲庫中檢出各個子目錄作爲該目錄的子目錄即可用於目錄:現在每個目錄都是自己的結帳,可以更新一次不再需要,你可以刪除它。但是,如何獲取文件(例如file1.txt)? SVN不允許簽出單個文件,你只能簽出整個目錄。
我想這是因爲這兩個同樣的問題:http://stackoverflow.com/questions/ 862950/subversion-prevent-local-modifications-to-one-file-from-being-committed,http:// stackoverflow。com/questions/635446/svn-is-there-a-way-to-mark-a-file-as-do-not-commit –
@ire_and_curses:首先,你爲什麼不把它寫成答案?第二:這兩個問題是關於防止發生的事情。這與我的問題完全無關。即使我在目錄上執行了svn delete操作,並且阻止了該目錄的提交,該目錄也不會消失。你甚至讀過我的問題還是隻是標題? – Mecki
@Mecki:我確實讀過你的問題,雖然我很匆忙地承認。我*想*你問過如何在本地副本中刪除版本控制的目錄而不影響版本庫版本,以及在下一次更新中沒有得到目錄。雖然我還沒有嘗試過,但似乎讓所有其他變更列表的成員都能做到這一點。我沒有寫這個答案,因爲它已經存在於其他兩個問題中(我認爲這兩個問題都是一樣的) - 如果我是對的,我只能代表別人的工作。對不起,如果這對你沒用。 –