Bir SVN şubesini silme


91

SVN projesinin 'özellikler' adlı bir dalını oluşturdum ve şimdi söz konusu projeyi her güncellemeye çalıştığımda, daldan projenin başka bir kopyasını içeren bir özellikler klasörü getiriyor. Şubeyi depodan tamamen kaldırmanın bir yolu var mı, böylece bu bir daha olmaz?


Yanıtlar:


110

Elbette: svn rmistenmeyen klasör ve kaydetme.

Gelecekte bu durumdan kaçınmak için, SVN projeleri için önerilen düzeni takip ederdim :

  • Kodunuzu /someproject/trunkklasöre koyun (veya sadece /trunkarşive yalnızca bir proje koymak istiyorsanız)
  • Olarak oluşturulmuş şubeler /someproject/branches/somebranch
  • Etiketleri altına koyun /someproject/tags

Şimdi, çalışan bir kopyayı kontrol ettiğinizde, yalnızca trunkveya bazı şubeleri kontrol ettiğinizden emin olun . Her şeyi, tüm dalları içeren büyük bir çalışma kopyasında kontrol etmeyin . 1

1 Ne yaptığınızı bilmiyorsanız, bu durumda nasıl sığ çalışma kopyaları oluşturacağınızı bilirsiniz.


58

Bu dalın harici veya sembolik bir bağlantı olmadığını varsayarsak, dalı kaldırmak şu kadar basit olmalıdır:

svn rm branches/< mybranch >

svn ci -m "message"

Bunu bilgi havuzunda yapmak isterseniz, güncelleyin ve çalışan kopyanızdan kaldırın:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

O zaman koş:

svn update

26
dan kitabında : bu yüzden "Bir URL silme [-m ile] bir günlük mesajı tedarik zorunda Ancak, hemen gerçekleşir" svn rm -m message http://...ve hiçbir updategerekli
rymo

57

TortoiseSVN kullananlar için , bunu Depo Tarayıcısını (bağlam menüsünde "Repo-tarayıcı" olarak etiketlenmiştir) kullanarak gerçekleştirebilirsiniz.

bağlam menüsü

Silmek istediğiniz şube klasörünü bulun, sağ tıklayın ve "Sil" i seçin.

klasörü silmek

Kaydetme mesajınızı girin ve bitirdiniz.

taahhüt


Diskinizden klasörleri kaldırmak için bir SVN Güncellemesi yapın (dalı kaldırmadan önce silinmediyse)
ArieKanarie

12

Şubeyi doğrudan uzaktan kumandadan da silebilirsiniz. Bunu yaptıktan sonra, bir sonraki güncelleme onu çalışan kopyanızdan kaldıracaktır.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

^Svn bilgi 'de görüldüğü gibi, uzak URL'sini kısa. Windows komut satırında çift tırnak gereklidir, çünkü ^özel bir karakterdir.

Bu komut, şubeyi hiç kontrol etmediyseniz de çalışacaktır.


Bunu bir Mac'ten kullandım ve iyi çalıştı! En iyi yanıtı denediğimde "/ yerel / yol / / repo / şubeler / şube-adı 'çalışan bir kopya değil" yanıtını aldım, bu yüzden muhtemelen yaptığım şubeyi kontrol etmeyi hiç başaramadım
Mad Bernard

3

Özellikler klasörünü, satın alma işleminizde diğerleri gibi silebilir ve ardından değişikliği gerçekleştirebilirsiniz.

Gelecekte bunu önlemek için SVN düzeni için adlandırma kurallarına uymanızı öneririm.

Ya her projeye, oluşturulduklarında bir gövde, dallar, etiketler klasörü verin.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags

3

Çalışma kopyasından:

svn rm branches/features
svn commit -m "delete stale feature branch"


3

Bir dalı silme komutu aşağıdaki gibidir:

svn delete -m "<mesajınız>" <şube url'si>

Deponun tamamını almak / teslim almak istemiyorsanız, terminalinizde aşağıdaki komutu yürütün:

1) çalışma kopyanızı içerecek dizinin mutlak yolunu alın
> pwd
2) svn kodu kontrolünü başlatın
> svn checkout <şube url> <1. noktadan itibaren mutlak yol>

Yukarıdaki adımlar size klasörün tamamını değil, şube klasörünün içindeki dosyaları alacaktır.

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.