Tortoise'ın yinelemeli olmayan taahhüdü nasıl çalışır?


110

Farklı bir şubeden (tamamen farklı bir klasör yapısına sahip) birleştirdiğim SVN şubesinin (şubem) bir kopyasını yerel olarak kontrol ettim. Yani temelde birçok silme (eski dosyadan) ve ekleme (yeni dosyadan) vardır.

Tortoise, birleştirme işlemini depoya (şubeme) yüklemeye çalıştığımda,

Bu kayıt yinelemeli değildir ve kaydetme için seçilen taşınmış / yeniden adlandırılmış klasörler vardır. Bu tür hareketler / yeniden adlar her zaman arşivde yinelemeli olarak gerçekleştirilir. Yine de taahhüt etmek istiyor musun?

Bu taahhüdü devam ettirmek iyi mi? Değilse, sorun olmaması için ne yapmalıyım?

Ayrıca, eklediğim bazı dosyalar için, ekledikten sonra değişiklikler yaptım (bu doğayı etkiliyorsa).

Yanıtlar:


129

Google tarafından nasıl düzeltileceği bulundu: Kaydetme penceresinde F5'e basın ("uyarı açılır penceresinden" değil)

Ayrıntılar için http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2831045 adresine bakın.

26.08.2011 22:39 tarihinde Ryan J Ollos şunu yazdı:

Birkaç aydır Commit'i başlatırken aşağıdaki iletişim kutusunun belirdiğini görüyorum. Sıklıkla, bir birleştirmeden sonra işlemeye çalışırken olur.

Ancak son zamanlarda fark ettiğim şey, dosya listesini iptal edersem ve ardından manuel olarak yenilersem (F5), işlemi ikinci kez başlatırken mesajı tekrar görmem. Taahhüt iyi ve başka sorun olmadan başarılı görünüyor.

Kaydetme iletişim kutusu, çalışma kopyasını değişiklik bildirimleri için arka planda izler. Bu tür bildirimler, dosyaların değiştirilmesi / taşınması / yeniden adlandırılması / ... durumunda işletim sistemi tarafından gönderilir. Böyle bir bildirim alınırsa, kaydetme iletişim kutusu ilk olarak birkaç kontrol yapar, böylece çoğunu bırakabilir. Bildirim, kaydetme iletişim kutusunda kontrol edilmeyen ve görünmeyen bir dosyanın bir şekilde değiştiğini belirtirse, yinelemesiz kaydetmeye geri döner. Bunun nedeni, örneğin başka bir düzenleyicide açık bir dosyanız varsa ve kaydetme iletişim kutusu açıkken değişikliklerinizi kaydederseniz, kaydetme iletişim kutusunda kontrol etmemiş olsanız bile bu dosya da işlenir (görünmez) iletişim kutusunu F5 ile yenileyene kadar).

Bu nedenle, bu uyarı iletişim kutusunu sık sık görüyorsanız, lütfen çalışan kopyanızdaki dosyaları değiştiren başka bir araç / uygulama çalışıp çalışmadığını kontrol edin.

Ve fark ettiğiniz gibi: F5'e basarsanız, bu 'özyinelemeli olmayan bayrak' sıfırlanır çünkü bir yenilemeden sonra, iletişim kutusunu başlattıktan sonra değiştirdikleriniz dahil tüm dosyaları yeniden görürsünüz.

Stefan


1
Cevaptaki bağlantı ölmüş gibi görünüyor. İşte İnternet Arşivi web.archive.org/web/20150306224932/http://…
buzz3791

2
F5'e basmayı denedim. Etkisi şu ki, kaydetme iletişim kutusu dosya listesi dosyalarımın çoğunu iki kez gösteriyor (tam olarak aynı yol ve adla) ve işleme koymaya çalıştığımda uyarı mesajı hala görüntüleniyor.
VEYA Mapper

26

Ben de aynı sorunu yaşadım, ancak 'işlemde yoksay' olarak işaretlediğim dosyalardaki değişiklikleri geri alarak çözdüm

Bu dosyaları geri döndürdüğümde, tortoisesvn, birleştirmedeki diğer tüm dosyaları işleyebildi.


gerçek sebep nedir? Bu dosyalar neden veya nasıl soruna neden oluyor?
Mannoj

5

Bu işleme devam etsem sorun olur mu?

Hayır, taahhüdünüz WC ağacındaki tüm değişiklikleri yok sayacak ve yalnızca kök düzeyindeki değişiklikleri (bozuk birleştirme) yansıtacaktır.

Özyinelemesizliği başlangıçta teslim alırken bir hata yaptınız. Şunları yapabilirsiniz dolu taahhüt, iyi gerçekleştirmeye çalışın kullanarak --depth infinityCLI parametreyi veya TortoiseSVN GUI Bu anahtarı bulmak.

svn commit --depth infinity . -m "Merge"

1
"Özyinelemesizliği başlangıçta teslim alırken bir hata yaptınız." Hayır, zorunlu olarak değil. Tuvaletimi her zaman yaptığım gibi kontrol ettim ama yine de aniden bu sorunu yaşıyorum. Aslında, aşağıdaki alternatif çözümlerin hiçbiri için durum böyle görünmüyor.
Keith M

Bu tamamen yanlıştır. Bu mesajı zaman zaman alıyorum ve her zaman yaptığım gibi çalışma kopyamı yinelemeli olarak kontrol ettim
1800 BİLGİ

1

Ayrıca SVN eklediğim bazı dosyalar için, ekledikten sonra değişiklikler yaptım (Bu doğayı etkiliyorsa).

Benim durumumda, mesajın görünmesine neden olan tam olarak buydu, hatta kayıt için bu dosyaların seçimini kaldırdım.

Yalnızca birkaç dosya etkilendiğinde güvenle çalışan çirkin çözüm:

  1. Değiştirilen dosyaların bir kopyasını oluşturun
  2. Değiştirilen dosyaları geri alın
  3. Birleştirme / yeniden entegrasyonu taahhüt edin
  4. Değiştirilen dosyaları orijinal yerine kopyalayın

Kendime hatırlatma: bir dalı yalnızca hedef (gövde) temizse yeniden entegre edin.


1

Görünüşe göre TortoiseSVN, commit'i çağırmadan önce bir çeşit geçerlilik kontrolü yapıyor. İyi ama hata mesajı çok belirsiz.

Bu sorunla karşılaştığımda, teslim etmek için svn komut satırını kullanmaya geri döndüm. Klasörlerden birinin güncel olmaması nedeniyle kaydetme başarısız oldu. Sadece bu klasörü güncelledikten sonra, bir kez daha "svn commit" çalıştırdım ve işlem tamamlandı.

Düzenleme: Not: Kullanmadan önce bunu denemeden önce "kaydetme sırasında yok say" olarak işaretlenmiş hiçbir dosyanız olmadığından emin olun. "Kaydetmede yok say" kaplumbağaya özgüdür ve SVN commit de bu değişiklikleri seçer.


1

Bunu yayınlayacağımı düşündüm çünkü benim için çalıştı ...

Bunun olmasının nedeni, oluşturduğum yeni projelerden birini kısmen yeniden adlandırmış olmam ve bazı nedenlerden dolayı, tamamlama ekranında hepsinin "Eksik" olarak görünmesiydi.

Projeyi ve klasörü kaldırdıktan sonra (SVN bir onay işareti koymuştu) ve onu tekrar yeni bir proje olarak tekrar yerleştirdikten sonra, birdenbire tüm "Eksik" "Eklendi" oldu ve işlem beni hiçbir şey konusunda uyarmadan sorunsuz çalıştı .

Bu yardımcı olur umarım!


1

Bu sorunu gördüm ve bunun nedeni, görünür bir neden olmaksızın eklenmiş duruma sahip olmayan birkaç ek dosyaydı. Ana klasör doğru bir şekilde "eklendi" olarak gösterilse bile bunlar "normal" idi. Bu 'normal' değişiklikleri geri aldım ve ardından manuel olarak yeniden yaptım. Bu, eklenen her öğenin yürütme listesinde iki kez görünmesini sağladı, ancak hatayı çözdü ve şimdi her şey çalışıyor gibi görünüyor.

Başka bir cevapta olduğu gibi işlemeyi görmezden gelmekle ilgisi yoktu, sadece TortoiseSVN'de bir hata gibi görünüyordu.


Anladığım kadarıyla, TortoiseSVN dosyaları yinelemeli olarak taşımıyor. Bir klasörün taşınması, klasör geçmişini değiştirir, ancak içindeki dosyaları değiştirmez. Bu, TortoiseSVN ile klasörleri taşımak için, klasörü istenen hedefte yeniden oluşturmanız, klasörü eklemeniz ve ardından orijinal klasörün içeriğini yenisine taşımanız gerektiği anlamına gelir. Veya sadece komut satırını kullanın.
Bradley Singer

Bunun bir birleşmeden kaynaklandığına inanıyorum, hamle değil. Benzer işlemler olmadıkça ben takip etmiyorum.
Chris

0

Sorun, bilgi ağaçta yukarı taşındığı için birleştirme bilgilerinizin birisi tarafından veya otomatik olarak silinmesi olabilir. Onları tekrar birleştireceksen, şimdilik işe yarayacak. Ancak diğerlerinin tümü, birleştirilmemiş şubeleriyle sorun yaşayacak. SVN bazı kodları kaybedecek ve önceden gönderilen kodu yeniden birleştirecek.

Bu nedenle, bu dosyaları geri döndürmek ve onları yeniden değiştirmek işe yarayabilir, ancak yalnızca değişiklikleri yapmamalısınız.


0

Ben de aynı sorunu yaşadım. Tüm dosyaları seçmek yerine, sürümlendirilmiş seçeneğine tıkladım ve her şey yolunda gitti. Benim durumumda, sürümlendirilmiş seçenek tüm dosyaları seçti, bu yüzden şimdi her şey yolunda.


-4

tortoisesvn için bir seçenek bilmiyorum ama komut satırını kullanabilirsin

svn commit --non-recursive [folder]

bu sizin istediğiniz gibi çalışabilir


Diğer cevaplar, bunun gerçekten yapmak istediğiniz şeyi gerçekleştirmeyeceğini söylüyor.
Keith M
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.