SORU
15 EKİM 2010, Cuma


Subversion bir çalışma dizini yeniden adlandırmak için akıllı bir şekilde

Bir şekilde VCS (normal svn, git ve git-svn kullanıcı) tecrübeli olsa bu tuhaf SVN davranış başımı sarmak için görünmüyor olabilir.

Bir başka SVN benim çalışma kopyası bir dizini yeniden adlandırmak istiyorum 'temiz' Devlet - i.ne zaman e svn status şey ve tüm diğer değişiklikler taahhüt edilmiş döner - öyle gibi svn doktor ne öneriyor ():

svn mv foo bar
svn commit

SVN yüksek sesle şikayet ediyor:

Adding         bar
Adding         bar/toto
Deleting       foo
svn: Commit failed (details follow):
svn: Item '/test/foo' is out of date

İstediğiniz gibi:

svn update

Hangi verir:

   C foo
At revision 46.
Summary of conflicts:
  Tree conflicts: 1

Ağaç bir çatışma varüçüncü taraf ise herhangi bir değişiklik olmadı. Belli ki, bu ağaca çıkmak için tek yolu çatışma karmaşa jenerik (svn Kırmızı Kitap):

svn resolve --accept working -R .
svn commit

Uzaktan repo o zaman benim çalışma kopyası güncelleme üzerinde yeniden adlandırma oldukça kafayı görünüyor:

url=$(svn info | grep -e '^URL:' | sed 's/^URL: //') svn mv $url/foo $url/bar
svn update

Geliştirilmiş resmi bir şekilde atladığım bir klasörü yeniden adlandırmak için var mı? Kök özellikle şaşırtıcı ağaç ihtilafına arkasındaki neden nedir?

CEVAP
15 EKİM 2010, Cuma


svn mv benim için çalışıyor:

C:\svn\co>svn mv my_dir new_dir
A         new_dir
D         my_dir\New Text Document.txt
D         my_dir


C:\svn\co>svn commit -m foo
Raderar             my_dir
Lägger till         new_dir

Arkiverade revision 2.

C:\svn\co>

Svn İsveç çıkış için özür dilerim.

Senin durumunda yanlış olan başka bir şey olmalı.

Düzenleme:
Olarak Lloeki tarafından yapılan yorum dikkat çekti

Davranışı yeniden oluşturmak için ayrıca bir dosya klasöründe bulunan update işlemek gerekir, ancak klasörü update kendisi.

dosya üzerinde yeni bir devir n oluşturur tamamlama repo, ama yerel meta değildir her zaman olduğu gibi (, svn görmek updated oturum açtıktan sonra herhangi bir commit) , böylece dir meta verileri rev n-1'dir. İzler bu svn nedeniyle taahhüt değildir güncelleme olmayacak meta diff ve gerçekten bir çatışma var çünkü dir: güncelleştirme meta verileri vs silin.

Bu davranış, "" çözüm "svn rename komut vermeden önce. çalışma kopyası güncelleme" ve bekleniyor

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • PCDIY

    PCDIY

    16 AĞUSTOS 2013