Bir klasör için Subversion denetimini nasıl kaldırırsınız?


259

Bir klasör var c:\websites\testve klasörleri ve artık var olmayan bir havuzdan teslim dosyaları içerir. Subversion'u bu klasörü ve alt klasörleri ve dosyaları izlemeyi durdurmak için nasıl edinebilirim?

Sadece .svnklasörü silebileceğimi biliyorum , ancak birçok katmanda çok sayıda alt klasör var.


1
TortioseSVN kullanıyorsanız, bunu yapmanın en hızlı yolunu gösteren bir blog yazısı yazdım. Yazımda resimlerle adım adım talimatlar var. Bu gönderi http://www.ecofic.com/about/blog/disconnecting-folder-from-svn adresinde bulunabilir
Chad Campbell

Birçok kişiye yardımcı olan cevabıma bakın. stackoverflow.com/questions/4889619/…
Ajit Vaze

Yanıtlar:


258

Ayrıca, TortoiseSVN kullanıyorsanız, sadece geçerli çalışan kopya konumuna aktarın ve .svn klasörlerini ve dosyalarını kaldıracaktır.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

Subversion 1.7 için Güncellenmiş Yanıt:
Subversion 1.7'de çalışan kopya kapsamlı bir şekilde revize edilmiştir. Çalışan kopyanın tabanında yalnızca bir .svn klasörü vardır. 1.7 kullanıyorsanız, yalnızca .svn klasörünü ve içeriğini silmek kolay bir çözümdür (TortoiseSVN veya komut satırı araçlarını kullanmaksızın).


8
Bağlantı artık 404. Yeni bağlantı: tortoisesvn.net/docs/release/TortoiseSVN_tr/… Aşırı akım dışa aktarma, yalnızca .svn dosyalarını, sürüm bilgisi olmayan dosyaları da saklamayı söylerseniz kaldıran özel bir durum gibi görünüyor.
lilbyrdie

başarıyla klasör simgenizi geri almak için kaldırdıktan sonra svn sunucusunu yeniden başlatın ve hepsi
3ehrang

Sunucunun Kaplumbağa klasörü simgeleriyle bir ilgisi yoktur. Ancak güncelleme yapmazlarsa, TSVNCache işlemini öldürmeyi deneyebilirsiniz. Otomatik olarak yeniden başlamalıdır.
crashmstr

1
Benim durumumda, git klasörünü .svn klasörü ile birlikte sildim
Aftab Ahmed Kalhoro

155

Linux'ta bu işe yarar:

  find . -iname ".svn" -print0 | xargs -0 rm -r

10
Mac OS'de de çalışır.
emish

2
komutu çalıştırmadan önce uygun dizini girdiğinizden emin olun, örnek: cd mySVNdirectoryWhereToRemoveTheSubfolders
Camaleo

Ben rm: eksik işlenen
Kış

119

Svn dışa aktarmayı deneyin .

Bunun gibi bir şey yapabilmelisiniz:

svn export /path/to/old/working/copy /path/to/plain/code

Ve sonra eski çalışan kopyayı silin.

TortoiseSVN aynı şekilde davranan bir dışa aktarma özelliğine de sahiptir .


4
Komut satırıyla çalışan bir yanıt sağladığınız için teşekkür ederiz. :) Terminalleri kullananlarımız için harika.
epochwolf

16
Doğru anlarsam, bu komut yalnızca şu anda alt sürüm denetimi altında olan dosyaları dışa aktarır. Dolayısıyla, bazı dosyalar veya klasörler henüz alt sürüme eklenmemişse veya alt sürüm kontrolünden kaldırılmışsa, bu dosyaları dışa aktarma işleminizde kaybedersiniz ...
Chris

@Chris, evet, haklısın. Bu yalnızca sürümlenen dosyaları dışa aktarır. Bu, kodu dışa aktarmak ve türetilmiş eserleri geride bırakmak vb.İçin iyidir, ancak her iş için doğru araç olmayabilir.
2'de pkaeding

4
SVN sunucusu çoktan gitmişse bunun hala işe yaradığını; VisualSVN veya Tortoise SVN kullanarak dışa aktarmaya çalışırsanız, sunucuyla iletişim kurmaya çalışıyor gibi görünür, ancak yukarıdaki komut satırı sürümü SVN sunucusu hala çalışmadan benim için çalıştı.
Dave

Bir hata alıyorum:svn: E000002: Can't stat '/.classpath': No such file or directory
IgorGanapolsky

32

Windows çalıştırıyorsanız, o klasörde arama yapabilirsiniz .svnve bunların tümünü listeler. Ctrl+ Tuşuna basarsanız Ahepsi seçilir ve sil tuşuna basıldığında tüm 'sinir bozucu' Subversion öğeleri kaldırılır.


gerçekten sinir bozucu ;-) Sadece temizlemem gerekiyor ve yeni bir depoya geri koyacağım.
Brian Boatright

2
bu aynı zamanda en sinir bozucu ön sayfa uzantısı klasörlerini bile silmek için harika bir yoldur!
Brian Boatright

.Svn klasörlerini ışık hızında bulmak ve silmek için Everything Search yardımcı programını indirin ve kullanın :) voidtools.com Yalnızca Windows!
endo64


21

Geçici bir yere kopyalamanıza bile gerek olmadığını gördüm. Yapabilirsin

svn export --force .

ve .svn dosyaları yerinde kaldırılacak ve diğer dosyalar olduğu gibi bırakılacaktır. Çok rahat ve dağınıklığa daha az eğilimli.


4
Ne olduğunu bilmiyorum, ama bir nedenden dolayı benim için işe yaramadı.
Koç VII

1
Bu komut yalnızca çalışan kopya için çalışır, içindeki klasör için geçerli değildir. Belki de bir çeşidi ...?

2
Subversion'un kurulu sürümü 1.7 ve depo 1.6 için ise bu çalışmaz. Ancak, "svn yükseltme" dışa aktarmadan önce çalıştırılabilir ve çalışır.
Peter Mortensen

11

.svnKlasörleri silmek için Linux'ta alt kabuklar olmadan :

find . -name .svn -exec rm -r -f {} +

rm = remove
-r = recursive (folders)
-f = force, avoids a lot of "a your sure you want to delete file XY".

8

Bu cevapların hiçbiri durumum için tatmin edici değildi. Subversion 1.8 kullanıyorum ve sadece .svnilk klasörde root olan tek bir klasörü olan çalışan bir kopyam vardı . Ancak, bazı dalları çalışan kopyadan kaldırmak istedim.

Ne yaparsam yapayım, bir 'güncelleme' çalıştırdığımda bu dosyaları geri yükler ve hepsini geri getirir. Bunları sadece bilgisayarımdan depodan kaldırmak istemedim - ancak çalışma kopyasının geri kalanını incelikle tutmam gerekiyordu (bu nedenle .svn klasörünü kaldıramadım).

Çözüm? svn update --set-depth exclude <dir>

Bu, belirli bir dizini hariç tutan bir istemci tarafı "güncellemesi" dir. Svnbook.com adresindeki kılavuzlarda bulunabilir . Kısacası, bunu şöyle tanımlar:

Subversion 1.6 ile başlayarak farklı bir yaklaşım benimseyebilirsiniz. İlk önce dizini tam olarak kontrol edin. Ardından, umursadığınız bir alt dizinde svn update --set-deeplude komutunu çalıştırın.

TortoiseSVN için, aynı şeyi, istemediğiniz klasörü sağ tıklatıp tıklatarak ve bu ekran görüntüsünde görüldüğü gibi Update to revision...'Derinliği Güncelle' olarak ayarlayabilirsiniz Exclude:

resim açıklamasını buraya girin


Yine de, çalışan kopya kök klasörlerini kaldıramazsınız.
JaBe

8

Benim için iyi çalıştı:

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf

Bu çok basit bir çözüm, ancak bir cazibe gibi çalışıyor.
IgorGanapolsky

@IgorGanapolsky Memnun oldum. Benim çözümüm size yardımcı oldu.
Manikandan S

kimse koşmadığı sürece mkdir -p ';echo Hi Johnny;/.svn'- bu durumda {} bulma çağrısı yine de çalışmalıdır
Asla Bir Daha Uyuma

7

svn exportKomutunu kullanın :

cd c:\websites\test
svn export c:\websites\test_copy

Sürüm kontrolü altındaki tüm dosyalar dışa aktarılacaktır. Hiçbir şeyi kaçırmadığınızdan emin olmak için tekrar kontrol edin.


4

Sadece gerekli klasörün içindeki .svn klasörünü kaldırın, ardından kontrol otomatik olarak kaldırılacaktır.


3

Windows'ta, kaşif sağ tıklama menünüze bunun için bir hızlı bağlantı ekleyebilirsiniz. Bu kayıt defteri komut dosyasını başlatmanız yeterlidir:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Bu, sağ tıklama menünüze "SVN Klasörlerini Sil" adlı bir öğe ekleyecektir. Bu işlem, bu klasördeki tüm .svn klasörlerini ve tüm alt klasörleri siler.

Kaynak (Almanca): http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/


2

Svn verisi olmadan o klasörün bir kopyasını oluşturmak için "svn export" kullanabilirsiniz veya listeyi yoksaymak için bu klasörü ekleyebilirsiniz.


2

NetNeans'i SVN ile kullananlar için 'Subversion> Export' seçeneği vardır.


2

Windows Gezgini Bağlam Menüsüne üç seçenek ekleyen SVN Cleaner adında güzel bir açık kaynak aracı da var :

  • Tümünü Kaldır .svn
  • Kök .svn Dışında Tümü Kaldır
  • Yerel Repo Dosyalarını Kaldırma



1

Cevap şaşırtıcı derecede basit - klasörü kendisine aktarın ! TortoiseSVN bu özel durumu algılar ve çalışan kopyayı tersine çevirmek isteyip istemediğinizi sorar. Evet cevabını verirseniz, kontrol dizinleri kaldırılacak ve düz, sürümlendirilmemiş bir dizin ağacınız olacaktır.


1
Bu sadece 5 yıl önce verilen kabul edilen cevabı tekrar söylemiyor mu?
Ben Thurley

1

Başka (daha basit) bir Linux çözümü:

rm -r `find /path/to/foo -name .svn`

1

EN İYİ VE KOLAY YOL

Basit bir büyü komutuyla kazanabileceğinizi düşünüyorsanız başarısız olursunuz! SVN gerçekten zor ve Xcode'da yeni bir hata mesajı ile her zaman bir şekilde geri geliyor. Er ya da geç, söz ver ... bu yüzden akıllıca yapmalısın!

Bildiğiniz gibi Xcode altındaki düzenli ve en iyi uygulama, soldaki proje bölmesindeki bir dosyayı silmektir. Eğer kaçırdıysanız ve bir şekilde Finder'da sildiyseniz, başınız belada demektir. Büyük bela! Ama bunu çözebilir ve iyi yaparsanız boş zaman.

İlk olarak, silmeden önce dosya veya klasöre yönelik SVN referansını silmeniz gerekir

  1. Dosyayı / klasörü çöp kutusundan geri koyabilir veya sildiğinizde son adımı geri alabilirseniz, ...

  2. Terminal'e gidin - evet, eski iyi terminal - ve o yere gidin. En iyi yol sadece cd yazın ve klasörü / dosyayı Terminal'e çekin. Benzer bir şey alacaksın

cd / Kullanıcılar / KullanıcıAdı / Belgeler / Apps_Gelgeliyor / ...

Nerede olduğunuzu kontrol edebilirsiniz

ls

dosyalarınızı listeleyen komut.

  1. Sonra svn referansını bir SVN komutuyla silmeniz gerekir:

    svn delete --keep-local fileName_toSil

Bu dosyayı SVN deposundan siler, ancak Finder'da manuel olarak silmeniz gerekir.


0

Ben rsync kullanın:

# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped

0

NetBeans IDE kullanıcıları aşağıdaki gibi yapabilir:

  1. IDE'nizde SVN projesini açın
  2. Projeyi seçin

    Subversion Export'a sağ tıklayın

  3. İletişim kutusunda

    klasöre dışa aktar / var / tmp / projectname basın dışa aktarma beklemenin tamamlandığını gösterecek istemez misin açmak istiyorsan anında aç

  4. Şimdi Git'e geçebilirsiniz :)


0

Benim fikrim .svn klasörü kaldırmak ve sonra tüm diğer dosyaları yeni bir klasöre taşımaktır. Bu kadar basit.


0

Windows işletim sistemini kullanırken, klasör konumunuza gidin ve gizli dosyaların açık olup olmadığını kontrol edin, ardından orada SVN klasörünü görebilirsiniz . Sadece bu klasörü kaldırın.


0

svn export iyi çalışıyor, ama bence bu:

svn rm --keep-local <folder/file>

Yerel deponuzdan kaldırır.


0

Kullandığınızda hayati noktası olarak, kabuk .svn klasörleri silmek için, size gereken -depth önlemek için argüman bulmak örn gibi hata mesajları sadece silindi dizini giren ve gösteren komutu

"find: ./.svn: Böyle bir dosya veya dizin yok"

Sonuç olarak, findkomutu aşağıdaki gibi kullanabilirsiniz :

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;


0

Aşağıdakileri kullanın:

svn rm --keep-local <folder name> klasörü ve içindeki her şeyi kaldırmak için.

svn rm --keep-local <folder name>/* klasörü korumak için, ancak klasör içindeki her şeyi kaldırın.

İşte ne olduğuna bir örnek:

~/code/web/sites/testapp $ svn rm --keep-local includes/data/*
D         includes/data/json
D         includes/data/json/index.html
D         includes/data/json/oembed
D         includes/data/json/oembed/1.0
D         includes/data/json/oembed/1.0/embed1.json
D         includes/data/json/oembed/1.0/embed2.json
D         includes/data/json/oembed/1.0/embed3.json

-1

Windows 10'da, gitmeli Windows Explorerve sonra Viewonay kutusunu işaretlemeliyiz View hidden files.

Ardından, Windows Gezgini'nde SVN'nin bağlı olduğu klasöre gidin ve .svnklasörü / dosyayı silin .


Biçimlendirmeyi düzenlesem de, bu cevap aslında soruyu cevaplamıyor. Kullanıcı temel .svnklasörü nasıl sileceğini zaten biliyor , ancak tüm alt klasörleri soruyor. Lütfen soruyu iyice okuyun.
CodeMouse92
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.