[Gelistirici] pisi tarZ desteği

Faik Uygur faik at pardus.org.tr
14 Haz 2010 Pzt 10:44:26 EEST


13 Haziran 2010 Pazar günü (saat 16:04:58) Fatih Aşıcı şunları yazmıştı:
> On Sunday 13 June 2010 15:44:55 Gürer Özen wrote:
> > Belki dikkate almışsınızdır ama bir uyarı yapayım. Eğer bir dosyayı
> > arşivden  direk hedefine çıkartırsak, o dosyayı o anda kullanmakta olan
> > tüm süreçleri kırıyoruz. Yani bu şekilde update yaparken servisler,
> > desktop, hatta pisinin kendisi bile (mesela system.base den python yada
> > libgzip falan güncellerken) crash ediyor.
> > 
> > Çözüm için yeni dosyanın farklı bi inode ile oluşmasını sağlamak lazım.
> > Bunun  için bir yol önce hedef dosyayı unlink() edip silmek (bu dosyayı o
> > anda açmış süreçleri etkilemiyor) ve yeni dosyayı yerine yazmak.
> 
> Yapacağım değişikliklerin buna bir etkisi yok. Sonuçta yine tarfile
> kullanıldığı için o senaryoyu dikkate alan kısım durmaya devam edecek.
> 
> > Daha
> > güvenli olan ise hedef dosyayı önce bir geçici dosyaya yazmak, sonra ise
> > asıl yerine move etmek. Bunun avantajı eski dosyayı silmeden önce yeni
> > dosyanın tümünü arşivden çıkarmış olacağımız için, mesela arşivde bir
> > sorun varsa yarım dosya kalmasının önüne geçmiş oluyoruz. Aklımda kaldığı
> > kadarıyla şu anki önce temp bir yere açma sebebi de buydu.
> 
> Denemek lazım. Performansa etkisi olup olmadığını merak ediyorum.

Gürer'in dediği önemli bir sorun, dikkat etmek lazım. 
Burada düzeltilmişti diye hatırlıyorum:

svn diff -r7911:7914 archive.py

- Faik



Gelistirici mesaj listesiyle ilgili daha fazla bilgi