簡體   English   中英

'Un-SVN'是一份工作副本

[英]'Un-SVN' a working copy

我有一個文件夾,是我的工作副本。 如何從此文件夾中刪除所有SVN功能? 我有理由這樣做,不知何故,我的主文件夾包含我所有工作的網站副本,不知何故已經變成了一個工作副本本身,所以我有一個工作副本本身。

那么,是否有一種從文件夾中刪除版本控制的簡單方法?

svn export是您正在尋找的命令。 您可以將一組受控文件導出到非受控位置並使用它。

只需刪除其中的所有“.svn”文件夾即可。 而已。

如果您使用的是類似* nix的工具:

find . -type d -name .svn -print0 | xargs -0 rm -fr

如果您正在使用TortoiseSVN,您只需在工作副本的根文件夾中單擊鼠標右鍵,然后單擊導出...即使您有未更改的更改,這也將起作用。

同樣,您只需從存儲庫執行導出,它就不會創建任何.svn文件夾。

另一種直接的方法是只刪除所有.svn文件夾,如前所述。

您可以手動刪除所有.svn文件夾(確保也為每個子文件夾執行此操作)或使用像Jon Gallaway的shell命令這樣的簡單實用程序。

Windows客戶端“TortoiseSVN”具有“導出”功能。 導出會在其他文件夾中的其他位置創建副本,而不包含其中的所有“.svn”文件夾。 您可以從存儲庫或本地副本導出,並選擇包含未版本控制的文件。

這個怎么樣:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d ".svn"') do rd /s /q "%%i"

以遞歸方式刪除所有.svn文件夾 -

(如果導出功能不是您的選項 - ,無法訪問存儲庫等...)

這是一個Windows批處理腳本,它將從Subversion工作副本目錄中刪除所有.svn文件夾:

@echo off
rem cleanup .svn subdirs

setlocal enabledelayedexpansion

rem change to directory that this batch script resides in

if "%~1"=="" (
    echo Usage: svncleanup svn_working_copy_dir
    exit /b 1
)

echo cleaning up .svn subdirs in "%~1" ...

for /R "%~1" %%I in (.svn) do rmdir /Q /S "%%I" > NUL 2>&1

TortoiseSVN能夠導出文件而不使用其subversion綁定 - 右鍵單擊​​存儲庫(或repos中的目錄),然后是TortoiseSVN,然后是Export。 另一種方法是刪除所有文件夾中的所有.svn目錄。

用烏龜出口到位

當我閱讀以上所有建議時,我感到畏縮,因為我的源文件是3GB,有很多.svn文件夾。

從R-click上下文菜單中選擇Export,當彈出“放置復制的位置”對話框時, 選擇該文件夾本身 好。 Viola所有的源代碼控制都是(遞歸地)消失了。

使用TortoiseSVN,您可以右鍵拖放文件夾,然后選擇“SVN Export All to here”命令。

我只是使用Windows資源管理器搜索“.svn”(從我的工作副本的頂部開始),然后我選擇它找到的所有文件夾並刪除它們。

你不能刪除.svn子文件夾嗎?

據我所知,SVN存儲了與該子文件夾中存儲庫的連接的所有內容(至少在windows中)

正如其他人所說,刪除.svn文件夾會從該文件夾中刪除SVN功能。 如果以遞歸方式執行,您將“取消SVN”整個WC,這實際上是導出命令的作用。 我不確定它是否是Tortoise,CLI SVN二進制文件或兩者的功能,但我記得其中一個允許您進行就地導出,它實際上只是從WC中刪除了.svn文件夾。 正常導出會在未版本化的新位置創建WC的副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM